Experience with software development for Linux, Windows, and various embedded platforms.
Programming experience in many computer languages: C++, C, Verilog, VHDL, Java, Python, and assembler languages.
Programming of FPGAs, in particular the Altera toolset. Knowledge includes FPGA soft processors and soft analog of a SOC, System on a Chip (i.e., the Altera NIOS and SOPC). Knowledge of Quartus, ModelSim and multi-FPGA systems. Joint patent awarded for FPGA device.
Operating experience includes Linux, Windows, RTOS systems, and “bare machine” systems too small to support an OS. Experience includes driver software to directly control hardware written for all of these OS environments.
Areas of specialization include telecommunications, network security, IP packet bridging/routing and processing, operating system internals, SMP kernels, hardware drivers, fault tolerance/high reliability, embedded systems, and language tools.
Implemented drivers for Ethernet, USB, PCI, and custom buses. Experience with a diversity of Linux drivers.
Routing, bridging and network packet processing for TCP/UDP/IP, VOIP, and ATM. Experience with iptables.
Implemented multi-threaded SSL proxy server based on OpenSSL. Knowledge of security CA Certificate Authority uses and protocols.
Knowledge of custom pattern matching algorithms, including the use of Bloom Filters. Familiarity with transaction systems including fault-tolerance, high reliability, and communication protocols.
Parsing experience for common web data formats: XML, HTTP, ICAP, and HTML. Multiple Xerces based XML DOM parser implementations. Also have experience with Expat, a SAX XML parser.
Past experience with language tool development: debuggers, compilers, assemblers, and linkers. Knowledge of ELF/DWARF object formats. Experience with FLEX and BISON.
Familiarity with common source control management software.
Specialties
C++, C, Java, Verilog, VHDL, Python, Perl, XML, Linux internals, drivers, RTOSes, network protocols, wireless, network security, IP packet analysis, network bridging/routing, fault tolerance/high reliability, x86, NIOS, ARM, FPGAs.
