Lead Software Engineer with over fifteen years of experience developing and maximizing the effectiveness of software development teams. Expert software engineer with a demonstrated ability to choose the right tools and to coach team members to use those tools for maximum impact. Expert web services developer who understands how to work with clients to quickly deliver solutions that exceed expectations. Looking for a position in the Washington, DC metro area to begin in mid-September 2015.
Expert in PHP, Perl, Python, JavaScript, jQuery, Linux, OOA&D, PostgreSQL, ETL (Extraction, Transformation and Loading), LAMP, Agile, Git, and CVS. Extensive experience with Java, C, C++, Bash, Tcl, LDAP, Design Patterns, Use Cases, SQLite, Oracle, CSS, XML, REST, SLDC Waterfall, Twisted, AJAX, JSON, Vagrant, VirtualBox, and Scrum. Professional experience with Lucene, PyUnit, ASP, ColdFusion, SQLServer, MySQL, Redis, ODBC, Access, Excel, Subversion, Rcs, IIS, Windows 2000, Windows NT, Solaris, HP/UX. Limited experience with Django, Drupal, LISP, FORTRAN.
Chief Technologist
CTO / Principal Developer – Swapasap is an in-development project designed to facilitate language learning for students by allowing students to locate and communicate with other people who can help them master a language. currently averages about 1200 hits per day (150 distinct user sessions) and has over 1000 registered users. As Chief Technology Officer and Principal Software Developer, I built the Swapasap website from the ground up. I wrote 90% of the code and directed the development of the remaining 10%. During the course of my work with Swapasap, I mentored two software engineering interns as well as teaching Software Testing principles and basic User Interface Coding techniques to non-technical team members. I managed deployment processes and the back-end environment including data storage and performance optimizations. On the front-end, I installed and customized COTS components, added internationalization support, and integrated with third party APIs.
Technology Selection – Made technology and server configuration choices designed to scale with our hardware budget. Selected web hosting service. Made server package choices. Built server configuration, installation and upgrade scripts.
Development Environment – Selected tools for individual development environments and project-wide source code control. Laid out code structure. Designed and implemented branching and tagging schemes. Wrote new developer jump-start and coding philosophy documentation. Resulting ecosystem allowed for rapid, iterative development followed by tightly controlled deployment onto shared servers.
Back-end Development – Built and configured back-end services, DB structure (tables, views, procedures, triggers, and indexes), and DB interfaces. Implemented entire server stack on a single box, but designed all service calls to scale and handle the existence of multiple servers in multiple tiers. Built class and page structure. Optimized code for expected 95%+ read environment.
Front-end Development – Front-end work focused on creating an appealing design that was transportable to multiple browsers in multiple form factors. Internationalization was critical given the multinational project team and target audience. Made choices on whether to build or integrate components for UX services like messaging and chat/video chat. Integrated with Google services for mapping and location data. Integrated with Facebook for registration and login.
Key Concepts/Technologies – PHP, Perl, JavaScript, jQuery, AJAX, JSON, CSS, HTML, PostgreSQL, Redis, Debian Linux, Apache, Facebook API, Google Maps API, Google Translate API, Google Places API, Freichat, Bash, Git, PoEdit
Principal Partner
Development and Hosting – I served as both a Technical Lead and a Development Team member for several projects contracted to Alliances.ORG, a partnership I formed with another like-minded software engineer. I led a four-person development team building a PHP site tightly integrated with eBay. For another client, I built a custom MS Access application populated by Perl-parsed screen captures, Microsoft Access files and Excel spreadsheets. On another project, I built an ASP and Microsoft Access intranet-based total compensation statement for a law firm that drew data from ProBusiness, Excel Spreadsheets, and Perl-parsed screen captures. For 13 years, Alliances.ORG hosted email and web services for up to 15 clients. I performed Linux system administration duties during this time.
Key Concepts/Technologies – PHP, Perl, Python, Tcl, ASP, Java, Oracle, PostgreSQL, ODBC, LDAP
Import/Export Compliance Audits – I built a custom application to specifications provided by a law firm specializing in Import/Export compliance. Inputs included US government provided mainframe screen captures, Microsoft Access databases and Excel spreadsheets. I wrote all the ETL tools in Perl and Microsoft Access scripts. Deliverable was an Microsoft Access file with combined dataset.
Key Concepts/Technologies – Microsoft Access, ETL, Perl
ShopAndBuzz – I led a four person development team building a PHP site tightly integrated with eBay, designed to rate sellers and recommend purchases.
Key Concepts/Technologies – PHP, Apache, PostgreSQL, eBay API, Smarty Template engine
Total Compensation Intranet Site – In support of a communication company, I refactored and completed development of an intranet-based total compensation statement for a law firm. Data was provided from 13 different sources including Excel spreadsheets, ProBusiness data extracts, CSV files and MS Access databases. I wrote all the ETL tools in Perl to import and associate all the data into a single database table usable by the rest of the website.
Key Concepts/Technologies – PHP, Apache, PostgreSQL, eBay API, Smarty Template engine
System Administration – For 13 years, Alliances.ORG provided web hosting services for up to 20 clients. Services included DNS, email, web hosting, custom development, and archival in a 3-tiered, custom built network. We were called upon by customers to perform custom development. This was most often accomplished with Perl, PHP or bash shell scripting. I personally performed management of various unix-based services including Apache configuration, DNS and postfix customization and user management.
Key Concepts/Technologies – Linux, Bind, Postfix, Apache, Ssh, System Administration
Alliances Library – I am the primary architect for a set of libraries in several different languages that implement common web development tasks. The concept was born during my tenure at Sprint where we had approximately twenty projects in several different languages that were completely inconsistent with each other. The libraries that were an effort to reduce the time required for a new developer to pick up a project and become productive. The libraries were built in Java, PHP, Perl, Tcl, ASP, and Python. The functionality included Database abstraction classes, Session Tracking, emailer, etc.
On SourceForge [SourceForge].
Key Concepts/Technologies – PHP, Perl, Python, Tcl, ASP, Java, Oracle, PostgreSQL, ODBC, LDAP
Sr. Software Engineer
Senior Software Engineer – I was the fourth Software Engineer hired by Mandiant for MIR [PDF] development. MIR has three main components, the server (controller), the windows desktop application (client) and the data collection component (agent). MIR is designed to have its agents deployed throughout a company's network. These agents would receive requests to perform audits from a controller and would return collected data to the controller for later analysis. My primary area of focus was on development of a Linux-based Controller component for job management, web services, file storage and task scheduling. Most of the development was done in Python with specific components done in Perl and Bash. We delivered version 1 of MIR in time for a large marketing effort at the RSA conference in January 2008.
Administrative Web UI – Designed and implemented the MIR Admin UI, consisting of tools for backup and recovery, import/export, log analysis, user management, and elementary system administration. Wrote a series of tools to handle SSL key creation and key management which were an integral part of the MIR ecosystem.
Web Interface – Wrote the MIR Web interface, a RESTful web service that provided access to an XML representation of collected audit data and audit metadata.
Agent Controller, Scheduler, and Script Runner – Wrote several core Controller components that handled job management, communication with deployed agents, parsing and processing of job requests, and scheduling of future events. Worked closely with developers on the MIR Agent team to design and implement the Agent API.
Key Concepts/Technologies – Python, Twisted, SSL, Lucene, PostgreSQL, SQLite, XML, PyUnit, Perl, Bash, Scrum, Nginx, XML, Subversion, Eclipse, REST
Principal Support Engineer – As the MIR product garnered industry attention, there was an increasing need for engineering-level customer support. As someone who was intimately familiar with the inner workings of the product, I was tasked with both on-site and remote engineering support. Given my intimate knowledge of MIR, I was able to support both internal and external customers by assisting them with problem solving. I provided 24x7 on-site and remote assistance for the MIR product for 3 years resulting in a 100% service contract resubscription rate. I was involved in training new Mandiant personnel, mentoring junior members of the support group and moderating the online MIR forums.
Professional Services – Worked as an embedded developer for one of our largest customers. Provided customization of the MIR platform to suit their specific requirements with rapid turn-around.
Customer Support – Provided 24x7 on-site and remote assistance for the MIR product for 3 years resulting in a 100% service contract resubscription rate. Managed the online MIR forums, administering access control for users, answering questions, and populating the forums with over 100 in-depth posts and trouble-shooting advice. Represented Mandiant's support organization during product sales meetings and consulting engagement meetings.
Training – Trained and mentored new support engineers. Provided introductions to MIR for new Mandiant personnel. After leaving the company, my recorded briefings on how MIR works and how to support it were still a primary part of the training for new support staff.
Key Concepts/Technologies – Product Support, Python, Bash, Perl, Gentoo Linux,, Salesforce
Sr. Software Engineer
Lead Software Engineer – I was the lead developer for an embedded software development team attached to Sprint's Long Distance Network Operations organization. Our primary role was to work closely with network engineers and operations centers to prototype and rapidly develop applications to ensure Sprint's Long Distance network was up and running smoothly. My team and I developed and maintained over 75 different applications in several different languages on several different platforms. I standardized the development process for the team (6 to 14 developers), improved code reuse, streamlined development and deployment processes and improved maintenance capabilities by creating a shared look and feel between languages and applications.
Development Team Maturation – During my time with the team, I introduced several techniques and technologies that improved the team's performance and the work products produced. I introduced PHP and Perl which reduced development time by up to 80%. I introduced Use Case based design and requirements analysis to improve the quality of the interactions we had with our customers. I introduced CVS and Eclipse to standardize development tools and to consolidate code. I built a server and operating system independent way to deploy and configure applications that allowed us to develop on a Miscrosoft Windows NT server running Oracle and deploy into production on a Linux box with PostgreSQL without changing the application code. Also developed a Corporate Theme library for web applications that would pull design elements from Sprint's corporate intranet servers to keep our applications up to date with the latest look and feel deployed into the intranet.
Developed Applications – The team developed over 75 different applications. We were responsible for new development, maintenance of existing applications and evolution of applications over time as new needs were identified by the customer groups. As the Development Lead, I was often called upon to attend scoping meetings, define parameters, provide delivery and level of effort estimates, and work with customer groups to determine requirements and success criteria. Individually, and as a member of our development team, I received over 15 SVE (Sprint Values Excellence) awards during my tenure.
Key Concepts/Technologies – PHP, Perl, CVS, Eclipse, Java, JavaScript, TCL/Expect, AJAX, Linux, Windows 2000, Windows NT, Solaris, ASP, ColdFusion, Oracle, PostgreSQL, SQLServer, JSP, Bash
Software Engineer
Netminder Web-based UI – I was a junior member of 15 person development team tasked with building a web UI for Lucent's existing Netminder application. I worked with several teams during this time, contributing to both the front-end and the back-end. For the applet team, I created a C emulator that would generate network events to be displayed on the applet. I also worked on the interface between the applet and the LDAP repository where certain information was kept. For the Perl CGI team, I contributed to the main data processing module as well as providing the LDAP access layer.
Key Concepts/Technologies – Java, Perl, LDAP, C, Waterfall, OOA/D
NewWave Technologies & MountainCAD
Network Support Engineer
Support / Installations – I was the first tier technical contact for NewWave and Mountain CAD customers for Operating Systems and Internet connectivity issues. Additionally, I went on-site to install workstations, plotters and networking infrastructure for various clients.
Key Concepts/Technologies – Windows 95, Windows NT, Windows 98, TCP/IP, Linux, Ethernet
Web Development – NewWave Technologies was a local dial-up Internet Service Provider in South Charleston, WV. When I started working with them they had 25 phone lines. By the time they were purchased by in 1998, they were up to over 200 phone lines. I created simple HTML sites for several of NewWave's corporate customers including a local radio station and a couple of other local businesses.
Key Concepts/Technologies – HTML
Graduate Assistant
Research Assistant – I wrote trafgen [PDF] to simulate network traffic for IP protocol testing over satellite links. I also updated tcplib [abstract] and tcptrace []. Based on my work with trafgen, I was published [PDF] in the 7th International Conference on Telecommunications Systems.
Key Concepts/Technologies – C, C++, Networking, Operating Systems, Solaris, TCP/IP, LaTeX
Teaching Assistant – I was a Teaching Asstant for Introduction to Computer Science using C++ and Computer Literacy.
Key Concepts/Technologies – Windows 95, C++
LB&M Associates / Advancia
Environmental Engineer
Field Engineer – I led a four-man groundwater and surface water sampling team for two one month long on-site engagements. We collected, stored and shipped samples in compliance with standards. I analyzed results and produced reports outlining our findings with recommendations for remediation.
Key Concepts/Technologies – Microsoft Word, Microsoft Excel, Water Sampling, On-site Management
Chesapeake Bay Seafood House
Back of the House
Cook – I started working as a busboy. I was quickly moved into the kitchen and was eventually made a Closing Kitchen Manager.
Summer Work – I worked summers and holidays from my senior year of high school to my senior year of college. I was a busboy, dish washer, line cook, fry cook, saute cook, host, cashier, waiter, bartender, prep cook, and kitchen manager. I learned as much as I could about as much as I could. I was regularly sent to other stores to help them out if they were overwhelmed or shorthanded.
I earned a Master of Science degree in Electrical Engineering/Computer Science in August 1998. GPA – 3.66. Major areas of study included Operating Systems, Networking, and Algorithms.
Thesis – An Efficient Approach to Statistically Accurate Background Network Traffic [PDF]
B.S. ChemE
I earned a Bachelor of Science degree in Chemical Engineering in May 1993 with a Minor Concentration in Engineering Management. Extra emphasis on Organic Chemistry. Elective coursework in Computer Science.
I was a member of the first graduating class of the Thomas Jefferson High School for Science and Technology, a magnet High School in Fairfax County, Virginia focused on Science and Technology. GPA – 3.75. National Merit Scholarship winner. Chemistry focus. Elective classes in Computer Science.
Shiffer, Jason; Frazier, Matthew; Cunningham, Sean; Hogsten, Scott; Helvey, Eric; Butler, James; Villadsen, Peter. 2015. Method and system for collecting and organizing data corresponding to an event. U.S. Patent 8,949,257, filed February 1, 2008, and issued February 3, 2015.
This patent application was filed as part of Mandiant's MIR development effort. The crux of the patent is the MIR system's capabilities for remote acquisition of specific pieces of information that a Security Incident Responder believes would be useful in the investigation of a network breach on specific computers or throughout a network.
Shiffer, Jason; Frazier, Matthew; Cunningham, Sean; Hogsten, Scott; Helvey, Eric; Wilson, Theodore. 2013. Method and system for analyzing data related to an event. U.S. Patent 8,566,476, filed February 1, 2008, and issued October 22, 2013.
This patent application was filed as part of Mandiant's MIR development effort. The general idea behind this patent was to collect a series of data files from various computers in a network and to identify anomolies between different hosts. The identification of these anomolies might lead Security Incident Responders to identify compromised hosts and the method of infiltration.
Freely available library of classes and methods designed to make moving from one language to another painless.
Translation of OpenWall's passwdqc program into PHP.
TS/SCI Cleared 2011
TS/SCI (SSBI) clearance received in 2011. Clearance is now expired.