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
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
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
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’
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.
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.