Brady Pomerleau, Developer in Calgary, AB, Canada
Brady is available for hire
Hire Brady

Brady Pomerleau

Verified Expert  in Engineering

Real-time Embedded Systems Developer

Calgary, AB, Canada

Toptal member since October 25, 2022

Bio

Brady has three years of experience as a Software Engineer. His experience is predominantly in embedded firmware in C/C++. He also has significant experience with CICD, GitLab, Docker and scripting for test automation and Python. Brady has some experience with networking with Cisco, Type I Hypervisors and full-stack development in Apache, Flask, Go, Bootstrap.

Portfolio

FulcrumAir
ArduPilot, PX4 Autopilot, C++11, C++, Software Design, Software Development...
FulcrumAir
C++, GitLab, PX4 Autopilot, ArduPilot, PID Controllers, Control Systems...
General Dynamics Mission Systems-Canada
C++, Python 3, GitLab CI/CD, VirtualBox, Go, Software Design...

Experience

  • Real-time Embedded Systems - 3 years
  • Software Development - 3 years
  • C++ - 3 years
  • Python - 2 years
  • GitLab CI/CD - 1 year
  • PX4 Autopilot - 1 year
  • Go - 1 year
  • Software Design - 1 year

Availability

Part-time

Preferred Environment

Windows, Unix, Visual Studio Code (VS Code)

The most amazing...

...project I've developed is a dynamic network topology generator for developing and testing networking devices.

Work Experience

Manager of Software Engineering

2022 - PRESENT
FulcrumAir
  • Developed new features and resolved issues in the robotics firmware.
  • Created and maintained new and existing libraries for interfacing with peripheral sensors and actuators.
  • Performed embedded systems networking troubleshooting using an oscilloscope and software debugging.
  • Used a CI build pipeline for the robotics firmware.
  • Migrated an entire embedded system application from ArduPilot to PX4 autopilot.
  • Implemented new features and bug fixes for Qt-based ground control station.
Technologies: ArduPilot, PX4 Autopilot, C++11, C++, Software Design, Software Development, Real-time Embedded Systems, Scripting

Software Engineer

2022 - 2022
FulcrumAir
  • Developed embedded control software for robotics and UAV (C++).
  • Designed and developed various drivers for actuators and sensors.
  • Tuned PID controllers gains and actuator timings for robotics and UAV.
Technologies: C++, GitLab, PX4 Autopilot, ArduPilot, PID Controllers, Control Systems, Unmanned Aerial Vehicles (UAV), Qt

Software Engineer

2020 - 2021
General Dynamics Mission Systems-Canada
  • Designed and implemented a dynamic network topology generator for developing and testing networking and communications devices, including front-end, API, and back-end services.
  • Developed new features and bug fixes in embedded communications software.
  • Planned development activities in a SAFe Agile project management environment using IBM CLM software.
  • Managed on-premises build, test, and deployment of CI/CD pipelines using GitLab CI/CD, Python, Docker, and XCP-ng.
  • Created internal SaaS tools and applications to improve developer efficiency and quality of life.
  • Deployed a reverse-proxy server to provide access to SaaS tools across the organization.
  • Generated and maintained various documentation, including version description documents, firmware description documents, and numerous how-to guides and white papers.
  • Automated the generation and maintenance of test results and verification of cross-reference matrices.
Technologies: C++, Python 3, GitLab CI/CD, VirtualBox, Go, Software Design, Software Development, Real-time Embedded Systems, Python, Scripting, XML, SQL, Full-stack

DevOps Engineer

2019 - 2020
General Dynamics Mission Systems-Canada
  • Developed CI/CD build/test/deploy pipelines for 20+ software projects.
  • Implemented custom plugins for Wireshark packet dissector.
  • Updated release documentation for software components.
Technologies: DevOps, C++, Wireshark, GitLab CI/CD, GitLab, Docker, VMware ESXi, Apache2, Elasticsearch, IBM Rational Team Concert (RTC), DOORS, Configuration Management, MySQL, MongoDB, Redis, MSBuild, Windows PowerShell, Bash Script, Bash, Linux, Windows, Windows Server 2016, Protobuf, APIs, REST APIs, API Development, SQL, Full-stack

Dynamic Network Topology Generator

Here I acted as the primary designer and end-to-end developer of a system for creating dynamic networks of communication devices. We tested interconnective features for these devices and had to move devices to connect them with custom cabling.

I designed a network of managed switches that allowed us to create and destroy network topologies dynamically without moving physical hardware. I wrote a REST API using Python Flask and Apache to accept YAML topology files. The network topology specified in the file was then generated by creating VLAN tunnels on the managed switches. Available resources and active tunnels were tracked with MySQL databases.

Later, I developed a command-line interface for the system using Go. The CLI could create, list, and destroy active networks. This interface would cache canonical topologies and reference them by name instead of supplying the file each time you wanted to create.

This dynamic network generator allowed us to double the amount of automated testing time available overnight and was critical for the project's success through the COVID-19 pandemic.

Battery-Powered DSLR Gimbal Prototype

A personally motivated project, a gimbal for mounting a DSLR camera for time-lapse and panorama photography.
I designed and prototyped the entire project, including mechanical, electrical, and software.

The gimbal was designed to allow rotation around the optical center of the camera instead of the center of gravity. It consumes more power but reduces parallax shifts.
I adapted an open source DSLR control library to control the camera via Arduino microcontroller over USB.
I built a hot-swappable power converter to power the gimbal with power-tool batteries.

Reverse Proxy

I developed a reverse-proxy server using Apache2 on RHEL.
The reverse proxy was implemented to provide software services across multiple segments of an enterprise network.
The server included a front-end landing page implemented in Python Flask and Bootstrap. The page had links to various servers proxied by my reverse proxy.
Authentication to access the server used OAuth2.0.

Data Injection and Retrieval Using CLM API

Using the API provided by the IBM CLM suite, I wrote several Python applications to retrieve, analyze, and inject data into the CLM software.
Some examples of collected data include data from network analyzers, test logs, and unit and integration test results.
Data retrieved from the CLM suite was used in automatic report generation.
2015 - 2019

Bachelor's Degree in Computer Engineering

University of Alberta - Edmonton, Alberta

Libraries/APIs

REST APIs, Protobuf, API Development

Tools

GitLab CI/CD, VirtualBox, Apache, Wireshark, GitLab, IBM Rational Team Concert (RTC), DOORS, MSBuild

Languages

Python 3, C++, Python, SQL, VHDL, Java, C++11, Go, CSS, HTML, Bash Script, Bash, XML

Frameworks

Flask, Bootstrap, Windows PowerShell, Qt

Platforms

Unix, Visual Studio Code (VS Code), Android, Docker, XenServer, Apache2, Arduino, Linux, Windows, Windows Server 2016

Paradigms

DevOps

Storage

Databases, MySQL, Elasticsearch, MongoDB, Redis

Other

Software Development, Software Design, Real-time Embedded Systems, PX4 Autopilot, Scripting, APIs, Hardware, Full-stack, Physics, Algorithms, Operating Systems, Electrical Engineering, Digital Signal Processing, Multimedia Processing, Electronics, FPGA, ArduPilot, Cisco Networking, IEEE 802.1Q, Mechatronics, Multimedia, Power Supplies, Prototyping, Robotics, Video Processing, Statistics, Software, RHEL, Proxy Servers, VMware ESXi, Configuration Management, PID Controllers, Control Systems, Unmanned Aerial Vehicles (UAV), OAuth, RPC

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring