Job Description
About Us:
Imagine a world where accessible education empowers every visually impaired individual to reach their full potential. That's the vision driving us. As a tech-innovative company, we're dedicated to building groundbreaking educational solutions for the visually impaired population across the globe, relentlessly focused on improving learning outcomes. Our pioneering spirit brought to life Annie, the world's first Braille literacy device. Annie has not only been embraced wholeheartedly but has also spread its wings into more than 8 countries, creating a tangible difference. Our journey even captivated audiences on Shark Tank Season 1, becoming one of the most watched episodes globally.
Our commitment to innovation and impact has been recognized through prestigious accolades like the National Startup Award 2022, the MIT Solve Challenge, and the Times Best Innovation Award in assistive technology. We invite you to join our inspiring journey as we continue to innovate with Annie and develop new solutions, aspiring to empower every visually impaired learner on the planet. You can learn more about us and Annie here.
Who are we looking for?
We are seeking an Embedded Software Engineer with a strong foundation in Python, Embedded Systems, and Application Development. You will work on real-time, hardware-integrated systems that power our assistive technology products.
This role is ideal for someone who enjoys working close to hardware, building reliable concurrent systems, and solving complex real-world problems in accessibility and education.
What will you be doing?
As an Embedded Software Engineer, you'll be contributing to a multidisciplinary team developing innovative solutions for accessible education. You'll get the opportunity to:
System Architecture & Ownership
- Own and evolve the overall software architecture across firmware, embedded Linux, and application layers.
- Understand, maintain, and improve an existing embedded codebase for a production device.
- Design modular, scalable systems that support long-lived hardware products.
- Document system design, data flows, and architectural decisions to ensure continuity and maintainability.
Embedded & Firmware Development
- Design and implement bare-metal and RTOS-based firmware for microcontrollers.
- Build and maintain hybrid systems combining RTOS-based firmware with embedded Linux.
- Manage boot flows including U-Boot, kernel startup, and device initialization.
- Implement and maintain OTA update mechanisms for field-deployed devices.
Embedded Linux & Platform Engineering
- Customize, build, and maintain embedded Linux images using Yocto.
- Optimize system performance, boot time, and resource usage on constrained hardware.
- Debug system-level issues using serial logs, kernel logs, GDB, strace, and protocol analyzers.
Application & Concurrency
- Develop Python-based embedded applications interacting with real-time hardware.
- Design multiprocessing and concurrent architectures for:
- Sensor acquisition
- Actuator control (Braille cells, haptics, etc.)
- Audio and speech feedback
- Network and cloud communication
Hardware & Communication
- Integrate and maintain communication with peripherals using I2C, SPI, UART, USB, and BLE.
- Design reliable BLE communication layers for pairing, control, and data exchange.
- Implement IoT communication using HTTP/MQTT for device-cloud synchronization.
Collaboration
- Work closely with Product, Hardware, QA, and Content teams to translate user needs into technical solutions.
- Support accessibility-driven design decisions for visually impaired users.
- Mentor junior engineers and contribute to technical best practices within the team.
What you'll need to bring to the table?
- Strong proficiency in C/C++ for bare-metal and RTOS-based development.
- Strong proficiency in Python for embedded and system-level applications.
- Hands-on experience with embedded platforms such as Raspberry Pi, ESP32, STM8 or similar.
- Solid experience with RTOS (e.g., FreeRTOS) and hybrid Linux + RTOS architectures.
- Strong experience with Yocto Project and custom embedded Linux builds.
- Good understanding of bootloaders (U-Boot) and system startup flows.
- Experience implementing or maintaining OTA update systems.
- Hands-on experience with BLE, including pairing and data exchange.
- Experience integrating hardware using I2C, SPI, UART, USB.
- Strong debugging skills in embedded and Linux environments.
Good to Have
- Strong system design and architecture experience for embedded or hardware-integrated products.
- Prior ownership of an embedded product or subsystem in production.
- Experience designing end-to-end systems spanning device firmware, OS, application layer, and cloud sync.
- Experience working with databases such as MySQL, PostgreSQL, or SQLite.
- Familiarity with data modeling, logging, and synchronization in embedded or IoT systems.
- Experience with assistive technologies or accessibility-focused products.
Duration
Full Time
Application process:
You can apply for the role via the below link:
Apply for this Position
Ready to join ? Click the button below to submit your application.
Submit Application