An eclectic software engineer with diverse experience ranging from embedded systems development to scripts for sever administration, in industries ranging from marine transportation to entertainment to network security.
Languages: C, C++, C++11, Python, Perl, Bash, PHP, XML, SQL.
Tools: gcc, gdb, Gnu Make, autoconf, Scons, svn, cvs, git, perforce, tfs, agile methodologies.
Misc: secure programming techniques, design, multi - threaded programming, object-oriented programming and design. Sockets/network programming, client/server applications, distributed applications, asynchronous I/O, event-driven code, hardware interfaces, analytics, parsers and loggers, dev/ops. Both quick-and-dirty scripts and modular maintainable scripts. Unit testing, integration testing, continuous integration, documentation writing. XML, JSON, REST, SOAP, sockets, IPC, RPC, anything to integrate with existing systems.
System Administration and related:
Unix/Linux: Ubuntu, Slackware, Fedora, Debian, Redhat Enterprise, CentOS, FreeBSD, Solaris, AIX, QNX.
Virtualization: Linux VServer, VMWare, qemu, kvm, usermodelinux, VirtualBox, some xen
Security: monitoring, protocol analysis, firewalls, intrusion detection/prevention engines, cryptography
Databases (PostgreSQL, MySQL): programming with C, C++, bash, perl, python.
Databases (NoSQL, etc): CouchDB, redis, MongoDB, BDB, flat files. Coding with C, bash, perl, and python.
Confidential, Peachtree City, GA
- Working on a small team to design, implement, debug, and automate security policies and functional test procedures for an automotive infotainment system
- Firewalls, QNX, QDE, Visual Studio, Linux, embedded development, C/C++, test design and automation, network security, physical security, CAN bus networks, penetration testing.
Design and Development Engineer
- Worked on a very small team designing and coding the software subsystems between the nodes in a new control system for jet boats.
- Sole author of a framework in C and C++ for hardware verification on an embedded Linux COM board with UART (RS232) interfaces.
- Wrote python Mako templates generating C++ code from XML network protocol definitions.
- Implemented network protocols in C++ for cross-platform use (embedded ARM and Win32), including NMEA2000 heartbeat messages that emanate from every node in each vessel, as well as debounced and rate-limited hardware button press messages (ADC SPI).
- Embedded development on RTOS (CTL). Handled a variety of systems tasks as well as software projects.
- Agile, Scrum, systems engineering, software engineering, software design, graphic design, embedded Linux, research, continuous integration, automation, unit testing, driver development, cross-compilation, CAN bus networks (ISO11783, SAE J1939), UDP socket code, C++, python (2.7 and 3.4), .NET, Visual Studio, gcc/g++, uboot, Rowley CrossWorks, Linux (Ubuntu, Debian), interpreting schematics and pin-out diagrams, hardware testing and verification.
Software Systems Engineer Specialist
Confidential, Richmond, VA
- Wrote code to integrate with the DMS (Distribution Management System) that handles distribution of power across the electrical grid.
- Rewrote 10-20 year-old legacy code to run more efficiently on modern systems, which at times behave very differently from those on which the code was designed to run.
- C, Perl, Linux (Redhat), non-preemptive threading, SCADA, Modbus, DNP3, Transdata metering, shared memory, IPC, flat-file databases.
Senior Systems Developer
Confidential, Burbank, CA
- Wrote code to assist asset management and archiving operations teams with storage integration, transfer management, and network performance.
- Performed ops tasks such as compiling custom Linux kernels (CentOS), diagnosing network/filesystem errors, writing scripts (configuration, system administration, reporting), and supporting/developing for the rest of the team.
- Integration with APIs for Zabbix, VMWare, CloudStack, StorNext. Designed and wrote a multi-threaded and distributed search/deduplification system (in perl, OO python, and MySQL) to index files, and to intelligently identify duplicates (using noSQL, messaging queues, and optimized queries), within billions of files totaling nearly 30 PB and located at multiple worldwide locations. Automation scripting for file transfers, backups, and storage tasks in Perl and bash.
- Mentored junior-level coworkers.
Senior Software Engineer
Confidential, Culver City, CA
- Maintained and refactored legacy code in Perl, some OO, on Ubuntu and Debian Linux platforms.
- Added features to existing codebase where necessitated by business objectives.
- Implemented unit tests.
- Coded web services.
- Assisted other developers with design and redesign of software system components, including utilization of the Storm framework for distributed processing.
- Participated in on-call rotation for handling server alerts and errors.
Senior Systems Engineer
Confidential, Los Angeles, CA
- Designed and wrote software applications in Perl (some OO), OO multi-threaded python, php, multi-threaded event-driven (eventfd, inotify) C, SQL, and bash, for the benefit of the system administration and NOC teams.
- Application types include server maintenance, uptime maximization, memory management, configuration and monitoring scripts, virtual machine management and constraints.
- Mentored junior admins and NOC techs, and was on standard on-call rotation for escalated data center outages.
- All systems were Debian-based Linux machines.
C++ Software Design Engineer
- Designed and implemented a logging system (C++ running on Debian), outputting generically configurable ASCII logs.
- Logs consisted of statistical data calculated from messages received from multiple types of nodes around the world, as well as from GPS and GLONASS satellite constellations.
- Re-wrote legacy code for increased modularity, thus allowing the network connectivity subsystem to be easily replaced in case of changed future requirements.
- Despite the additional mathematical capabilities of the new code, the re-engineered system reduced server CPU usage from more than 90% to less than 10%.
- Wrote extensive documentation, according to policy and coding standards, including SRD and SDD documents as well as UML diagrams.
- Wrote PHP scripts to interpolate data from the logfiles and output multiple types of graphs.
C++ Software Engineer
Confidential, Culver City, CA
- Ported 32bit AIX, Linux, and WIN32 LiveUpdate C++ code to a native 64bit platform.
- Primary developer working on the AIX and Linux segments of this project.
- Added additional features, primarily for improved configurability.
- Implemented unit testing (utilizing Cxxtest) for the same cross-platform codebase and for Solaris.
- Wrote guidelines to assist future developers in porting from 32bits to 64bits.