Arduino’s mission is to enable people to enhance their lives through accessible open-source electronics and digital technologies. Since 2005, millions of people, from kids and students to engineers and professionals around the world are using Arduino to innovate in the fields of music, games and toys, smart homes, farming, autonomous vehicles and many more.
To support our growth, we are looking for a Senior Embedded Linux Developer to join our Hardware & Firmware team. You will be instrumental in designing, developing, and maintaining the Linux-based software stack for our embedded devices. You will design, develop and test Linux components (for example, hardware drivers) to be used in microprocessor-based hardware boards developed by Arduino. You will work across the entire product lifecycle, from initial concept and architecture definition to deployment and ongoing support, ensuring our products are robust, performant, and secure.
What we offer
- A challenging career path in a rapidly growing company with modern vision and talented teams.
- A competitive salary (and benefits) that values people skills and experience.
- A young and inspiring work environment that encourages diversity and cultural exchange.
- Individual growth objectives with a dedicated budget for learning/training.
- Flexible working hours and working locations, we value work-life balance!
- A meaningful work opportunity in a mission-driven company committed to empower people around the world.
And if you live near one of our offices…
- Ping pong and foosball tournaments (sport or gym benefit is also included for everyone!).
- Seasonal celebrations, happy hours and everyday drinks and snacks at the office.
- Sunny rooftop lunch breaks and hamacas for relaxation and concentration.
What you'll work on
- Design, develop, and optimize Linux kernel modules, device drivers, and user-space applications for embedded hardware.
- Develop and maintain Board Support Packages (BSPs) for new and existing hardware platforms, including bootloaders, kernel configuration, device tree, and file system integration
- Collaborate closely with hardware engineers to bring up new boards, debug hardware-software interactions, and ensure seamless integration.
- Analyze and optimize system performance, memory usage, and power consumption for embedded Linux devices.
- Diagnose and resolve complex technical issues related to the embedded Linux operating system, drivers, and applications.
- Create and maintain clear and concise technical documentation for designs, code, and test procedures.
- Work effectively with cross-functional teams including hardware, application software, Quality Assurance, and product management to define requirements, integrate components, and deliver high-quality products.
- Represent Arduino at internal / external events and share our spirit with the developer community
What you bring
- Bachelor's or Master's degree in computer science, engineering, or related field
- At least 5 years experience in Embedded Linux development.
- Strong proficiency in C and/or C++ for embedded systems.
- In-depth understanding of the Linux kernel, including drivers, kernel modules, and system calls
- Experience with embedded Linux distributions and build systems (e.g., Yocto Project)
- Hands-on experience with hardware interfaces and protocols (e.g., I2C, SPI, UART, USB, Ethernet, CAN, GPIO)
- Proficiency with debugging tools (e.g., GDB, JTAG debuggers, oscilloscopes, etc)
- Broad knowledge of git flow
- Ability to read hardware schematics and datasheets.
- Able to write high quality technical documentation in English
- Fluent in English both verbal and written is mandatory
Bonus Points
- Knowledge of the Arduino ecosystem
- Experience with Golang and/or Python
- Familiarity with containerization technologies (e.g., Docker) for embedded environments.
- Knowledge of security best practices in embedded Linux systems.
- Knowledge of network protocols (e.g. MQTT, CoAP, HTTP, TCP, UDP, AMQP)
- Knowledge of building systems for Linux distributions
- Knowledge of Github
If you're excited about this role or about our company but your experience doesn't align perfectly with the points outlined above, we strongly encourage you to apply anyways. If we feel you don’t fit for this job we may have something else for you!