Qualifications:
- MSCS - Masters in Computer Science - University of Central Florida. (1999)
- BSCE - Bachelor of Computer Engineering - Georgia Institute of Technology (1994)
Summary:
I am interested in a senior software position requiring a broad range of
skills. I develop applications at many levels, from high level data mining,
to the lowest level assembly code in embedded processors. My strength is
in solving technical hurdles. I've found that a broad range of technical skills
can solve problems using methods from many different areas. It doesn't matter
whether the problem is well defined, or simply a vague outline of what is
needed. I quickly build prototypes, then refine them into a finished product.
Experience:
Cavium: May 2004 - Present
- ARMv8 Architecture Simulator
Part of a small team developing a ARMv8 64bit architecture
simulator. Simulator is used by customers to develop for the
Cavium Thunder platform. The simulator is also the reference
for the hardware team developing the RTL.
I'm solely responsible for the ARMv8 core. The core
simulation was developed from scratch and passes >95%
of ARM Validation Suite(AVS) for v8.
- All ARMv8 and v8.1 64bit instructions
- Secure mode (EL3) and full virtualization (EL2) supported
- External debug, slef hosting debug, and performance counters
- Two stage page table walker with memory attributes
- ARM Trickbox implementation
- Infrastructure to run entire AVS in 5 min
- SMP Linux with either Fedora or Ubuntu rootfs boots with no issues
- Initial Board Boot and Diagnostic Software
Solely responsible for developing and delivering a package to
help customers boot their boards. The diagnostics supported
DRAM testing, QLM testing(PRBS), TWSI, MDIO, SPI, GPIO
diagnostics, and a builtin traffic generator supporting SGMII,
XAUI, RXAUI, XFI, XLAUI. Interlakken, and SRIO.
- Debug and Create Workarounds for obscure hardware errata
I'm part of a small team that performs initial poweron and
software boot for all OCTEON processors. As part of this, I'm
normally the first person to hit hardware errata. I supply
workarounds for other software developers to build on.
- Initial port of Linux to Octeon line of Processors
I was the first Linux kernel developer for the OCTEON series
of processors. I ported the kernel and root filesystem to the
first OCTEON (16 way SMP, weakly ordered).
- Device drivers for custom hardware (PCIe, Network, SRIO, PTP-1588)
My work at Cavium involved the initial creation of many device
drivers. Some of the highlights:
- Multicore ethernet driver
- PTP - 1588v8 driver and userspace daemon
- SRIO ethernet driver and enumeration code
- Interrupt controller
- PCI and PCIe host controllers
- USB host and device mode
Broadstone Networks: April 2003 - May 2004
- Quality of Service (QoS) Network Scheduler
I designed and developed a QoS scheduler capable of scaling from 1Mbit to 100Mbits,
the core of ipConductor. This system performed dynamic resource allocation to
increase the total throughput of wireless systems. Some of the essential
features are TCP bandwidth shaping, VoIP jitter management, automatic flow
isolation, and guaranteed levels of service.
- Embedded Linux
I created a custom Linux distribution for use on embedded computer systems
with limited storage. The ipConductor appliance used less than 1.2MB of flash
for the operating system and user utilities. This system supported x86, ARM-9,
MIPS, and PowerPC processors.
- Compact, Small Footprint Web Interface
In order to support simple user configuration, I created a small embedded web
server capable of delivering dynamic pages. A normal web server using CGI or PHP
would require far more space than was available. My final solution required less
than 200KB to support all needed user interaction. Key features: HTTP/1.1
pipelining, HTTP authentication, automatic URL encoding.
- Microsoft Windows Device Drivers
I ported the above QoS scheduler into a Windows NDIS device driver. The
resulting driver intercepted all network communications in order to provide QoS
services on top of any existing Windows 2000/XP/2003 network.
Malibu Networks: February 2001 - April 2003
- Proxy ARP and DHCP
Malibu's 802.16 wireless product needed the ability to limit and properly
route IP and broadcast packets through complex wireless networks. To support
this, I implemented an RFC compliant proxy ARP system to eliminate most
broadcasts. On top of this I created a smart DHCP server capable of configuring
clients based on network topology in addition to the usual hardware MAC
addresses.
- ADM Management Protocol
Malibu's system used a proprietary configuration protocol (ADM). I morphed
this protocol into a self documenting system with network and processor
independence. All low level transport issues (endianness, addressing, and
retries) were hidden from the users of the protocol. The self documenting aspect
then lead toward an automated testing suite for regression / unit tests.
- Distributed QoS Scheduler
I theorized, designed, and implemented a network packet scheduler supporting
quality of service guarantees for 2000 simultaneous flows over 802.11b. Key
features: Auto connection isolation, RTP classification, simple web based
management, detailed statistics, delay and jitter management, contentionless MAC
access, and fairness under highly over-provisioned loads.
Presideo: February 1999 - February 2001
- XML API
I designed and developed an XML based messaging system presenting a simple
unified API to customers through HTTP. This allowed remote customers to perform
secure transactions over the net without the need for large amounts of custom
software.
- Signed Java Applets & Native Code
Extensive Java programming implementing signed applets with native interfaces.
This allowed web pages to perform biometric authentication (fingerprints) before
allowing access to confidential medical records. The applets also controlled the
Microsoft Windows desktop in order to limit transferring, printing, or other
access to sensitive data.
- HTTP 1.1 Web Server
I implemented a HTTP 1.1 compliant web server in java with persistent
connections and thread pooling. This server then acted as a proxy for multiple
servers running Java servlets, allowing for load balancing and authenticated
communications.
- Distributed Fingerprint Analysis
I developed a distributed fingerprint analysis system to break up CPU bound
operations across a network of PCs and Sun Sparc stations using CORBA. This
allowed detail testing of fingerprint matching algorithms without the use of
large, expensive computers.
- SQL Database & LDAP
I implemented a generic data storage using XML as a language independent
interface. Both SQL databases and LDAP directory servers can be used for storage
without affecting the client application interface.
Lockheed Martin: November 1994 - February 1999
- Proposal Concepts
Generated initial technical concepts for proposals to support
declassification of hardware after Navy ATLAS test programs are executed (Classified
CASS). I also designed and implemented an ATLAS interface for the Automated
Gimbal Control System(AGCS) for use in an electro-optic test system (CASS-EO).
- Touch Screen Interface
I developed touch screen based interfaces for existing software. Existing X
windows applications were supported through a Motif based on screen keyboard.
- Low level Ethernet and TCP/IP sockets
I debugged a proprietary protocol that ran over low level ethernet (CASS-BICC).
I then ported this protocol into a higher level TCP/IP based system using the
standard BSD sockets library. This allowed communications between VAX/VMS and
Windows NT for instrument control.
- VXI instrument control and GPIB (488) communications
I implemented a DCOM based remote method interface to standard VXI and GPIB
instrumentation.
KCR Products: January 1988 - Present
- Various Programming Languages
Through various contracts with KCR Products, I've programmed in many computer
languages. Some examples: C, C++, Lisp, Pascal, Fortran, Java, Visual Basic, and
Lua.
- Commercial Engineering Applications
I've worked on many engineering and technical software packages available
commercially. These packages perform detailed analysis requiring advanced
mathematical skills.
- Theoretical Flight Calculations
Sub-Contracted for KCR Products doing theoretical flight calculations on a
Flight pod for American Electronics Laboratories (AEL).
- Microsoft Windows Programming
I developed commercial applications available under Microsoft
Windows, 95, 98, NT, 2000, XP, and Windows 7. Experience with
Visual Studio, Cygwin, and the Android SDK.
References:
Cavium
- Imran Badr - Director of Software Engineering
- David Carlson - Senior Hardware Architect
- Trent Parker - Principle Software Architect
- Roy Franz - Senior Software Engineer
|
Broadstone Networks
- Jacob Jorgensen - CEO
- Ross Roberts - VP Marketing
- Rahner James - CTO
- Roy Franz - Senior Software Engineer
|
Malibu Networks
- Jacob Jorgensen - CTO
- Seth Zirin - VP Development
- Manfred Arndt - Head of Software Development
|
Presideo
- Tom Hoffman - VP Development
- David Flickinger - VP Research and Development
- Alfonso Urdaneta - Software Engineer
|
Lockheed Martin
- Wayne Davis - Program Technical Lead
- Randy Core - Program Manager
- Mike Zwicker - Software Lead
- Joe Headrick - Software Developer
|
Key Computer Research
|
Due to the presence of unsolicited email and telemarketing, the actual
contact information has been removed. Information will be supplied upon request.
|