Location: San Francisco
Embedded Software/Firmware Engineer
Software Engineering At Synapse
Synapse is hiring creative software engineers who have a passion for innovative products and technology, and want to develop products in a fun, fast-paced, and highly collaborative team environment. Synapsters embrace the opportunity to work on a large variety of challenging projects, find joy in solving hard problems with strong teams, and understand the value of cross-discipline collaboration to provide stellar client service.
Synapse engineers collaborate directly with clients as well as each other, so we are equally comfortable communicating as we are coding. We have the tenacity to see a product through from concept to mass production. Synapse engineers are always learning—and teaching: the opportunity to be a listener and a leader exists for engineers at every level. We are willing to understand the client’s objectives as well as its organizational environment, while delighting in exceeding the customer’s expectations. Synapse engineers approach each other with the eagerness to learn, a sense of humor, friendly attitude, and mutual respect that makes working at Synapse as enjoyable as it is rewarding.
Synapse aims to foster a creative work atmosphere with openness and trust, where engineers can work hard, learn and grow professionally, and maintain meaningful lives. Diversity of our ideas and experiences (technical and personal) enriches our teams, enabling us to push innovation further.
ABOUT SYNAPSE’S SAN FRANCISCO OFFICE
Synapse’s San Francisco site, which will accommodate the office’s planned growth in the years ahead, offers proximity to transit as well as the amenities of the SoMa neighborhood. Here, the growing group of about thirty Synapsters balances focus with fun. Wednesday Lunch provides a catered meal to the entire office, as well as a time for employees to celebrate successes and navigate shared challenges. Thursday Active is the office’s opportunity to lift their noses from the grindstone and take part in a range of activities—from bike trips and runs, to museum visits and sporting events, to barbecues and poker tournaments.
As a software engineer at Synapse, you will be a contributing member of multidisciplinary teams and will design and develop firmware for customized innovative hardware products. Working closely with electrical and mechanical engineers, project managers, and client teams, you will have an identifiable impact on the success of projects and end products. Strong client interaction skills and an egoless approach to teamwork are highly valued. A passion for quality code, respect for your craft, your customers, and your team, and a demonstrated ability to deliver great work and still have time to play will help you feel right at home.
- Work with a small, multi-disciplinary development team to design, implement, and test software for execution on bare metal or embedded operating systems.
- Work independently, on small (1-5 people) or large (up to 15 people) teams, and collaborate closely with clients and project managers in Agile/Scrum settings to define requirements, software quality plans, develop test documentation, contribute with project scoping and sprint planning.
- Develop test plans, generate test cases, implement and perform functional and regression testing in an agile embedded software development environment for connected devices, and provide product quality status reports.
- Follow established software development processes for quality deliverables including implementing software tests, manufacturing tests, documenting design and architecture, and conducting/participating in engineering reviews.
- Communicate and interact with your team and clients to clearly set work expectations, share technical and design details, resolve issues, and report progress.
- Work collaboratively and participate in brainstorms outside your area of expertise to define innovative solutions from concept to prototype and production.
- Contribute expertise to and learn from the larger software group.
- Ability to work in the US without sponsorship
- 3+ years of embedded software development and testing experience with emphasis on connected embedded hardware and software systems.
- Comfortable with troubleshooting hardware and software, from device firmware to cloud infrastructure or mobile application stack.
- Strong C programming knowledge (e.g. memory management, pointer handling) with demonstrable experience in Python.
- Expertise with common software tools for requirements management, test plan management, and bug/regression tracking (e.g. JIRA). Experience in software testing of consumer electronics and/or medical devices.
- Experience with low-level development and debugging on at least one microcontroller platform, such as ARM Cortex-M, MSP430, RISC-V, and their associated tool chains.
- Familiarity with common communications protocols (UART, SPI, I2C, CAN, USB).
- Familiarity with open-source software licenses (e.g. GPL, MIT, BSD).
- Applies software engineering best practices, SQA process and methodologies, including estimation, design documentation, unit and system testing.
- Demonstrated curiosity in engineering and the ability to quickly learn new skills and adapt to project needs.
- Creative and detail-oriented individual with excellent written and spoken communication skills.
- 4-year degree in computer engineering, electrical engineering, computer science or equivalent experience.
- Experience working as a SDET with automated testing, test frameworks, continuous integration, and release management.
- Familiarity with wireless technologies (e.g BLE, ZigBee, Bluetooth, WiFi).
- Experience with embedded Linux, Android (application and/or kernel level), including configuration management and board bring-up.
- Experience building connected device applications using cloud technology stacks (AWS, Azure, AWS IoT/AVS/Lambda, and languages Go, Python).
- Experience building mobile applications for iOS, Android (Swift/SwiftUI, Kotlin, QT, Lua).
- Experience with one or more RTOSs (e.g. FreeRTOS, Zephyr), and multithreaded programming.
- GitHub/GitLab project portfolio available.
Synapse is an Equal Opportunity Employer (“EOE”). We value diversity and strive to promote an inclusive culture. We are committed to a work environment that respects and supports individuals and prohibits discrimination and harassment of any type and affords equal employment opportunities to employees and applicants without regard to race, color, religion, sex, sexual orientation, gender identity or expression, pregnancy, age, national origin, disability status, genetic information, protected veteran status, or any other characteristic protected by law.