Embedded Software Engineer: E2
Boulder Environmental Services - Boulder, Colorado, United States, 80301
Work at Boulder Environmental Services
Overview
- View job
Overview
Boulder Engineering Studio is a premier product development consultancy in Boulder, CO. Our team consists of passionate and experienced mechanical, electrical, software engineers and technicians. We build hardware, firmware and software with an iterative test-driven process in a hands-on collaborative environment. With a wide-ranging portfolio of projects, from scientific instruments and industrial machinery to medical wearables, BES focuses on providing pragmatic solutions to our customers.
We are hiring for an embedded software engineer immediately to support our existing programs while continuing to increase our software development capabilities long term. This a high-growth, hardware facing mid-level role that will be involved throughout the project lifecycle.
About You
We value creativity, passion, and attention to detail. Our work culture fosters these traits in a highly collaborative professional environment. You have at least 2 years of career experience and want to continue to advance and take on new responsibilities. You enjoy working in a fast paced environment, jumping between several projects on a daily basis while remaining organized and efficient. You're able to self-prioritize milestones while keeping a focus on ensuring project requirements are met and specifications are well tested and documented. When it's not feasible to accomplish your tasks with the constraints you're given, you're comfortable speaking up and working with the team to regroup and adjust.
Qualified candidates for this role should have a background in Python and JS development and experience with hardware debugging. Understanding of how embedded devices and frontends communicate with backends is crucial for this role. A strong knowledge of electronics hardware design is highly relevant but not strictly necessary. Familiarity with Rust and C++ is helpful for understanding and potentially supporting firmware development that our team is regularly working on.
About the Responsibilities
Debug issues with PCBA's and Device Under Test (DUT's) Testing and bring-up of automated test fixtures Developing software (full stack) for automated test fixtures used in device production Developing firmware for ARM based Microprocessors and Microcontrollers Developing device drivers for lab equipment such as power supplies, oscilloscopes Developing interfaces to remote backends and databases Implementing protocols including but not limited to JSON-RPC, Websockets, REST, Modbus etc Integrating with cloud-based services such as AWS IoT core, Azure IoT, DynamoDB Writing test procedures and implementing them to create robust, stable systems Take ownership of developing new features, provide design considerations prior to development Helping define tasks and assist in estimating effort and schedules Collaborating with fellow engineers and delegating tasks as needed to technicians Expectation to be on-site at our Boulder office About the Benefits
401K Health, dental, vision Generous PTO Flexible hours Casual office EcoPass RTD Bus Pass On-site shower; next door to climbing gyms and tennis courts Unlimited snacks, teas, and some of the best coffee in town Required Qualifications Required Skills/Competencies:
Proficient with Python, C and JS programming languages Experience developing Firmware for ARM based MCU's like STM32 Proficient with Principles of Electronics for hands-on debugging with Oscilloscopes, Analyzers, etc Proficient with reviewing PCBA's for hardware-software integration Proficient with Linux development environments Proficient with version control tools such as Git Proficient with test driven development and CI/CD Excellent written and verbal communication skills Excellent organizational skills and attention to detais Preferred Skills/Competencies:
Experience working with firmware Experience working with Zephyr Experience working with Docker Experience working with Yocto Experience working with Embedded Linux Experience with JS frontend development using frameworks such as Vue and React Physical Requirements:
Prolonged periods sitting or standing at a desk and working on a computer. Education and Experience:
Bachelors degree in Software/Electrical Engineering or equivalent required; Masters degree preferred. Two years of related experience preferred.
About our Values
BES strives to leave the world better than we found it. We don't design weapons, single use plastics, or intentionally harmful or demeaning products. Our goal is to create value in our relationships and through our work. We believe in finding the right tool for the job- including getting support from outside subject matter experts, vendors, and cutting edge research when called for. These values help ensure that the work we do take on is compelling and a good fit for our team.
Note to Candidates:
Due to the volume of applications we receive, we will only review complete applications which include a resume, a cover letter (even a short one!), and some sort of portfolio, link, explanation, or examples of past work. Our preference is a Gitlab or similar repository of code (does not need to be of a complete project- just a snippet is acceptable) but other forms of work will be accepted and reviewed. This may include links to past products you've worked on (be ready to talk about them in an interview!), open source projects you've been involved in, or anything else you think shows off what you're capable of. First preference will be given to local candidates, but non-local candidates will also be considered and are encouraged to apply. Relocation should not be expected but may be negotiated for the right, exceptional candidate.
We take your application seriously and take the time to review it, we ask that you do too.