Firmware Developer Intern (8/12/16 months)
About Pulsenics
Pulsenics is catalyzing novel breakthroughs for electrochemical technologies that decarbonize our planet. Pulsenics' innovation is the first to apply advanced spectroscopy techniques to industrial electrochemical applications, at scale, to target the industry's energy waste problem. Our mission is to change how the industry, making up 15% of the world's GDP, uses its energy.
"Pulsenics" means "Pulse Generation."
True to its name, our proprietary hardware injects non-disruptive electrical pulses into an electrochemical system to extract a unique signature for its State-of-Health. When combined with our Data Management Software, this untapped data unlocks fundamental insights that lead to the most energy efficient operations, at scale.
Pulsenics hardware and software is currently being used by customers around the world to improve electrochemical system design and performance. Pulsenics' customers run diverse electrochemical systems ranging from fuel cells and batteries to wastewater treatment and metallurgy.
At Pulsenics, you will have the opportunity to have a direct impact on the development of our next generation hardware and software products, alongside our world-class team of innovators and engineers!
What your day-to-day will look like:
- Contribute to the firmware development of Pulsenics' next generation in-line characterization hardware.
- Translate open-ended user requirements into clear and specific product functional components.
- Modify existing code as necessary for bug-fixes and changes in the operational scope.
- Document the design and implementation details of firmware features.
- Write test plans, unit tests, and integration tests from requirements.
- Work closely with a cross-functional engineering team (electrical, mechanical, manufacturing, system test, and other software teams) to refine and support delivered firmware.
You will thrive if you:
- Have experience with software/firmware for embedded devices (ARM microcontrollers).
- Are comfortable and thrive in the ambiguity of a fast-growing company. This includes being able to transform product sketches into working technology, as well as working in an environment with a very short technical backlog.
- Are resourceful and self-sufficient when it comes to execution. You can identify, prioritize, solve issues, and make things happen. You do not wait for help or permission.
- Are a builder, who gets excited about building products that no one has ever built before, and you are comfortable to fail quickly, learn, and iterate along the way.
- Get excited and have experience solving open-ended problems.
- Have a strong business sense. You can foresee potential issues and solve them proactively.
- Possess a strong interest in commercializing clean technologies and a strong sense of purpose towards achieving climate decarbonization goals.
Job Qualifications:
- Enrolled in a BSc or MSc in Computer Science, Mathematics, Engineering, or a similar field.
- In-depth knowledge of wired communication protocols (SPI, I2C, UART, etc.).
- Knowledge of standard embedded debugging tools (terminal programs, gdb, JTAG debuggers, etc.).
- Comfortable with performing low-level board debugging with oscilloscopes, DMMs, logic analyzers, generators, etc.
- Knowledge of TI C2000, STM32 processor families.
- Knowledge of PCB schematics and microelectronic device datasheets.
- Integrating and configuring open-sourced and closed-source packages.
- Excel at code revision software and code development practices (Git, SVN, pull-requests, etc.).
- Experience with Git-based revision control.
- Familiarity with industrial communications standards such as Modbus, CANbus/J1939, LIN bus, or Ethernet/IP.