Brady Pomerleau, Real-time Embedded Systems Developer in Calgary, AB, Canada
Brady Pomerleau

Real-time Embedded Systems Developer in Calgary, AB, Canada

Member since October 25, 2022
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.
Brady is now available for hire

Portfolio

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

Location

Calgary, AB, Canada

Availability

Part-time

Preferred Environment

Unix, Windows, Visual Studio Code

The most amazing...

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

Employment

  • 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 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

Experience

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

Skills

  • Languages

    Python 3, C++, Python, SQL, VHDL, Java, C++11, Go, CSS, HTML, Bash Script, Bash, XML
  • 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, Optoelectronics, 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
  • Frameworks

    Flask, Bootstrap, Windows PowerShell, Qt
  • Libraries/APIs

    REST APIs, Protobuf, API Development
  • Tools

    GitLab CI/CD, VirtualBox, Apache, Wireshark, GitLab, IBM RTC, DOORS, MSBuild
  • Platforms

    Unix, Visual Studio Code, Android, Docker, XenServer, Apache2, Arduino, Linux, Windows, Windows Server 2016
  • Paradigms

    DevOps
  • Storage

    Databases, MySQL, Elasticsearch, MongoDB, Redis

Education

  • Bachelor's Degree in Computer Engineering
    2015 - 2019
    University of Alberta - Edmonton, Alberta

To view more profiles

Join Toptal
Share it with others