Senior Embedded/Hardware Engineer

 Job Description:

At Therma, were building climate-focused technology solutions that capture efficiency, performance, and user-friendly designs. We are looking for a professional and experienced Hardware Engineer to join our team! As a Hardware Engineer at our company, you will be responsible for executing a complete embedded software development lifecycle.

This role requires a great deal of collaboration, as embedded developers work with teams that include hardware engineers, manufacturing units, and user interface and experience professionals to ensure that software and hardware elements work together reliably and efficiently.

RESPONSIBILITIES

  • Before beginning development work, embedded developers gather requirements and specifications from clients, hardware engineers, and manufacturing teams. These requirements typically provide details of expected software performance and use cases, along with expectations related to scalability and latency. After gathering these requirements, embedded developers translate them into specifications that guide development work.
  • Create, test and build hardware prototypes and products based on specifications gathered from clients.
  • Ensure reliability and maintainability of their code. Within the constraints of embedded development, an embedded developer is responsible for keeping the code maintainable and reliable by writing clean code and automating code quality analysis and testing as much as possible. In addition, reviewing the code of their colleagues and assisting them in improving their code quality is needed to improve the quality of the whole team.
  • Design and Write Code. The central duty of an embedded developer is writing software that supports hardware functionality on a wide range of devices. This aspect of the role requires familiarity with a wide array of programming languages as well as the ability to understand how software supports hardware functionality, and how the hardware interacts with the larger cloud-based software ecosystem.
  • Conduct regular troubleshooting and debugging activities to ensure that their code works as expected. This can include both examining large-scale software performance and working with smaller components of the software to resolve performance issues such as lag time and crashes. Additionally, the embedded developer participates in continuous deployment activities.
  • Embedded developers also maintain thorough, detailed documentation for any software that they work on. This can include explanations of specific codes and modules, details of errors and bug fixes, and documents related to specifications and requirements. Embedded developers ensure that their documents adhere to best practices to support future developers and provide clear information on steps taken during development and testing. They also follow precise version control guidelines to share code and eliminate errors.
  • Take part in the design and development process.. While writing programs, embedded developers work closely with a number of teams, including user interface and user experience (UI/UX) designers, the quality assurance (QA) teams, and hardware engineers, to ensure that devices software and hardware work seamlessly together. This collaboration can frequently reveal new requirements that necessitate rewriting or configuring code to address and resolve errors that did not exist in previous versions.
  • Embedded developers constantly work to enhance the reliability, efficiency, and scalability of their programs. This generally means incorporating more efficient solutions by simplifying codes and modules to achieve the same goals in a shorter amount of time, but can also mean making changes to how the software interacts with the hardware to increase reliability and reduce failure rates.

SKILLS AND QUALIFICATIONS

  • Bachelors degree in a related field, such as software development, computer science, or engineering.
  • Should have medium to strong familiarity with hardware lifecycle. From getting of requirements and releasing to production
  • Extensive software development experience and should be particularly skilled with the C and C++ programming languages.
  • Should have some familiarity with Javascript, Typescript, Go and Python programming languages.
  • Should have some familiarity with ensuring that programs run efficiently while maintaining a high level of stability.
  • With Documentation skills - throughout the development process, embedded developers need to reliably document technical issues and interpret error reports to resolve software bugs.
  • Effective written and verbal communication are both important in this role, since embedded developers tend to work with internal teams, clients, and manufacturers to gather requirements and provide progress reports.


WHAT WE OFFER

  • Remote work flexibility.
  • Standard in-patient and out-patient health insurance including 2 dependents.
  • Ability to help define the technical direction of our products and the company while fixing problems in our global food system before they happen.