Senior Embedded Software Engineer
We need a passionate engineer with a broad knowledge of embedded systems ranging from low-level control of sensors (both digital and analog) to the use of Bluetooth Low Energy communication (including custom profile development with data compression and security). You will be responsible for the design of a robust software architecture based on a real-time operating system (RTOS) to ensure high reliability in critical devices. You will face optimization challenges related to memory, power and computation requirements.
In addition to your everyday work, you will have the unique perspective of working with different teams within Empatica to tackle problems that range from porting algorithms to the specific hardware platform, facing hardware related issuer to the interaction with the mobile applications.
What you’ll do
You will be responsible for the design and development of firmware for all Empatica hardware. You will have full autonomy and freedom to create and design the best engineering solution that fits our needs and schedule. The firmware is at the center of our product, thus you will collaborate and network with numerous internal teams including Hardware, Data, Software Development, and Quality Assurance.
You will join an elite team of hard-working and passionate people and will be involved in:
- Robust software architecture design on RTOS platforms
- Bluetooth Low Energy management: custom profiles, encryption and data compression
- Bootloaders and remote over-the-air firmware management
- AFE management: adc sampling and analog circuit debugging
- Peripheral management: sampling of digital sensors over I2C, SPI, UART busses, synchronization problems and interrupt priority organization
- Power mode management: handling of CPU power modes
- Data and Memory management: data storage with custom filesystems, data retrieval
- Communication protocols
- Instruction tracing and code coverage, for debugging
- Automated functional testing production
Why work at Empatica
At Empatica you will be able to reach your potential. We need people that can take decisions and achieve results with total independence. In addition we need creative people that are able to find solutions that are efficient in terms of time and resources. Being a firmware engineer at Empatica means working hard to deliver quality to our customers and acknowledge that your work will save lives. Therefore, your design has to be exceptionally good.
As the ideal candidate for this position you:
- Have a genuine interest, passion and motivation for Empatica’s mission.
- Have a strong academic background, BS in Computer Science or Electrical Engineering, but MS in Computer Science or Electrical Engineering is preferred.
- Have past experience as an Embedded System Engineer in a company that designs/manufactures medical devices, wearable devices or IoT devices.
- Have excellent analytical and problem-solving skills
- Are an autonomous person, with good organization and management skills.
- Know RTOS, multi-threading, mutexes, timers, memory management etc.
- Know ARM architecture, instruction set, and developing and debugging with ARM tools.
The ideal candidate for Empatica:
- Is a reliable and effective worker; working in a fast growing startup is not for everyone.
- Is creative, fun and easy to work with.
- Is self-motivated, with good leadership skills.
- Is a critical thinker and always questions dogma, status quo, and the conventional way of doing things.
- Is able to manage a variety of assignments.
- Is detail oriented and highly organized.
We expect a lot from you, but your efforts will be rewarded by great benefits:
- Competitive salaries
- The position is based at our Milan HQ. We also have an office in Boston, plus an amazing beach summer office in Sardinia, Italy!
- Getfit – we care about your health!
- Lunch – yes, being in Italy, it’s something you should care about!
- Free cookies, if you deserve them
- Much more…