% Joshua D. DeWeese
Phone: 937-638-8615
Email: [email protected]
- Experience with C, C++, Java, Python, Bash scripting, and Assembly programing languages
- Experience with GNU Make and GCC tool chain, open source software build tools
- Experience with ARM, MSP430, MicroBlaze, and PIC embedded development
- Experience with Git, SVN, and CVS revision control systems
- Experience with Linux (embedded, server, and desktop) (I have been using Ubuntu as my primary OS at home and work since around 2008)
- Experience with concurrent programming methods (both threading and fibers)
- Experience with GTK, a graphical widget toolkit written in C
- Experience with SDL, a graphics library
- Experience with oscilloscopes, signal generators, multi-meters
- Experience with FPGA programming and VHDL, a hardware descriptive language
- Experience with SolidWorks, a mechanical design CAD Package
Previously held Top Secret
Embedded Software Engineer, April 2014 – Present
- Designed and implemented reliable stream based transport protocol for communication between low power wireless sensors and an embedded Linux system. Much of the designed was based on concepts taken from DHCP and TCP/IP, but made to be lightweight for use on 8 bit microcontrollers.
- Customized and maintained device trees and kernel for Linux based in-vehicle LCD display products.
- Provided technical assistance to customers on a regular basis.
- Re-wrote firmware for two products (a keypad to CAN interface and a vehicle systems controller) which were suffering huge return rates due to software bugs.
Computer Engineer, September 2011 – April 2014
- Most projects I worked on while at BerrieHill were tracked using Git, with the remainder using SVN.
- Wrote firmware to run on a MicroBlaze processor facilitating sharing information between a RS485 link, and a state machine residing in the same FPGA. The firmware ran directly on the MicroBlaze without a kernel and was written in C and cross compiled using Make and GCC.
- Built an application that could dynamically load code modules at runtime, resulting in the ability to update code in-place as well as the ability to load plugins. The application was written in C++ for Linux (Ubuntu) and used GTK for the user interface. It was compiled using Make and GCC. The Application was multi-threaded to maintain responsiveness while communicating with lab equipment over Ethernet and USB in the background.
- Built a Linux daemon to run on an embedded (ARM) computer allowing remote control of a USB device over TCP. The daemon was written in C++ and built with Make and GCC.
- Responsible for administering Linux server accounts, software installations, backups, and security updates. Servers were a mix of Red Hat, CentOS, and Debian.
- Wrote a Python command line program for filtering and formatting data coming out of a network analyzer to make it suitable for input into MATLAB for processing by another engineering team.
Software Engineer, May 2009 – September 2011
- All projects I worked on while at TDKC were tracked using CVS.
- Implemented 3D video based tracking that allowed users to control a data wall with body gestures. The algorithm was written in C++ and compiled with Visual Studio.
- Built a live video viewer that could overlay a tracked object's position, yielding a 4 fold frame rate increase over previous and less featured viewers in use by the company. The viewer was written in C++ relied on SDL and compiled with Visual Studio.
- Developed a variety of modules for a satellite monitoring product developed by TDKC. The modules were all written in Java and developed under the Eclipse IDE.
- Made use of GNU Make and the C preprocessor as a generic text processor, resulting in updates to a small number of boiler plate files and macros to be propagated to a large number of XML configuration files.
- Responsible for administering Linux server accounts and reviewing security logs. All the servers were CentOS installations.
Research Assistant, September 2005 – May 2009
- Executed experiments and procedures to support Dr. Madhavi Kadakia's research
- Performed maintenance and training for DNA sequencer, high end microscope, and other lab equipment
- Kept lab stocked and tracked all related expenditures
B.S. In Computer Engineering, March 2010
- Concentration: Architecture
- GPA: 3.26/3.45
Pre-Engineering Tech-Prep Program, June 2005
- Used SolidWorks on a daily basis for two years as part of training
- Developed skills in soldering through-hole and surface mount circuits as well as basic circuit debugging with multi-meters and oscilloscopes
- Gained proficiency with Visual Basic .NET programming