C++ Developer in New York, NY, United States
Member since September 7, 2016
Andrew is an experienced and talented C/C++ engineer. His experience ranges from low-level device driver development and team leadership delivering of software systems from scratch for state-of-the-art fitness electronics to development and production deployment of multi-threaded/multi-core HF trading applications. He loves to build complex, robust, performant and scalable infrastructure as well as impactful end-user applications.
Senior Software Engineer2008 - 2015Garmin
Technologies: C, C++, Python, Git, Vim
- Led the engineering team to create an accelerometer-based running efficiency heart rate monitor. Responsible for software architecture and scheduling, major design reviews, manufacturing support, and testing.
- Designed and developed the framework for the user interface of a next-generation chart plotter, a GPS-driven marine navigation device.
- Designed and developed a data collection framework for the storage, management, and access of sensor data used to create algorithms for sports electronics such as accelerometer-based swim detection, accelerometer-based running/walking speed, and distance monitors, heart rate monitors, and bike power meters.
- Developed an accelerometer-based bicycle cadence detection algorithm used in the bicycle power sensor.
- Designed and developed real-time system level firmware for the Garmin Vector, a state-of-the-art bicycle power meter. This system has four separate circuit boards, two of which interact over wireless and two which communicate using the wired protocol mentioned above.
- Designed and developed a robust, bi-directional, and time sensitive communication protocol used when only two data lines are available for transmission.
- Developed application-level code for the Garmin FR60 sports watch.
- Designed and developed a software tool to automate the development of sport watch user interfaces. This software allows its user to design a user interface at a high level and then auto-generate the required embedded C code for the commercial realization of the design.
ToolsJenkins, Microsoft Visual Studio, Vim Text Editor, Git, GCC, Gerrit, CMake, VTune
ParadigmsAutomated Testing, Unit Testing, Test-driven Development (TDD), Agile, REST
PlatformsWindows, Linux, Linux RHEL/CentOS
OtherEmbedded Systems, Performance Optimization, Server Administration, Device Drivers, Fintech
- Professional Engineer designation in Engineering2012 - 2012The Association of Professional Engineers and Geoscientists of Alberta - Alberta
- Bachelor's degree in Computer Engineering2004 - 2008University of Western Ontario - London Ontario Canada