Education:
Bachelors of Science, 1991,Computer Science from SUNY Albany.
Masters of Science , 2002, Computer Science at Binghamton University (Thesis: Real Time TCP)
Skills:
Technologies
Operating System Kernel Development, Systems Networking, TCP/IP Protocols, GUI Development, Kernel Tracing, Systems Integration, C Library Development, etc.
Programming Languages
C/C++, Assembly (PPC, MIPS, Arm, Intel), Perl, Python, Ruby, Java, sed and awk, Tcl/Tk, Unix shell programming (bash, sh, ksh, csh,etc), Pascal, Lisp, Prolog, Haskell, etc.
Programming Utilities
Samba, GTK/Gnome, X Windows Motif, emacs, etc.
Operating Systems
Linux, AIX, Solaris, HP-UX, Windows 95/98/NT, Palm OS, etc.
Drivers
PCI, Ethernet, Serial, Watchdog, Timers and Discretes, etc.
Published articles:
Experience:
Principal Software Engineer: (July 2006 - Current)
Red Hat, Inc.
Linux kernel developer.
- Worked on developing the Xen hypervisor.
- Created a port of lguest (linux hypervisor) for x86_64 (based off of
Rusty Russells lguest).
- Main developer on the Linux Real-Time patch.
- Maintained the Real-Time patch for a year.
- Current maintainer of the Real-Time patch stable releases
- Created an internal tracing infrastructure and was accepted into mainline Linux called "ftrace".
- Maintainer of ftrace.
- Creator and maintainer of the Linux kernel TRACE_EVENT() macros
- Given several seminars around the country on Real-Time Linux as well as ftrace.
- Created the ftrace command line tool trace-cmd
- Created the GUI front-end for trace-cmd called KernelShark
- Download trace-cmd and KernelShark from here
- Created the Linux make option "localmodconfig" that disables
modules not needed for the running kernel.
- Created Linux test tool ktest.pl that is
found in the Linux kernel source tree.
Senior Software Engineer: (July 2003-July 2006)
Kihon Technologies Inc.
Part owner of start-up company contracting in embedded operating system
programming, customization of the Linux kernel, and writing Device Drivers.
Custom Linux Kernel Development: (Working with Siemens Germany)
- Developed a custom version of the Linux kernel based on Ingo Molnar's
PREEMPT_RT patch for use in Power Plant control systems.
- Contributed several patches to Ingo's RT kernel to improve performance
as well as bug fixes.
See
http://people.redhat.com/mingo/realtime-preempt
Embedded Software Engineer Contractor: (Working for TimeSys)
- Merged TimeSys Real-Time Operating system with a fault tolerant system based on Linux 2.4.18.
- Port TimeSys Linux to multiple Power PC Single Board Computers (SBC).
Senior Software Engineer: (March 2001-July 2003)
TimeSys Inc.
Board Support Packages
Kernel Development and Porting
- Port the TimeSys Linux kernel to various Single Board Computers(SBC) (MIPS, ARM, Power PC).
- Port the GNU tools suite to the various SBC (gcc, binutiles, glibc, bash, telnetd, ftpd, etc).
- Develop drivers for proprietary devices on the SBC.
- Write custom code to handle processors without a Translation Look-aside buffer (TLB), which include a dynamic linker embedded in the Linux kernel for programs to be loaded into memory at runtime.
Software Engineer: (1996-2001)
Lockheed Martin Federal Systems and Loral Federal systems
Advanced Technologies Department:
Consultant and System Designer
- Design database cleansing solution utilizing multiple platforms including Linux, HP-UX and Windows NT/98 (Resulting in two Patent applications still in process).
- Consulted in various programs including hand held wireless communications and virtual applications using wearable computers.
- Designed enhancing algorithms to increase efficiency in TCP/IP communication on a reliable network.
Systems Engineering Advanced Technologies Department:
Lead Integrated Document Online Control System (IDOCS) Developer
- Lead programmer, architect and developer for IDOCS.
- First implementation of automated document control as specified by Military Specifications.
- Designed IDOCS and lead a team of programmers to develop, test and deliver IDOCS to Warner Robbins Air Force Base. IDOCS is now a standard configuration management tool for several projects through out Lockheed Martin Owego.
- Ported IDOCS from AIX to Solaris and Linux.
- Designed and developed an entity relational (ER) database back end server used for IDOCS.
- Developed a daemon process for controlling the configuration management of multiple users on the IDOCS system.
Operational Task Tool Database Developer
- Lead programmer, architect and developer for designing the database operations and layout.
- Develop code in Tcl/Tk to interface with an Object Oriented Database.
- Advised other team members on critical decisions.
- Integrate a mutli-platform system for maximum efficiency.
Mission Planning Developer
- Team lead of implementation of advanced routing and mission planning algorithms.
- These algorithms are now incorporated in avionics programs for routing and threat assessment.
- Utilized a suite of tools for all phases of the development process: Design through to final testing.
Software Analyst: (1992-1996)
Ensco Inc.
Subcontractor with General Electric, IBM, Lockheed Martin and Loral.
Systems Engineering Advanced Technologies Department
- Lead programmer, architect and developer for implementing a configuration management system around the RDD-100 database for use with Systems Engineers.
- This tool was helpful for Systems Engineers management of data and consistency checks of the integrity of the database.
Avionics Engine Controls
- Programmed Jovial modules for control systems of military vehicles.
- Unit tested Jovial and 1553 Assembly modules.
Related Experience:
- Found bugs and submitted patches for Linux versions 2.4, 2.5 and 2.6.
- Submitted patches for the Gimp Tool Kit (GTK) Widgets that have been implemented.
- Submitted facilitating utilities for programming with GTK.
- Enjoy writing code on my own time and tinkering with the Linux kernel.
- Developing an object oriented database management information system as an extra curricular activity, implementing full Object Oriented Design using a non Object Oriented Language, then converting the result to C++.
- Created an experimental transfer protocol implementing Credit and Negative Acknowledgments.
- Set up a personal firewall, http server, ftp server, game server, and DNS server.