JOBSEARCHER

Embedded Software Engineer

About The Edge Systems Team Edge engineering is responsible for the hardware and software orchestrating the hardware installed at fish farms around the world. Our goals are to create autonomous, reliable, bandwidth-light, long-lasting, robust, remote-debuggable, fail-safe, and easily deployable underwater cameras and sensors. We work with world-class mechanical engineering firms and optical consultants to spec the underwater equipment we deploy. The edge engineering team writes software and procedures to make quality testing of these cameras as easy as possible for the field team in Norway. The types of tests we orchestrate are hardware burn-in, optical quality testing in-air and in-water, sensor calibration and verification, and stereo camera calibration. The edge team also writes software to make it easy for the field team to successfully deploy and configure our hardware at the farm. As it's often rainy in Norway and the Internet may not yet be set up, our debugging tools need to operate wirelessly and allow a field technician to interface with the hardware from their phones. The edge team is responsible for designing the network, cellular backup system, and mesh network of devices at a farm. We plan for failure, and build in redundancies where possible. Internet can go out for hours and there's only so much data we can uplink. Boats may park between our antennas. Job Responsibilities Interface with sensors, cameras, mesh, wireless, and cellular networks to create robust, reliable, and remote data collection and processing systems Develop on ARM-based embedded platforms using C, C++, Python, Golang or Rust Improve our embedded Linux build and deployment process Develop software to automate hardware testing procedures Build diagnostic and configuration tooling to enable our field team to interface with our hardware wirelessly from their phones Enable our research team to try new machine learning models on real hardware Participate in hardware specifications for our next generation equipment Participate in on-call for diagnosing and fixing device issues remotely and implementing procedures and tooling to help enable the field team to self-diagnose and fix issues themselves Qualifications Engineering or CS degree Software development on an embedded device Experience writing and building software Professional experience with C, C++, Golang, Python or Rust Desired But Not Required Solid understanding of TCP/IP Real-Time Operating Systems (RTOS) Buildroot, Yocto Project, toolchains, uBoot, UART, SPI, I2C interfaces Experience with WiFi, BLE, LoRaWAN, Mesh Networking, Cellular Networks Selecting hardware targeted for harsh environmental conditions Ability to read a schematic Experience with cloud environments such as AWS Experience deploying to off-site hardware Professional experience working with cameras Build and maintain fleet operations tools for monitoring, notifications, trending, and analysis Experience at a small & quickly growing startup Benefits Competitive salary and equity Unlimited vacation policy Flexible working hours + hybrid work policy Medical, vision, & dental insurance Retirement matching plan Potential travel to Norway Evolve in a fast-paced environment Be able to shape a business in its early days Get ideas, feedback, and suggestions from other best-in-their-field colleagues Mentorship opportunities, we'll be dedicated to investing in you and supporting you as you grow J-18808-Ljbffr