Sign in

Embedded software engineer

Cambridge, Ontario, N1P 1J9, Canada
August 24, 2016

Contact this candidate


Patrick O'Banion

** ***** ********, *********, *******, N1P-1J9 519-***-****

Software Engineer

Object-Oriented Design and Development / Low-Level Embedded Systems / Relational Database Design

Innovative and Creative Software Engineer offering over 15 years of design and development experience including full life cycle development from concept to delivery as well as project sustaining / updates / upgrades

Expertise in debugging embedded systems and desktop applications using emulators, IDE’s, debuggers and memory dumps.

Excellent creativity, problem solving and trouble shooting skills to help resolve issues and create new solutions for both new and existing projects

Over 15 years Relational database design experience using MS Access, My SQL & SQL Server

Technical Tools

MS Visual Studio IDE, Visual Basic 6 IDE, Eclipse IDE

MS SharePoint 2013

MS Office (Excel, Word, Access, PPT) with extensive use of macros and VBA (>20 years)

SQL Query tools, MS Query, Power Query

X86 Emulators

VHDL, Xilinx ISE webpack for FPGA design using VHDL

Eagle CAD, OrCAD for electrical/digital circuit design

Solid Works 2015, AutoCAD and CATIA V5, Master CAM X6

Professional Experience

Application developer, Jan 2014 – Present, TMMC Cambridge

Designing and coding SharePoint web based applications

Designing and configuring SharePoint Sites for data/document storage as well as for application back ends

Using SharePoint Designer 2013 for creating workflows to automate company processes

Creating and interpreting SQL queries for various applications and systems

Refactoring and rewriting inefficient and broken business applications in VBA

Using MS Visio for layout and design of Workflows and algorithms

Creating intranet web services

Using MS Visual Studio 2013, and other various tools to design & write SharePoint 2013 applications for centralizing and refining outdated MS Access and Excel systems

Interfacing to SharePoint web services for application enhancement (SOAP & REST)

MS Access database and application design and coding

Designing and coding new business applications to suit a wide variety of company requirements.

Mechanical Structural Designer, Sept 2013 - Jan 2014, Pride Signs Inc.

Responsible for structural/mechanical design on commercial signage using Solid Works 2014

Configuration and maintenance of Solidworks 2014

Creating/updating Solidworks VBA macros

Creating engineering drawings for in house manufacturing of the signs.

Participating in design peer reviews

President, March 2008 – Sept 2013, Machine Tools Warehouse

Electrical/Mechanical designs for all products including new CNC mills, retrofit CNC kits, complex enclosed machine stands and various part/brackets/assemblies using Solid Works and OrCAD

General Machining, Welding

CNC programming with Master CAM X6

Construction and testing of all prototypes

Embedded Linux development

Development of Atmel AVR motor BLDC motor controller in ‘C’

Integration of servo systems and variable frequency drive motor controls

Sourcing parts for new product designs

Establishing relations and communicating with factories in China

Website Maintenance and development

Customer support and service

Embedded Software Engineer, March 2007 – Oct 2009, Blue Coat Systems Inc.

Developed and supported Virtual machine debugging system in C++ for field system crashes. The system consisted of…

Kernel modules to dump current processor context and memory, and respond to GDB commands

Separate application to reformat the context and memory to be used by the emulator

Customized x86 emulator to execute context and memory as though it were a live system

Customized GDB to connect to the emulated system and debug the problem

Working with x86 family of processors (C++ and x86 Assembly)

Developing Kernel components and embedded test applications using C++

Assembly level coding and bug fixes

Triaging of system bugs

Embedded Software Engineer, July 2004 – March 2007, Wescam Inc.

RTEMS and VX Works API programming in ‘C’

Camera drivers

System peripheral communications drivers

Desktop and Pocket PC Serial Communications applications

Desktop systems test applications

System level debugging and trouble shooting

Control loop coding

Compiling and Releasing system software builds

Programmer/Analyst, April 1998 - July 2004, Wescam Inc.

1-3 tier Application design and development using Visual Basic 6

Database administration and design

Report writing for both desktop and web applications (Crystal Reports)

Extensive use of VBA for MS Access and MS Excel for data imports and conversions

VB/Java Script and COM AddIn programming for MS Outlook

Writing of technical documents for user support

Successful projects include

Customer Service application for tracking all aspects of customer service activities

Part non conformance tracking application

Barcoding system for MRP based Work Order updates, tracking and control

Intranet based application for referencing MRP Data

Multi-user data entry application for yearly inventory

Maintaining company payroll application


Mohawk College - Hamilton, Ont.

Computer Electronics Engineering Technology (Graduated with Co-op diploma), 05/97

McMaster University - Hamilton, Ont.

Computer Science (Completed 2 years), Sept 98 – Apr 2000


Basic Computer Science Skills: Research, documentation interpretation and reading comprehension, understanding and using library functions, logical thinking, creativity, problem-solving, communication, team approach, algorithm development and analysis.

Focus on Usable and Maintainable Code: My goal is to make a system simple and usable without trying to create overly complex code. The code should be understood by others working on the system. I always consider the maintainability and evolution of the code the project inception. Meaningful names for functions and variables can make the code self-explanatory.

Debugging: The goal is to create a working system. Finding and correcting bugs is a necessary part of developing a working system. I have years of experience in debugging from low level single stepping of machine code within a PC emulator to higher level error handlers.

Refactoring: Ability to improve code without changing what it does. Making existing code more efficient as well as integrating existing algorithms and code into current projects.

Willingness to Leverage Existing Code: Reuse of existing proven code prevents re-inventing the wheel, use of third-party libraries, and designing code that will be reusable will help make any project more stable, efficient and functional.

Quality: Know and recognize the value of efficient tests. Know when and where to test code for maximum results without wasting time on inefficient or meaningless tests.

Passion for Coding: I always take pride in the code I write. It is like creating a piece of art.

Ability to code in Multiple Languages: I have used ‘C’, C various assembly languages, Visual Basic, Pascal, JavaScript and markup languages. It is important to have a good grasp on several different methods a system can be created. This will help to lay a good foundation for system efficiency and functionality and to provide a good understanding of the system ranging from low level machine code to high level structures.

Patience: Hunting down bugs and repairing/redesigning code written by others can take a long time. Having a lot of patience is a key quality for software engineers who want to work in this field.

Curiosity. I was always one of those kids taking things apart to see how they worked.

Contact this candidate