Embedded Software Engineer
Vancouver, BC
3d ago



Terramera is actively seeking two Embedded Software Engineers to join our Robotics and Machine Learning Team. The successful candidate will contribute to the revolutionary solution as part of the world-renowned Soil Carbon program - aimed to bring together farmers and clean technology to turn climate change, economic crisis, and food insecurity into opportunities.

The Embedded Software Engineer must have strong low-level software experience and beginner to intermediate hardware technical background.

Strong analytical, problem-solving, and communication skills are essential, and the ability to deliver results in a rapidly evolving environment.

Why join us?

You will be joining a solid team involved in a variety of design applications that will challenge you and give you a broad engineering perspective.

In addition, you will be joining a team of experts who will push you to be your best, a team that is a core part of Terramera’s engineering business and is willing to make a difference in the world we live in and the way Agriculture is providing our food.


Design and develop embedded code for drones, autonomous rovers, robotics arms, and IoT devices while working on heterogeneous mixes of microcontroller and microprocessors boards, wired and wireless network communications, in-house and off-the-shelf sensors, power management boards, and actuators.


Reporting to the Senior Embedded System Manager, the Embedded Software Engineer will work closely with our Automated Systems, Machine Learning, GIS, and Data Engineering teams as part of our interdisciplinary workforce.


  • Develop embedded software in C / C++ and assembly for RTOS and / or bare-metal environments
  • Participate in the entire life cycle of development from planning to deployment and maintenance stages
  • Develop highly reliable embedded software for Autonomous platforms
  • Work closely with hardware and systems engineers to support board-bring up and design of control algorithms
  • Lead the development of a multi-architecture (Arm64, Arm32, Amd64) docker based CI / CD and OTA update using tools like Jenkins, Artifactory and Mender
  • Develop DevOps practices
  • Write software employing Python and C / C++ SDKs to enable functional, real-time systems that facilitate state-of-art research for the company
  • Lead the programming of multiple hardware platforms such as microcontrollers, microprocessors embedded into systems, and writing firmware
  • Explore and introduce new features, testing and verifying features, updating legacy software, and fault finding on the existing software stack
  • Research, investigate and identify new technology areas to enhance existing use cases or new product directions; re-evaluate the design and implementation of current source code
  • Design and develop solutions from concept to production; this requires detailing requirements and specifications based on product and system requirements, working in concert with project managers, technical leaders, and R&D groups of scientists and engineers
  • Create and execute software unit tests to verify design has been met; this includes simulated tests and debugging target hardware.
  • Design and implement IoT systems to optimize R&D in growth chambers and outdoor field experiments
  • Orient the technical choices of the PCBs designers around new technologies and new components
  • Analyze and enhance efficiency, stability, and scalability of system resources
  • Partner with our Hardware System Team and Machine Learning team to put platforms into production
  • Coordinate workflow on multi-disciplinary projects with the wider multi-disciplinary Research & Development team
  • Performs other related duties and tasks as required

  • Post-secondary degree in Computer Engineering, Computer Science, or related discipline
  • 3 to 5+ years of relevant professional experience in embedded software development using the C / C++ language
  • Experience developing software using embedded SDKs and frameworks
  • Understanding of low-level software, micro-controllers, and middleware
  • Experience with hands-on development and troubleshooting on embedded targets
  • Experience interacting with embedded devices using methods such as Syslog, serial console, and SSH
  • Experience in one or more of the following areas : Linux kernel networking stack knowledge (Netdevice, SKB, IP Conntrack, OVS) Linux network device driver / data-path performance expertise Strong competence and experience in Layer 2, Layer 3 networking, QoS Network and / or application security expertise (L2 / L3 firewall, DPI, IDS, IPS) Experience in 802.
  • 11 Wi-Fi systems, standards, and protocols. Development of ROS 2 Node for interfacing hardware to the ROS ecosystem Cluster technology like Kubernetes, Prometheus / Grafana, GlusterFS Experience with FreeRTOS or Zephyr

  • Proven knowledge of testing embedded systems
  • Experience in building custom distribution system with Yocto
  • Embedded microcontroller design experience, including ARM processors and DSPs
  • Experience with standard communication protocols (SPI, UART, I2C, CAN, USB)
  • Solid understanding of power management; and different types of memory, including RAM, ROM, and Flash

  • Aptitude for interdisciplinary collaboration
  • Highly conscientious with strong follow-through
  • Matured communication and critical thinking ability to influence and propose analytics strategies that challenge status quo thinking
  • Capable of performing research on best practices and communicating results to a non-expert audience
  • Able to apply domain knowledge to ambiguous and novel situations
  • Report this job

    Thank you for reporting this job!

    Your feedback will help us improve the quality of our services.

    My Email
    By clicking on "Continue", I give neuvoo consent to process my data and to send me email alerts, as detailed in neuvoo's Privacy Policy . I may withdraw my consent or unsubscribe at any time.
    Application form