Arbetsbeskrivning
When joining PerkinElmer, you select an experienced and trusted leader in scientific solutions, with the support of a global service network and distribution centers, providing the right solution, at the right time, to meet critical customer needs. With over an 80+ year legacy of advancing science and a mission of innovating for a healthier world, our dedicated team collaborates closely with commercial, government, academic and healthcare customers to deliver our broad portfolio of analytical solutions, and OneSource services.
Job Title
Embedded Software Engineer
Location(s)
Stockholm
As a Senior Embedded System Engineer, the candidate will play a crucial role in designing, developing, and optimizing embedded systems and firmware for Perten instruments. The ideal candidate should possess a strong technical background in embedded systems. Proficiency in C and C++ is essential, while knowledge of Python and C# is a plus. Experience in Linux application development and low-level hardware interaction is highly desirable. As part of our team, you will contribute to challenging projects that leverage the latest technologies in the field. You will collaborate with electronic, mechanical, and design engineers to develop new products from concept to completion. The role demands independence, responsibility, and active participation in achieving shared team goals.
Responsibilities
Design, develop, and debug firmware for embedded devices and systems.
Write efficient and optimized low-level code in C, C++.
Develop and maintain hardware drivers for peripherals like GPIO, UART, SPI, I2C, and ADC/DAC.
Develop and maintain firmware for microcontrollers, SoCs, and other embedded platforms.
Collaborate with hardware teams to define system architecture and hardware requirements.
Expert-level knowledge of embedded Linux systems, application development on Linux.
Software development: Write and debug low-level code for hardware drivers and system control.
Implement and debug communication protocols (e.g., SPI, I2C, UART, CAN, Ethernet).
Testing and validation: Perform system-level testing, debugging, and validation to ensure reliability and performance. Conduct root cause analysis of firmware-related issues and implement fixes.
Create and execute test plans for firmware and hardware validation.
Use tools like oscilloscopes, logic analyzers, and JTAG debuggers for troubleshooting.
Document system designs, specifications, and processes for internal and external stakeholders.
Support manufacturing and field teams in resolving technical issues.
Strong problem-solving, debugging & Analytical skills.
Basic Qualifications
Master’s degree in electrical engineering, Computer Engineering, or a related field.
Experience: 5+ years of hands-on experience in embedded systems development
Proficiency in programming languages such as C, C++, and Python
Strong understanding of microcontrollers, microprocessors, and SoCs (e.g., ARM Cortex, Altera, PIC)
Knowledge of communication protocols (SPI, I2C, UART, CAN, USB)
Experience with Embedded Linux application development.
Knowledge of power management, memory optimization, and real-time constraints.
Experience in low-level driver development and board bring-up.
Understanding of bootloaders, and memory management
Preferred Characteristics
Experience with embedded application development on ARM microcontrollers.
Excellent communication and interpersonal skills.
Familiarity with the software development lifecycle (SDLC) and agile methodologies.
Knowledge of secure firmware development, including cryptographic protocols and secure boot.
Hands-on experience with Raspberry Pi Compute Module development.
A creative mindset with a top-down approach to solution design.
Strong problem-solving, debugging, and analytical skills.