- Company Name
- Base Power Company
- Job Title
- Firmware Engineering Intern
- Job Description
-
Job Title: Firmware Engineering Intern
Role Summary: Participate in development of low‑level firmware for power‑grid hardware. Design, code, test, and debug C/C++ firmware on bare‑metal, RTOS, and Embedded Linux platforms that directly control grid‑balancing electric storage devices.
Expactations: Deliver reliable, deterministic code that meets real‑time constraints and safety requirements. Work closely with hardware, power electronics, and software teams to integrate drivers, communication stacks, and interrupt handling. Validate firmware against hardware schematics, datasheets, and oscilloscope traces, and iterate based on real‑world testing.
Key Responsibilities:
- Design, implement, and unit‑test firmware modules in C/C++ for embedded processors.
- Develop and debug device drivers and communication interfaces (SPI, I²C, CAN, Modbus, etc.).
- Interpret schematics and datasheets to map software behavior to hardware registers and peripherals.
- Perform low‑latency timing analysis, capture and analyze interrupts, and resolve race conditions.
- Collaborate with hardware engineers to define and verify hardware/firmware contracts.
- Write deterministic, safety‑critical code that complies with qualification standards (e.g., MISRA, ISO 26262).
- Participate in system integration, regression testing, and field validation on production hardware.
- Document firmware architecture, APIs, and test procedures for maintainability and knowledge transfer.
Required Skills:
- Proficient in C/C++ programming for embedded systems.
- Solid understanding of microcontroller architecture, memory-mapped I/O, and interrupt handling.
- Experience with RTOS concepts or Embedded Linux kernel/user‑space development.
- Familiarity with serial/communication protocols (SPI, I²C, CAN, UART, Modbus).
- Ability to read and interpret hardware schematics and datasheets.
- Hands‑on debugging skills: using an oscilloscope, logic analyzer, JTAG, or in‑circuit debugger.
- Strong problem‑solving, attention to detail, and capacity to work in a fast‑paced, cross‑functional team.
- Excellent written and verbal communication skills.
Required Education & Certifications:
- Current enrollment in an undergraduate or graduate program in Electrical Engineering, Computer Engineering, or related STEM field.
- Coursework or projects involving embedded systems, microcontrollers, RTOS, or low‑level firmware.
- No professional certifications required (optional: MISRA, ARM Accredited Engineer, or similar may be advantageous).