Sr. Embedded Software Engineer, Device Driver and CI/CD
Role details
Job location
Tech stack
Job description
This position works out of our Alameda, CA location in the Abbott Diabetes Care Division, where we are focused on helping people manage their health with life-changing products that provide accurate biometric data to drive better-informed decisions. We're revolutionizing the way people monitor their health with our new sensing technology., The Senior Embedded Software Engineer will work on driving new, embedded product software development and building software and test infrastructure to meet our high standards for safety, quality and reliability. This position may lead technical teams in the accomplishment of software design, testing and/or maintenance activities. This individual will develop networks involving cross functional/cross departmental groups. The ideal candidate will readily adjust priorities and works within the team environment for timely completion of common objectives for multiple projects. Lastly, this individual will resolve significant and/or complex technical issues to meet company objectives. #software #embedded #CI/CD, * Self-starter that works independently (or in a lead role) in one or more aspects of the overall software development process (such as software design, code development, testing and/or maintenance) of application software or embedded firmware under a disciplined product development process that meets FDA requirements.
- Plan, develop, and maintain CI/CD pipelines for embedded software projects.
- Contribute to software system designs including architecture definitions and module interfaces.
- Implement device driver designs efficiently in a programming language (C, C++, etc.)
- Design multi-worker CI/CD systems with hardware integration that can be scaled to meet development needs
- Design and document test infrastructure for ease of use with flexibility to design change
- Create high quality software design documentation
- Research technical issues and propose technical approaches.
- Reliably deliver high quality software within schedule constraints.
- Provides technical ownership of software products.
- Use appropriate tools and techniques for productivity and code quality: debuggers, profilers, unit testing, source control, etc.
- Interact with test engineers to ensure software products are robust and of very high quality.
- Participate in the full life cycle of development, from specification and design through implementation, testing, and support.
- Work on significant and unique issues where evaluation of situations or data requires analysis of intangibles.
- Exercise independent judgment in methods, techniques and evaluation criteria for obtaining results.
Requirements
- Bachelor's Degree with 8+ years of experience in technical discipline that related to this role, or master's degree with 7+ years of experience or Doctorate Degree with 2+ years of experience.
- BA or BS in Electrical Engineering, Computer Science, Computer Engineering, or similar disciplines.
- Knowledge of embedded software system design, C, C++, structured software development, debugger and ICE, RTOS, device driver and low-level device interface, microprocessor architecture, SPI, UART, device memory management.
- Knowledge of CI/CD tools (e.g., Jenkins, Bitbucket CI, GitHub Actions, etc.).
- Knowledge of scripting languages (e.g., Python, PowerShell, etc.).
- Excellent written and verbal communication skills.
Preferred Qualifications
- Python, RF communication including Bluetooth, NFC, assembly language, PC application DLLs.