Skip to Main Content

Job Title


Senior Embedded Software Engineer


Company : Product Creation Studio


Location : Seattle, WA


Created : 2024-04-23


Job Type : Full Time


Job Description

Senior Embedded Software EngineerPlease read the following job description thoroughly to ensure you are the right fit for this role before applying.Product Creation Studio is an award-winning, fast-paced, full-service product development firm located in Seattle's booming South Lake Union tech center. We are searching for an exceptional Senior Embedded Software Engineer, to join our dynamic and talented team. Our diverse group moves ideas from sketch to reality with a wide range of clients. As an Embedded Software Engineer at Product Creation Studio, you will work closely with a multidisciplinary team of engineers and designers from our team, our clients, as well as engage third party suppliers to drive key aspects of product definition, design, optimization, implementation and test. We are obsessed with creating inspiring products that enhance people's lives for consumer, research, industrial and medical applications and we have fun doing it!PCS is a collaborative environment where good ideas can come from anyone. We work in an open studio where we fuse passion and expertise in strategic design and precision engineering to create, innovate, and solve complex challenges for our clients across the consumer, medical, and industrial fields.PRINCIPAL RESPONSIBILITIES:Develop/modify BSP code with production intent: this can include bootloaders, device drivers, kernel and device tree supportPractice proper software version control and documentation practicesAuthoring design documents and software/firmware test plansInteract with internal and external customers with professionalismPerforms analyses to optimize total system architecture for affordability, safety, reliability, maintainability, testability, regulatory, and certificationDesign and implement software for execution on custom embedded platforms, including drivers and board support packages and participate in system architecture design, including RTOS and processor, microcontroller, and peripheral selection decisionsCollaborate closely and drive the resolution of technical issues by working with cross-functional teams such as industrial design, mechanical, electrical, systems architecture, product design, NPI, and supply chainParticipate and lead collaborative design reviews of HW+SW designs to ensure the system functions as designed prior to prototype fabricationPerform lab measurements and testing as needed to validate the HW+SW system design and resolve any issuesTrack test progress, bugs, and fixes and produce regular written and verbal progress reportsDesign, implement, debug, and characterize embedded systems with end-to-end ownership of software system design from concept to productionApplicable areas of technical expertise include register level interfacing, RTOS integration, version control systems and configuration management, unit test, C, C++, C# programming languages, Bluetooth and BLE, I2C, SPI, single wire and multi wire serial and parallel interfaces, IoT security considerations, power management, low power considerations, real-time coding, implementation on resource constrained 8-bit microcontrollers up to high performance memory rich 32-bit systems, implementations with hardware timers, PWMs, ADCs, DACs, and IMUs.BASIC QUALIFICATIONS:BS in Computer Science, Electrical or Computer Engineering8+ years professional experience as an Embedded Software Engineer developing production software.Strong proficiency across multiple embedded development languages, including C/C++, embedded Linux and Windows OS and assorted scripting languages such as Python, microPythonExpertise with common embedded tool chains (e.g. GCC, Keil, IAR, CCS) and version control systems (e.g. Git, etc)Able to read and understand digital system schematics along with peripheral and processor datasheets in order to develop drivers and hardware specific features.Working knowledge of I2C, SPI and UART serial communicationsExperienced with low latency and high data throughput architecturesExperience in developing, modifying, and debugging drivers, bootloaders, or board support packages (BSPs).Strong electronics knowledge with the ability to debug digital subsystems using electronic test equipment such as logic analyzers and oscilloscopes.Experience with interpreting datasheets and developing device drivers for sensors and ICsExperience with Bluetooth Low Energy (BLE) and associated vendor SDKsExperience with ARM-CortexM and ARM-CortexA based processors, GNU toolchains/IDEsExcellent written and verbal communication skills as well as analytical and problem-solving skillsComprehensive understanding of the product development, validation, and support life cycle for a complex vertical productAbility to meet Product Creation Studio, customer and/or government security screening and background check requirements are required for this role. PREFERRED QUALIFICATIONS:Advanced degree in CS, CE, EE or relatedExperience with software development targeted for embedded software systemsFamiliarity with multi-processor systems and communicationsExperience managing a product from early design all the way through being shipped and supported to a real world customerKnowledge of Linux kernel internals (scheduling, memory management, IPC, file systems, etc), as well as the "˜systemd' suiteKnowledge of networking and associated network protocolsCreating unit tests and user-interfaces for hardware bring-upUnderstanding schematics, experience with logic analyzers, JTAG, oscilloscopes, spectrum analyzersFamiliarity with CMakeSoftware Security experience: authentication/encryption, hardware accelerators, security fundamentalsBare metal and Embedded RTOS application architectureDemonstrated experience bringing new products to marketExperience running signal integrity simulations