I enjoy working with systems software, often at the intersection of software and hardware. As a software engineer, my knowledge of the underlying hardware gives me a more informed perspective about how a system works as a whole. Through my education and work experience, I've developed a very strong technical background focusing on operating systems, real-time systems,
I enjoy working with systems software, often at the intersection of software and hardware. As a software engineer, my knowledge of the underlying hardware gives me a more informed perspective about how a system works as a whole. Through my education and work experience, I've developed a very strong technical background focusing on operating systems, real-time systems, and high-performance computing. I have deep experience with the Linux kernel with special focus on areas including the networking stack and network drivers.
In my current position with National Instruments, in addition to expanding upon my technical skills, I've developed skills for collaborating with the open-source community. Of the ~70 patches we've contributed to the OpenEmbedded project in various layers, I've upstreamed the majority of them. I'm one of the maintainers for NI's kernel source tree, and I've developed expertise in using Git to collaborate on large software projects.
System Software Developer @ I do Linux kernel and userspace driver work for the Intel Axxia series of communications processors. From June 2015 to Present (6 months) Austin, Texas AreaStaff Software Engineer @ I worked on the team that develops the NI Linux Real-Time RTOS that runs on NI's Compact RIO programmable embedded controllers. The team maintains their own kernel source tree using Git and builds their own custom embedded Linux distribution using Yocto/OpenEmbedded.
My job responsibilities included everything from debugging cross-architecture alignment issues to coordinating the rebase of several hundred patches from Linux 3.2 to Linux 3.10. In addition, I contributed code to open-source projects including OpenEmbedded and the Linux kernel. I also conducted interviews for both interns and full-time candidates both at Virginia Tech and on the NI campus. From August 2013 to May 2015 (1 year 10 months) Graduate Research Assistant @ I worked on the Popcorn Linux project to build a multikernel version of the Linux OS on commodity x86-64 hardware. In addition, I worked on the ChronOS Linux real-time operating system, including kernel development, testing, debugging, and development and implementation of new real-time scheduling algorithms. From August 2011 to May 2013 (1 year 10 months) Software Engineer @ I worked on the Primitive Resource Manager team for the ASR 9000 edge router. We were responsible for providing the infrastructure between the network processors and the networking features that run at the OS-level, including statistics collection, data structure programming, and interrupt handling. Over the course of this job, I was responsible for supporting interrupt handling on a new network processor, resolving a PCI bus contention issue, and implementing a new dynamic memory allocation algorithm for data structures, among other things. I worked mostly in C in a QNX environment. From January 2009 to July 2011 (2 years 7 months) Intern, Low-Level System Software @ Using C, I implemented a new boot image format for the U-Boot bootloader for embedded PowerPC Linux. Using Perl and Expect, I wrote a comprehensive test suite for Cisco eUSB+ Flash boot devices. I received the Cisco Individual Achievement Award for my work. From May 2008 to August 2008 (4 months) Intern, New Product Introduction @ Using Java and Visual Basic, I developed software for electrical stress analysis. I characterized hardware and software faults with uninterruptible power supplies under test, and I built test fixtures to test individual power supply boards. From May 2007 to August 2007 (4 months)
M.S., Computer Engineering @ Virginia Tech From 2011 to 2013 BS, Electrical and Computer Engineering / Computer Science @ Duke University From 2005 to 2008 Ben Shelton is skilled in: Linux, Embedded Systems, C, Matlab, Linux Kernel, Operating Systems, Python, Computer Architecture, Systems Programming, High Performance Computing, Git, Real-time Control Systems, Multi-core Programming, Transactional Memory, Linux KVM
Looking for a different
Get an email address for anyone on LinkedIn with the ContactOut Chrome extension