Software Developer, Computer Networking Extraordinaire
What started out as a simple question of how online gaming software works turned into a lifelong passion for software development and all things networking. Throughout the arc of my career I have been privileged enough to gain experience with a wide range of networking technologies including customized mobile ad-hoc networking for military radios, IPSec VPN software on firewalls, and networking systems supporting in-flight Internet access. When it comes to networking I have experience in most areas and just about anything can be accomplished with the requisite effort.
Panasonic Avionics Corporation
Lake Forest, CA
December 2014 to Present
- C++, C, and Bash script software development on Linux for systems providing satellite-based Internet access in-flight.
- Wrote a C++ based Linux daemon in charge of deriving switch configuration and applying it to a managed switch.
- Maintained a complex networking system consisting of multiple components including Linux IPTables firewall rules, routing configurations, DNS configuration, DHCP configuration, Bash scripts, and more.
- Gained a broad and deep understanding of networking including: routing tables, policy based routing, DNS, DHCP, D-NAT, S-NAT, 1-to-1 NAT, dynamic N-to-1 NAT, Linux IPTables firewall rules, packet marking (DSCP), connection tracking, QOS with TC commands, 802.1Q VLANs, port-based VLANs, VLAN interfaces, secondary IPs, static ARP table entries both unicast and multicast, SNMP, SNMP MIBs, packet capturing and traffic analysis with tcpdump, TCP/IP, UDP, ICMP, IGMP, SSL/TLS, etc.
October 2010 to October 2014
- Java software development to incorporate new features into the customer facing user interfaces. Experienced with OOP, and design patterns for reusable code.
- Software development in the C programming language for an advanced Linux-based UTM (unified threat management) firewall. Extensive computer networking experience, TCP/IP, UDP, DNS, etc.
- Secured over one million dollars in revenue by implementing a honeypot based early warning system, which the customer required as a condition for the sale.
- Developed IPSec VPN software on a Linux based daemon providing, branch-office VPN, mobile VPN, redundant connection failover, multiple encryption and authentication algorithms, and other features. Experience reading and interpreting RFCs to implement IPSec protocols.
- Added iPhone VPN support months ahead of the planned solution using L2TP, causing enough sales to earn an iPad as a bonus, via an enhancement to IPSec which added additional protocol support per RFC 2407.
- Developed wrapper daemon for an open source L2TP client, accel-pppd; handling startup, shutdown, configuration, inter-process communication, and diagnostics.
- Added support for the new SHA2 authentication algorithm in userspace and in the Linux kernel.
- Solved long time elusive VPN bug by adding additional diagnostic information to the Linux kernel and dumping it to userspace, proving the issue was a bug in the hardware crypto driver code, ultimately leading to a bug fix.
- Optimized software to handle large scale configurations using valgrind and kcachegrind. Reduced intercrosses communication overhead and reduced algorithm computational complexity improving performance of sub modules by 90% and 91%.
- Rescued Perl scripts from obscurity, updating automated unit test system to work with new code branches.
The Boeing Company
Huntington Beach, CA
June 2006 to October 2010
- Developed mobile ad-hoc network monitoring software on Linux in C++ with an oracle 10g database back-end. Worked with sockets, TCP, UDP, multithreading, synchronization issues, Unix signals, and polymorphism. Used Perl/Shell scripts and CppUnit to automate testing and installation.
- Experienced with software development including, concept of operations, systems engineering, requirements analysis, design, implementation, deployment and maintenance. Understands the importance of good communication among software developers and the importance of adaptability while maintaining focus on execution.
- Worked with complex mobile ad-hoc networking (MANET) software on software defined radios. Debugged and isolated problems in a mult-layerer network protocol stack. Collected data and did performance analysis. Familiar with TCP/IP, UDP, routing, OSPF, multicast, HAIPE Encryption. Experienced with lab work and troubleshooting hardware and software problems.
- Integrated software products from several subcontractors and tested the software. Kept strict configuration control of software and test equipment. Created software test plans, software test descriptions and software test reports (STP, STD, STR). Tested several requirements simultaneously using thread based testing. Mapped requirements to specific threads.
- Performed over-the-air testing for field tests in Palmdale California. Supported preparations, execution, data collection, analysis and reporting of field test operations.
- Master's in Computer Science, University of Southern California, GPA 3.6, May 2010
- Bachelor's in Computer Engineering, University of Illinois at Urbana Champaign, May 2006