The Intel Dataplane Developers Kit (DPDK) provides useful infrastructure for building network applications. With the toolkit it is possible to build applications that perform at the full packet rate of a 10G network but there are many challenges. This paper covers the lessons learned while using the DPDK to create a routing and switching dataplane in software. Most of this involved applying lessons already learned in how to make Linux go faster to a new environment. I will also cover some of the things that turned out to be surprisingly much slower that developers originally expected. The lessons learned go both ways: some of these DPDK lessons can (and have been) applied to making the kernel networking stack go faster, and some are areas where DPDK applications can learn from the Linux kernel. Will also highlight some of the tradeoffs made in dedicated networking which may not be applicable to general purpose kernel.