We are a small, but experienced team at Infinum, that works on embedded software for various clients. As a brand new team, our goal is to expand our IoT services in this continuously growing market. We are currently working on firmware development for Philips IoT products, which includes writing bootloaders, JSON protocols implementation, and developing graphics for displays. We work closely with Android and iOS teams and plan to expand our services to other clients whom we already provide with web and mobile solutions.
We are looking for an embedded software engineer with at least one year of experience writing firmware for embedded systems. You’ll be working with an international team on smart appliances and IoT projects, so we expect you to have good communication skills and excellent knowledge of English. Since we have a hybrid working system, you will be able to choose between working remotely, or from our Zagreb office.
Qualifications & Experience
- at least one year of professional experience in programming microcontrollers in C/C++
- experience in working with ARM Cortex-M microcontrollers
- good knowledge of UART, I2C, SPI protocols
- experience with FreeRTOS and Git
- basic knowledge of electronics and electrical circuits
- excellent knowledge of spoken and written English
- a degree in computer science, informatics, or similar
- ability to work successfully in a multicultural, global business environment
- excellent organizational skills
Bonus points
- familiarity and/or experience with MQTT, JSON, and Protocol Buffers
- experience with BLE (nRF), WiFi (ESP32), LORA, or NB-IoT
- experience in developing graphics for displays
- experience in writing unit tests and bootloaders
Your responsibilities
- planning, development, deployment, and maintenance of various software solutions
- defining tasks and providing time estimates
- writing clean, maintainable code and testing it
- rolling out new features, and analyzing (and reacting) to the results you learn about from our QA Engineers and user feedback
- collaborating with clients and both project and technical teams
- being able to present your solutions in front of clients and/or a group of colleagues
- proactively communicating with other team members and project stakeholders
- using agile methodologies in development (if you don’t know them yet, we will teach you)
- participating in code reviews, pairing, and other forms of knowledge-sharing
- continually improving your skills and pushing others to expand their knowledge
- working in a cross-functional team