About this Embedded Software Engineering Intern role at Espace
We are looking for an Embedded Software Engineering Intern to work on real firmware for real hardware that ships. You will be embedded (pun intended) with a senior firmware engineer working on a sensor-rich, wireless-connected IoT device: writing production C on Zephyr RTOS, bringing up sensors, debugging on live boards at the bench, and moving data from the edge to the cloud.
This is not a shadow-and-observe internship. You will have your own board, your own debugger, and your own work items from week one. You will pair daily with your mentor — at the whiteboard, at the bench, and in code review — and by the end of the internship you will have shipped at least one feature end-to-end on live hardware.
What you will do:
Hands-on Development
-
Write and debug firmware in C on Zephyr RTOS for Arm Cortex-M class MCUs.
-
Work on sensor integration and sampling pipelines — IMUs, accelerometers, microphones, temperature sensors — over I2C, SPI, and I2S.
-
Build, flash, and debug boards daily using West, CMake, SWD/J-Link, and serial consoles.
-
Contribute to edge-to-cloud connectivity: Wi-Fi, MQTT over TLS, and low-power wireless protocols such as Thread and BLE.
-
Help collect and validate sensor datasets that feed on-device machine learning models, and assist with deploying and evaluating those models on target hardware.
Test and Tooling
-
Write unit and integration tests alongside your feature code — we test what we ship.
-
Build and improve bench tooling: flash/serial automation scripts, data-capture harnesses, and hardware-in-the-loop test setups.
-
Reproduce, instrument, and root-cause bugs on real hardware, and document what you find so the next engineer doesn't hit it twice.
Team Collaboration
-
Participate in design discussions and code reviews — your code gets reviewed, and you review ours.
-
Work directly with hardware and systems engineers when the bug turns out not to be in software.
-
Present your work at the end of the internship: what you built, what you learned, and what you'd do differently.
What we are looking for:
Required
-
Currently pursuing a BS or MS in Computer Engineering, Electrical Engineering, Computer Science, or a related field.
-
Solid C programming fundamentals: pointers, memory, bit manipulation, and comfort reading a datasheet.
-
Exposure to microcontrollers through coursework, projects, clubs, or prior internships (Arduino/ESP32/STM32/Nordic all count).
-
Basic Git fluency: branching, commits, and pull requests.
-
Comfort with the command line and at least one scripting language (Python preferred).
-
Curiosity and persistence. Embedded debugging rewards people who keep pulling the thread.
-
Ability to work on-site in Arlington, TX for the duration of the internship.
Nice to Have
-
Coursework or projects involving an RTOS (Zephyr, FreeRTOS) or bare-metal firmware.
-
Familiarity with communication buses (I2C, SPI, UART) and reading signals on a logic analyzer or oscilloscope.
-
Exposure to signal processing (FFTs, filtering) or machine learning basics — our devices run inference at the edge.
-
Experience with networking concepts: sockets, TLS, MQTT/HTTP, or wireless protocols.
-
A personal project you can talk about in depth — hardware or software.
What success looks like:
How we work:
-
On-site, collaborative environment. We build physical hardware — presence matters.
-
Small teams with high autonomy. Interns get real ownership, scaled to fit.
-
Fast iteration cycles. We prototype, test, and revise quickly.
-
Direct feedback culture. We expect candor and respect in equal measure — and we invest in people who want to grow.