NoteI'm very happy at my current job and am not looking to change positions at this time.
To solve tough problems in a team environment, and learn a few things along the way.
Operating systems design, embedded programming, programming languages, compilers, high-performance computing, cryptography, and signal processing.
Professional Work Experience
Senior Software Engineer and Chief Technical Officer
Intelesys Corporation, August 2004 - present
Responsible for establishing configuration management processes, building technical depth, providing strategical technical direction for future growth.
As a consultant, I serve my customer’s best by helping them to see The Big Picture and restructure their approach to ensure they meet their goals and overcome integration and technical issues readily. As a result, I have an extremely strong reputation with my customers.
Development responsibilities include developing firmware for embedded systems, drivers for Linux and Windows, custom networking stacks for memory constrained environments, an automated end-to-end test framework and infrastructure, tools to enable code re-use on a much larger scale, an automated search and survey tool, a journaling flash storage system, and serving as a technical resource to all of the company’s developers.
ACT/SAIC, November 2001 - August 2004
Led numerous developments including the development of several Windows device drivers, highly-reliable firmware for embedded network nodes, file system development (NTFS), and several developments at the BIOS and operating systems level. Aided the team in good design practices, served as a technical reference on PC internals and operation, and also helped establish configuration management practices. Helped customers develop both software and hardware architectures that would reduce maintenance costs, and increase portability. Developments included technologies such as ATA, PCI, Bluetooth, USB, and many others.
Hardware/Software Design Engineer
Department of Defense, May 1999 - November 2001
Served as a technical leader and a project manager in the development of low-power RF systems designed to operate in harsh environments. Leveraged commercial technologies coupled with internal custom developments to develop state-of-the-art systems under quick reaction time constraints. Responsibilities included overall system design, interfacing and training the customer, as well as managing the overall development and delivery of the final systems. He coordinated the development of several systems, and incorporated advanced features such as statistical multiplexing, voice and data compression, and other technologies that extended system life.
Electrical Engineering Co-op
Department of Defense, January 1997 - May 1999
Performed tours in 3 different offices. Experiences ranged from developing remote power switching equipment using a custom FM transceiver, to developing custom video monitoring equipment operating in the VHF range. Also extended the data analysis capabilities, for an expensive piece of test equipment, by over 25x utilizing a small inexpensive circuit, and a GUI application developed to run on a Unix Workstation. Skills used during these tours were: C/C++, modulation techniques (FM, VSB, FSK), software analysis, hardware analysis, analog and digital design techniques.
Master of Science in Electrical Engineering, 2002
Johns Hopkins University, Baltimore, MD
Bachelor of Science in Electrical Engineering, 1999
The University of Akron, Akron, OH
Native fluency: C, Python, and Assembly language.
Very comfortable: C++ and Java.
Some experience: Perl, Lisp, Ada, and VHDL.
Pick up new languages and technologies very quickly.
- Neovim - Aims to extend Vim and remove some misfeatures. I currently help maintain the build system and the QuickBuild test infrastructure.
- Vimfiles - A pretty extensive configuration that makes Vim a much more comfortable and productive software development tool.
- Nose - Nose is a unit test framework for Python. It added the ability to automatically collect tests, plugin support, and allowed for easier writing of unit tests in general. I extended several of its capabilites, fixed numerous bugs, and took on maintainership for a couple of years. These days Nose2 is the way to go.
- fsfsverify - A tool that can fix many broken FSFS-based Subversion repositories. It is now included in the the contrib/ area of Subversion. (http://svn.collab.net/repos/svn/trunk/contrib/fsfsverify/fsfsverify.py or http://www.szakmeister.net/fsfsverify/ – it’s real home.)
- Subversion - A compelling replacement for CVS. Helped take Subversion to 1.0. Motivated by a desire for a decent version control system while working at ACT, but did all the work on my own time.
High School / College
EM Visualization tool - Wrote an application as an undergraduate research assistant, for an NSF-sponsored program, to help visualize planar intersections with a huge mesh representing electromagnetic strength down the walls of an oil well. The goal was to elicit a pattern that could be used to develop an instrument capable of detecting a good location to drill for oil without the expense of drilling at every candidate location.
BBS - Wrote a small BBS in Turbo C back when BBSs were still cool.