← All jobs
Embedded Software Engineer
€70,000–€90,000 per year · plus equity
Full-Time
Embedded Software Engineer
Munich
Full-Time
€70,000–€90,000 per year · plus equity
Reports to Head of Engineering
Apply now
Summary
You’ll be working on devices that are genuinely unique — and on the critical path to delivering HeyCharge’s platform and technology at scale. Our embedded surface spans bootloader and secure boot, BLE session authentication, Zigbee mesh for inter-charger coordination, OCPP translation, store-and-forward cloud sync, and the OTA pipeline that updates all of it. One of our boards literally has an EFR32MG26, an EFR32FG23, and an ESP32 on the same PCB — three radios, three flash budgets, three sets of constraints to reconcile. The firmware is the product when the cellular signal dies in a concrete underground garage.
This role exists because embedded work is currently bottlenecked, and the platform’s roadmap is constrained by that. Your specific scope — which subsystems you own end-to-end vs. contribute to — will be calibrated to your background and where the team most needs leverage. The common factor: you’ll be shipping firmware that runs on hardware where there’s no internet rescue, no “patch it tomorrow,” and no second chance to get OTA right.
About HeyCharge
HeyCharge makes EV charging work in places it was never supposed to — underground garages, multi-tenant buildings, and any other concrete-and-rebar environment where cellular signal goes to die. Our offline-first SecureCharge platform uses Bluetooth for local session authentication and Zigbee mesh for inter-charger load management and cloud sync. No internet required at the charger; no compromise on reliability or billing accuracy.
We’re Munich-headquartered with team members across Germany, Ukraine, and the US, selling into property managers, utilities, and OEMs across Europe, the US, and Latin America. Our partners include Vonovia (Europe’s largest residential landlord), Easee and Emobi. We’re backed by Y Combinator and EU innovation funding, with a culture that’s Google-rooted on engineering, AI-first and automation-first on operations, and allergic to bureaucracy that doesn’t earn its keep.
Responsibilities
The embedded surface below is what our charger firmware covers in total. Your specific scope will be calibrated to your strengths and the team’s needs — you might own one of these end-to-end, or contribute across several.
Firmware features: design, implement, and ship firmware across our charger product line — Silicon Labs EFR32MG26 and EFR32FG23 plus ESP32-family — in C++.
Wireless stacks: build and harden the BLE session-authentication flow and the Zigbee mesh that coordinates load management across chargers in a building. Thread is a relevant direction.
OCPP translation: the OCPP layer that bridges our offline-first protocol to the standards external CPMSs and OEMs expect.
OTA pipeline: design and operate the OTA update flow — signed, resumable, robust to partial connectivity. The chargers our firmware runs on are physically hard to reach; failed updates are not an option.
Security: cryptography that backs SecureCharge — session tokens, signed messages, secure boot, key provisioning at the factory.
Hardware bring-up: partner with our hardware team on new board revisions — board bring-up, peripheral drivers, power budget reconciliation, debugging electrical-meets-software issues at the bench.
Qualifications
Required:
3+ years shipping embedded firmware on resource-constrained devices in production.
Strong C++ in an embedded context — comfortable with memory-constrained design, RTOS scheduling, and the trade-offs between heap, stack, and statically-allocated state.
Experience with at least one wireless stack (BLE, Zigbee, Thread, or similar) — and the willingness to learn the others.
Comfort with the full firmware lifecycle: bring-up, debugging on the bench with a logic analyzer/JTAG, OTA, post-deploy diagnostics.
Strong plus:
Silicon Labs EFR32 family experience — particularly the Silabs Bluetooth and Zigbee stacks.
ESP32 / ESP-IDF experience.
OTA design and implementation, especially with partial-connectivity constr