Skip to main content

Professional Resume of Michael A. Burns


SENIOR SOFTWARE ENGINEER

System, Network, Multi-Threaded Programming | Cross-Platform Development

Detail-oriented software engineer and architect with 25 years of success in developing innovative solutions to solve complex issues at both the design and sustaining phases of development. Advanced capabilities with a broad range of development technologies including strong network and cross-platform programming skills with an eye for security and optimization considerations. An effective leader who enlists the support of all team members in achieving project and organizational goals.

Technical proficiencies include ...

Development System, Network and Multi-Threaded Programming, Device Driver Development, Object-Oriented Design, System Architecture, Project Management, Technical Documentation
Programming C, C++, TCP/IP, WDK/DDK, MFC, Java, IPsec, Assembly, Scripting (Python, shell), CMake, SQL, MySQL, Oracle, Inno Setup, InstallShield, Wix, git, Perforce, SourceSafe
Environments Windows (10, 2012, 7, 2008, Vista, 2003, XP, 2000), Linux (Ubuntu, Redhat, CentOS, Fedora, SUSE), Unixes (Solaris, HP-UX, AIX), Mac OS X, Visual Studio, Eclipse, Xcode, Windbg, gdb, mdb

PROFESSIONAL EXPERIENCE

Cradlepoint, Inc., Los Gatos, CA, 12/2015 - present
Staff Platform Software Engineer

Remote engineer working in an Agile environment primarily responsible for the development of enhancements and improvements to the cross-platform client component of our product as well as its maintenance focusing on the Linux and Windows platforms though working on the other supported platforms as needed. The client component consists of network drivers and multiple processes written primarily in C++ with some C and Python code all managed with CMake. Also wrote and maintained several installers, the Inno Setup installer for Windows, the Debian installer package for Debian-based systems, a RPM installer package for RedHat-based systems and a self-extracting archive installer for other Linux platforms.


Pertino, Inc., Los Gatos, CA, 03/2012 - 12/2015
Member of Technical Staff

Note: Pertino was acquired by Cradlepoint, Inc. in December of 2015.

Remote engineer working in an Agile environment primarily responsible for the development of enhancements and improvements to the cross-platform client component of our product as well as its maintenance focusing on the Linux and Windows platforms though working on the other supported platforms as needed. The client component consists of network drivers and multiple processes written primarily in C++ with some C and Python code all managed with CMake. Also wrote and maintained several installers, the Inno Setup installer for Windows, the Debian installer package for Debian-based systems, a RPM installer package for RedHat-based systems and a self-extracting archive installer for other Linux platforms.

Selected features include ...

  • HTTP client object: Re-wrote our HTTP client class to utilize libCURL in order to gain cross-platform functionality. The platform specific and libevent implementations are selectable at run-time.
  • Reference counted objects: Re-factored our RefCount and CountedPtr classes to provide functionality similar to std::shared_ptr. The changes eliminated the need for occasional calls to add or release references or delete the object. Unfortunately, moving to std::shared_ptr was not possible at the time due to compiler support limitations on some platforms.
  • Performance: Improved the through-put performance of the client by optimizing both the read and write paths with the biggest gain being made through optimizations on the write path. The improvements were especially dramatic on the Windows platform going from 25/Mbps to 150/Mbps.


Pertino, Inc., Cupertino, CA, 12/2011 - 03/2012
Independent Software Consultant

Key remote engineer working in an Agile environment that provided development expertise for the Windows platform building networking and service applications using C, C++, Python and MFC. Also developed the IPC layer for the multi-process project and built the installer using Inno Setup.

Key accomplishments ...

  • Windows service: Designed and implemented the Windows service framework written in C++.
  • Tray application: Designed and implemented the Windows tray application written in C++ and MFC.
  • Inter-process communication: Designed and implemented the IPC object written in both C++ and Python. The IPC object was used by two services and the tray application to communicate with each other.
  • Installers: Created the installer for the Windows platform using Inno Setup.


Apani Networks, Brea, CA, 10/2000 - 11/2011
(formerly Netlock Technologies, Inc. - 10/2000 - 07/2003)
Software Engineering Manager

Develop, maintain and upgrade enterprise security software consisting of four major components, the Agent which included both kernel and user space code written in C, a policy server written in Java, an administration console also written in Java and a MySQL or Oracle database on the back end for policy and configuration storage. Coordinate the design and implementation of various features, collaborating with project managers, team members and customer representatives to ensure on-time completion of project deliverables. Provide technical leadership for team members.

Selected features include ...

  • Late-Bind Optimization for Deny Policy: Designed and implemented an improvement to the late-binding process which eliminated the need for an isolated server to request late-bind information when not necessary. The number of late-bind requests was reduced by over 90% depending upon the policy in place for the isolated server.
  • Isolated Agent: Designed and implemented the ability to isolate an Agent in our system now known as server isolation. The feature allows a customer to restrict communication with a server to only those channels specifically allowed in the security policy. The feature has successfully met the needs expressed by several customers.

Technical manager successful in the formation of the Sustaining Engineering Group which reduced the impact of escalated customer issues on product development. Managed several engineers through several projects resulting in the delivery of the completed projects as scheduled mitigating issues as they arose during the cycle.


VoltDelta, Orange, CA, 5/2001 - 11/2001
Contractor - Software Engineer

Design and implement a Test Suite for the Workstation to Switch Interface (WSI) product. The test suite consisted of a multi-threaded Operator Workstation simulator, a digital multiplex system (DMS) simulator and a manager. The manager application was driven by scripts (VBScript, JScript, CScript). The project allowed the customer to successfully test their WSI product with hundreds of simulated systems allowing them to successfully achieve their scaling requirements.


VoltDelta, Orange, CA, 4/1992 - 10/2000
Member Technical Staff

Develop, maintain and upgrade software for a Directory Assistance call processing system. Interface with technical staff and customers to resolve design and/or implementation details or functional problems. Often relied upon to solve critical problems.

Primary architect and designer for the Windows based, multi-process Operator Workstation (OWS). The object-oriented design of the Windows based OWS allowed the company to add new functionality quickly and efficiently as new requirements arose. The stability of the product was also improved due to the isolation of the various components.


Printrak, Inc., Anaheim, CA, 4/1992 - 12/1994
Contractor - Software Engineer

Design and implement specific, customer driven enhancements to the ProFile Network Photo System.


Printrak, Inc., Anaheim, CA, 4/1987 - 4/1992
PC Systems Analyst/Assoc System Manager

Develop, maintain and upgrade software for the ProFile Network Photo System.

Designed and implemented a graphical Auto-Classification Training System (fingerprint classification and identification). The ACTS allowed the file conversion department to quickly train new data entry personnel allowing the leads to focus on their tasks resulting in increased productivity for the department.


09/1981 - 04/1987

Worked as a Machinist for several companies. My first “computer” related position was for Quaker State Oil in 1986 where I worked as a data entry clerk. After only 3 months in that position, I was promoted to assistant supervisor and was responsible for the split-shift. I used this position to transition into the computer industry.