Eric Poulsen is a Senior Firmware Engineer with 12+ years building embedded systems, firmware, and IoT solutions across ESP32, AVR, Raspberry Pi and ARM platforms, and a strong background in C, C++, Python and MicroPython. He blends low-level driver work (HW SPI, I²C, UART, watchdogs) with advanced Linux administration, board-level prototyping and AWS cloud integrations, enabling end-to-end device-to-cloud products. Notable open-source contributions include significant enhancements to the widely used MicroPython project—adding non-blocking SSL, wired Ethernet, RTC, sleep modes and ESP32 peripheral support. Eric’s experience spans startups and enterprises (Syntiant, Arista, Shure) and roles from hardware architect to embedded lead, giving him a rare cross-domain fluency in circuit design, firmware and cloud services. Based in Aliso Viejo, CA, he’s currently focused on firmware and neural-network driver work, bringing pragmatic problem-solving honed since hands-on Navy technical training.
Old port of MicroPython to the ESP32 -- new port is at https://github.com/micropython/micropython
Role in this project:
Embedded Systems Engineer / IoT Developer
Contributions:17 commits, 31 PRs, 399 comments in 7 months
Contributions summary:Eric primarily contributed to the MicroPython port for the ESP32. They implemented hardware SPI peripheral support, including initialization and data transfer capabilities. They also added a `unique_id()` function to access the MAC address and implemented a `WDT()` class for the watchdog timer. Furthermore, the user addressed socket-related issues and improved the Ethernet interface functionality.
MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems
Role in this project:
Embedded Systems Engineer / IoT Developer
Contributions:17 commits, 12 PRs, 181 comments in 2 years 3 months
Contributions summary:Eric focused on enhancing the MicroPython environment for embedded systems. Their contributions involved implementing non-blocking SSL sockets, adding a `getpeercert()` method for SSL sockets, and incorporating finalizer support to manage ussl object memory. They also integrated wired Ethernet functionality by implementing `network.LAN()`, alongside adding features like sleep/deepsleep capabilities and an RTC class to the machine module. Additionally, the user fixed issues and improved functionalities related to HW SPI transfers and DNS configuration in the network module.
Find and Hire Top DevelopersWe’ve analyzed the programming source code of over 60 million software developers on GitHub and scored them by 50,000 skills. Sign-up on Prog,AI to search for software developers.
Request Free Trial
Eric Poulsen - Senior Firmware Engineer at Augmodo