Skip to main content

Professional Resume of Michael A. Burns


SENIOR SOFTWARE ENGINEER

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

Technical proficiencies include ...

Development System, Network and Multi-Threaded Programming, Cross-Platform Development, Device Driver Development, System Architecture, Agile, Project Management
Programming C, C++/11/14, Java, Assembly, Python, Shell Scripting, TCP/IP, WDK/DDK, NDIS, MFC, OpenSSH, Ipsec, CMake, git, GoogleTest, Visual Studio, Eclipse, Inno Setup, Wix, rpm, deb
Environments Windows, Linux, Unix, Mac

PROFESSIONAL EXPERIENCE

Cradlepoint, Inc., Los Gatos, CA, 12/2015 - present
Software Development Engineer - Remote

Standout software engineer responsible for the development of enhancements to the cross-platform client component of our product as well as its maintenance with a focus on the Linux and Windows platforms. The client component consists of network drivers and multiple processes written primarily in C++ with some C and Python code with the build process managed by CMake. Also wrote and maintained various installers.

Skills C, C++/11/14, git, CMake, GoogleTest, Eclipse, Visual Studio, gdb, Wix, rpm, deb
Platforms Linux, Windows, Mac, Android, iOS

Selected features include ...

  • Tunnel Client object: Currently re-writing our Tunnel Client to utilize ASIO, replacing Libevent, to improve performance and gain the ability to scale by utilizing multiple servers for optimized communication paths. The work also includes replacing the RefCount and CountedPtr objects with std::shared_ptr and std::enable_shared_from_this where necessary.
  • iOS client: Ported our core client code to the iOS platform and created a rough UI for testing. The project was then handed off to others to put expand the UI and prepare for submission to the Apple Store.
  • Route Manager object: Refactored the Route Manager object to better separate cross-platform functionality from platform specific functionality. This was required to simplify the addition of new platforms, specifically our hardware based product offerings and iOS.


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

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

Software engineer working on the cross-platform client component of the product written in C++ with a focus on the Linux and Windows platforms. The Linux and Mac clients utilize a TAP driver while the Windows client utilizes an NDIS mini-filter written in C. The client consists of a service/daemon written in C++ and a tray application consisting of platform specific UI code.

Skills C, C++/11, Python, git, CMake, GoogleTest, Eclipse, Visual Studio, gdb, Inno Setup, Wix, rpm, deb
Platforms Linux, Windows, Mac, Android

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.
  • Linux installers: Created the installers for the Linux platform, creating a Debian package, an RPM package and a self-extracting archive used to install the client on platforms that do not support either Debian or RPM installer packages.


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

Key engineer in designing and developing the initial client application on Windows. The client was demonstrable in under 3 months and used to obtain A-round funding. The client consisted of an NDIS driver written in C, a Windows service written in C++, a set of Python scripts that functioned as a Windows service and a tray application written in MFC used to provide status information to the user. The build process utilized CMake to support cross-platform, multi-target project generation.

Skills C, C++, Python, MFC, git, CMake, GoogleTest, Visual Studio, Inno Setup
Platforms Windows

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

Senior software engineer responsible for our enterprise security software consisting of four major components, the cross-platform Agent – an IPsec client at its core – which included both kernel and user space code written in C, a policy server also written in C, an administration console written in Java and a MySQL or Oracle database on the back end for policy and configuration storage. Coordinated 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.

Skills C, Java, IPsec, Perforce, SourceSafe, Visual Studio, gdb, mdb, InstallShield, SQL, MySQL, Oracle
Platforms Windows, Linux, Mac, Solaris, HP-UX, AIX

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.
  • Operating System Support Expansion: Modified the Agent, including both user space applications and the kernel module, to work on newer versions of the Linux kernel and Linux distributions.

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.