Panthalassa is a renewable energy and ocean technology company that builds autonomous, ocean-powered nodes that generate electricity from wave energy and run AI computing onboard.
<p data-renderer-start-pos="1" data-local-id="2ecebb42a749"><strong data-renderer-mark="true">About the Company</strong></p> <p data-renderer-start-pos="20" data-local-id="96ed2acdaf5d">We are a renewable energy and ocean technology company committed to rapidly developing and deploying technologies that will ensure a sustainable future for Earth by unlocking the vast energy potential of its oceans. Our focus is on capturing civilizational levels of ultra-low-cost renewable energy for applications including computing and affordable renewable fuels delivered to shore.</p> <p data-renderer-start-pos="408" data-local-id="41c37dfb5ab5">The company is a public benefit corporation headquartered in Portland, Oregon and backed by leading venture capitalists, philanthropic investors, university endowments, and private investment offices. We operate as an idea meritocracy in which the best ideas change the company's direction on a regular basis.</p> <p data-renderer-start-pos="719" data-local-id="d1828fbd62a9"><strong data-renderer-mark="true">About the Job</strong></p> <p data-renderer-start-pos="734" data-local-id="480cb03169be">Our core technology is the Node, a device that produces energy in the ocean's harshest conditions for years without human maintenance or intervention. The embedded software – device drivers, baremetal firmware, and embedded Linux – is what bridges the gap between hardware and the systems above it: giving the Node the ability to sense, actuate, follow commands from shore, and operate autonomously.</p> <p data-renderer-start-pos="1135" data-local-id="b0022fbed0fd">As Principal Embedded Software Engineer, you'll build the reliable, extensible, well-tested version of that software – the kind other engineers can build on top of without worrying about what's underneath. You'll work elbow-to-elbow with electrical engineers from schematic capture through bring-up, and maintain the architecture and standards behind what the team delivers. This job is multidisciplinary – some days you're probing signals on a bench, others you're deep in Rust, others you're reviewing a teammate's code or helping them through a tricky bring-up. If you think in bits and bytes as naturally as you read schematics and datasheets, and you're happiest when you're close to the hardware, this role is built for you.</p> <p data-renderer-start-pos="1867" data-local-id="96285310c973">You'll be part of a small team that we expect to grow, and you'll have the opportunity to help shape and mentor it as it does.</p> <p data-renderer-start-pos="1995" data-local-id="585df790bd59"><strong data-renderer-mark="true">Responsibilities</strong></p> <ul class="ak-ul" data-local-id="4ca1872f5a15" data-indent-level="1"> <li> <p data-renderer-start-pos="2015" data-local-id="fcce0609c699">Own the software for our in-house embedded products, and set technical direction on how it's implemented, reviewing designs and code across the team for correctness and reliability.</p> </li> <li> <p data-renderer-start-pos="2200" data-local-id="6baacbb88378">Work with electrical engineers from schematic capture through board bring-up – pin assignments, peripheral selection, power and timing budgets.</p> </li> <li> <p data-renderer-start-pos="2347" data-local-id="81bbe2fb7b73">Debug the hardware/software failures using schematics, datasheets, oscilloscopes, logic analyzers, and JTAG/SWD.</p> </li> <li> <p data-renderer-start-pos="2463" data-local-id="e9da06b47c6b">Ship code that runs unattended for years in a harsh marine environment, with real fault tolerance and safe recovery.</p> </li> <li> <p data-renderer-start-pos="2583" data-local-id="f8e0c0e262b1">Shape our OTA and fleet update strategy for a distributed fleet.</p> </li> <li> <p data-renderer-start-pos="2651" data-local-id="5ec924ddb1c3">Set testing and CI/CD standards for embedded code – unit tests, hardware-in-the-loop, static analysis, release gating.</p> </li> <li> <p data-renderer-start-pos="2773" data-local-id="28f930f70be9">Mentor other embedded engineers through code review and pairing.</p> </li> <li> <p data-renderer-start-pos="2841" data-local-id="226552fd9248">Communicate tradeoffs clearly to EE, mechanical, ops, and leadership.</p> </li> </ul> <p data-renderer-start-pos="2914" data-local-id="34bebe8faa4b"><strong data-renderer-mark="true">Required Qualifications</strong></p> <ul class="ak-ul" data-local-id="cb605166-c2ae-45a4-9584-1b875a00c9ec" data-indent-level="1"> <li> <p data-renderer-start-pos="2941" data-local-id="9e1903e66d33">10+ years developing production code, most of it in embedded systems.</p> </li> <li> <p data-renderer-start-pos="3014" data-local-id="6a9a572f65be">Deep experience with a systems programming language such as Rust or C/C++; deep experience with Rust, particularly <code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rkofajl _11c819w5 _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhk187e _16d9qvcn _syazi7uo _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true">no_std</code> firmware, is a strong plus.</p> </li> <li> <p data-renderer-start-pos="3167" data-local-id="4e32a3c6ff86">Hands-on experience building and maintaining embedded Linux distros with Yocto or Buildroot.</p> </li> <li> <p data-renderer-start-pos="3263" data-local-id="1a0493c90093">Track record owning the architecture and implementation of the code stack supporting a hardware product from bring-up through field deployment.</p> </li> <li> <p data-renderer-start-pos="3410" data-local-id="00fa100c35f0">Fluency with SPI, I²C, UART, CAN, Ethernet, and the debugging skills to chase issues down to the signal.</p> </li> <li> <p data-renderer-start-pos="3518" data-local-id="53ba133eee48">Experience designing for resource-constrained, real-time, power-constrained systems built to last years, not weeks.</p> </li> <li> <p data-renderer-start-pos="3637" data-local-id="491146cbafd0">Experience designing or hardening OTA update mechanisms for fielded devices.</p> </li> <li> <p data-renderer-start-