Principal Firmware Engineer

Website breadwareinc Breadware

We help businesses to plan, build, and successfully launch IoT initiatives.

Description

A Principal Firmware Engineer at Breadware is responsible for defining the firmware solution architecture and development for wireless IoT devices. In this position you will be part of a team that focuses on the delivery of IoT systems using existing and new development requirements for a variety of customer projects. You have the knowledge and expertise to create highly performant architectures that control mission critical systems. You will have the ability to understand and integrate engineering activities from other disciplines into the firmware development strategy to achieve overall project objectives. You have experience with custom firmware development and the wisdom necessary to guide your fellow teammates through challenging concepts. As with all engineers, there is accountability and expectations to deliver high quality work from concept through production.

The Principal Firmware Engineer is a full-time, remote position that works collaboratively with members in our office in Reno, NV. The salary range for this role is $80,000 to $115,000 annually, depending on experience. The Principal Firmware Engineer reports to Breadware’s Technology and Engineering Services Director.

At Breadware, we offer you the best of both worlds – the energetic vibe of a startup combined with the reassuring stability of a larger parent company’s support. Enjoy work/life balance while diving into a diverse array of projects across various product types. And yes, our workplace is not just about work, it’s about fun too! Come be a part of our team where innovation thrives and where you will help shape the future of Breadware.

Essential Functions

Product Development

  • Define system firmware architecture for micro-controllers and processors used in client products.
  • Write device drivers for sensors used in client products.
  • Write application firmware over the device drivers according to specifications in FRD (Firmware Requirements Documentation).
  • Design and implement quality and reliability tests for firmware in a reusable manner.
  • Design and develop products using scientific analysis and mathematical models to predict and measure outcomes and design consequences.
  • Design products in a way which is easy to upgrade and caters to the possibility of future upgrades and feature additions without significant change in the hardware.
  • Code and debug existing source code and refactor feature sets.
  • Use oscilloscopes and multi-meters to debug hardware.
  • Analyze risk involved in each stage of development and escalate problems in a timely manner.
  • Solve post-production bugs and suitably update the system in production.
  • Design and create user guides and documentation as requested by the customer.

Individual Leadership

  • Be a core contributor to Project and Firmware Requirements Definition.
  • Perform or assist others in software testing or establishing software testing requirements.
  • Provide support for other firmware engineers assigned to a particular job or project.
  • Attend weekly internal and external project meetings.
  • Rapidly but methodically down-select competing ideas to keep forward momentum.
  • Balance feature addition against time to market requirements.
  • Encourage adherence to product development process and documentation of engineering throughout design.
  • Effectively document and communicate design decisions and technical concepts to team members.
  • Comfortably work in an agile environment.
  • Provide general email support regarding any product related concern/question by the customer that relates to firmware.

Company Participation

  • Participate in peer code reviews.
  • Maximize availability for collaboration with members in multiple time zones (PST, CST)
  • Be receptive to diverse team ideas and collaborate on the creation of new products.
  • Effectively create and gather consensus on technical approaches from team members.
  • Update or create overarching guidance documents on the execution of the product development process.
  • Assist the Sales team with project RFQ estimations and/or early architecture as needed.
  • Estimate Engineering effort and material required on jobs or proposals being quoted.

General

  • Track and record engineering time, by project, using timekeeping software.
  • Perform any additional duties requested by Engineering Management.

Other Information

  • Travel to branch locations, customer sites, and conferences may be required.
  • Extended working hours may be required at peak times.

Requirements

Required

  • Bachelor’s Degree in Computer Science, Electrical Engineering (or equivalent) from an accredited college or university.
  • 8+ years of relevant software design experience.
  • C, C++, Python, Micropython, Real Time Operating Systems (RTOS)
  • Ability to model and create sensor systems – i.e. sensor algorithm development and implementation.
  • Linux and embedded Linux.
  • Working knowledge of multi-threaded software development.
  • Wireless networking experience such as BLE, WiFi, cable modems, sub-GHz radio, mesh networks, etc.
  • Experience with communication hardware: I2C, SPI, UART, CANBUS, RS485, etc.
  • Experience with sensors: IMUs, accelerometers, gas sensors, etc.
  • Experience with various protocols (i.e. Modbus, MQTT, BLE, OCPP, XMPP, OPC-UA, BACnet, CAN)
  • Experience with ARM and ESP32.
  • Extensive experience in unit testing/test driven development.
  • Extensive experience in secure coding standards and industry-standard security methodologies.
  • Experience creating systems capable of sensing conditions and acting on information efficiently.
  • Knowledge of software version control practices using git or a similar version control system.

Desired

  • Strong understanding of, and experience in, IoT industry concepts and trends.
  • Hands-on electrical or PCB experience.
  • Experience with analysis of datasets.
  • Working knowledge of cloud-based services (i.e., GCP, AWS, Azure).
  • Experience with Docker.
  • Experience with advanced API integrations.
  • High-level knowledge of edge node processing.
  • High-level knowledge of networking principles.

Additional Information

We value the diversity of the people we hire and serve. Diversity at our company means fostering a workplace in which individual differences are recognized, appreciated, respected, and responded to in ways that fully develop and utilize each person’s talents and strengths.

Benefits

Breadware offers a comprehensive benefits program that includes group health, dental, and vision insurance, life insurance, long-term disability insurance, paid time off, paid holidays, a 401(k) plan with a guaranteed match, paid parental leave, a wellness rewards program, and much more.

We are a 100% employee-owned company with profit-sharing and an Employee Stock Ownership Plan (“ESOP”), in which shares of company stock are allocated to eligible employees each year.

Our “Own It” mindset captures what many of us consider to be the biggest benefit of all: a highly engaged, collaborative workplace where everyone matters and every employee has a huge impact.

To apply for this job please visit apply.workable.com.