
Senior Firmware Engineer
at Deep-tech company working on transformative motor technology
Do you wish to work for a Deep-tech Indian company developing path-breaking products which are set to disrupt every possible industry and domain?
Our client is building a scalable, cloud-controlled, and rare-earth free platform for designing, building, and deploying electric motors for various applications. It aims towards building transformative technology that will make the motors of the future simpler, smarter, more efficient, and easy-to-build in the long run.
The founders are veteran serial entrepreneurs, product experts, and motor technologists with more than eight decades of experience developing cutting-edge products and technologies. The company is bringing transformative motor technology to the forefront of commercial applications. The company aims to make deep fissures in the extant hydrocarbon and rare-earth-based energy economy to create a greener future.
What you need to join us
Are you a coding ninja, algorithmic genius, with a flair for control systems and a passion to create new path breaking technologies (with a green social impact to boot!)? Does working with a bleeding edge research oriented tech startup excite you? If so, please read on and apply.
Responsibilities
- Take ownership of firmware development for motor controllers
- Identify and develop real-time algorithms for controlling cutting-edge Motors and Generators
- Implement motor control algorithms in microcontrollers
- Debug and diagnose the firmware on the controller hardware
- Develop drivers and HAL firmware as needed for various peripherals
Skills and Experience
- Experience in embedded Firmware development
- In-depth knowledge of C programming knowledge
- Extensive engineering experiences in software development with proven track record of at least one product from concept to production
- Hands on experience with development and debugging of embedded systems
- Experience in working with real-time embedded systems and power electronics
- Experience in working with Microcontroller peripherals such as ADC, Timers, Comparators, Input-capture, PWM etc.
- Experience with microcontrollers from TI, NXP, STM32, PIC, Atmel (ARM based microcontroller experience is preferred)
- Ability to translate mathematical concepts to executable code in resource-constrained microcontroller environments
- Exposure to debugging using lab equipment such as Oscilloscopes, Multimeters, Logic Analyzers, signal generators etc.
- Hands-on experience in bringing up a new hardware with firmware written from scratch
- Experience with simulation software such as Matlab, Simulink etc is highly desirable
- Knowledge and experience of control systems is highly preferred
- Experience in automotive domain is preferable
Character Traits
- Proactive
- Problem solver
- Committed and motivated
- Inquisitive and eager to learn
- Clarity of thinking
- Sense of urgency
- Can-do attitude
- Team player
Education and Experience:
B.E – EE, CS, ME (or equivalent) from a reputed institution with 3 years of experience OR
ME/MS – EE, CS, ME (or equivalent) with 1-2 years of experience

Similar jobs
Job Title : Embedded System Software Engineer
Experience Required : 1 to 3 Years
Duration : 6+ Months (Extendable)
Notice Period : Immediate
Job Description :
We are seeking a motivated and skilled Embedded System Software Engineer to join our team.
The ideal candidate will have 1 to 3 Years of experience in embedded software development with a solid foundation in C++ and Qt 5.
This role involves working with embedded Linux systems and contributing to the development and maintenance of robust embedded applications.
Mandatory Skills : C++, Qt 5, Embedded Linux (Yocto preferred), SOAP/REST protocols, Git, problem-solving, and analytical skills.
Key Responsibilities :
- Design, develop, and maintain embedded software applications using C++ and Qt 5.
- Work on embedded Linux systems, with a preference for experience in The Yocto Project.
- Integrate and manage network communication using protocols such as SOAP and REST.
- Collaborate with cross-functional teams to understand requirements and deliver high-quality solutions.
- Utilize Git for version control and collaborative development.
- Troubleshoot and debug software and system issues efficiently.
- Continuously improve code quality through code reviews, testing, and optimization.
Required Skills and Qualifications :
- Bachelor’s degree in Computer Science, Engineering, or a related field.
- 1 to 3 Years of hands-on experience in software development.
- Proficiency in C++ and Qt 5 Framework.
- Experience working with Embedded Linux; knowledge of Yocto Project is a strong plus.
- Basic understanding of network protocols, including SOAP and REST.
- Familiarity with Git or other version control systems.
- Strong problem-solving and analytical skills.
Preferred Skills (Nice to Have) :
- Experience in cross-compiling and deployment for embedded targets.
- Familiarity with CI/CD tools and automated testing for embedded systems.
- Understanding of hardware-software integration challenges.
At BrainAlive, we develop next-generation BCI technologies that transform how humans use biosignals. We build devices and systems that allow you to develop a crisp, conscious understanding of your physiology, especially relating to your cognitive and emotional abilities. With a mission is to become the innovation leader in the area of Brain-Computer Interface (BCI), we are building our reputation as the industrial powerhouse in BCI applications in the education and healthcare space.
Role - Embedded Firmware Engineer – II (Brain-Computer Interface)
As an Embedded Firmware Engineer at BrainAlive, you will have the opportunity to pioneer, develop and build out our footprint in consumer hardware. You will build and launch smart BCI wearables and other related products in line with BrainAlive's ambitious and visionary objectives. Your primary focus will be to enhance the efficiency, stability and scalability of hardware system resources. We need you to be versatile, display leadership qualities and be enthusiastic to take on new problems as we continue to push technology forward.
- Develop codes for utilising various hardware and capabilities built into a microcontroller, such as ADCs, timers, RTCs, power-saving and sleep modes, etc
- Perform debugging and provide technical support to the service team
- Participate in requirements analysis and collaborate with internal teams to produce firmware design and architecture
- Revise, update, refactor and debug code
- Drive peer reviews and peer testing across different modules developed
- Develop documentation throughout the product development life cycle
- Serve as an expert on applications and provide technical support
Required Qualification
- Bachelor Degree in Electronics / Electrical Engineering or Computer Science or related field
- 3+ years of experience in Microcontroller programming
- Experience in developing codes for the effective functioning of communication protocols such as UART, SPI, I2C, etc.
- Experience with hardware debugging tools and interface like JTAG, SWD
- Experience with BLE and USB protocols
- Highly experienced in developing and debugging in embedded C/C++, RTOS
- Product development experience with 32-Bit STM ARM Microcontroller Architectures
- Familiarity with source control management software (SVN, Git)
Preferred Qualification
- Experience at handling huge codebases and designing of multi-layered architectures
- Experience in optimisation of Microcontroller codes for specific goals like power efficiency, very low response times, memory space optimisations.
- Deep understanding of microcontroller's architecture and its working
- Experience in prototype bring-up and debugging, functional verification and manufacturing support
- Prior Brain-Computer Interface Device development experience
- Excellent troubleshooting and communication skills
Job Responsibilities
Responsibilities for this position include, but are not limited to, the following.
Understand requirements and create low-level design using UML
Develop embedded software as per defined software requirements
Software integration & testing
Background & Skills
Education:
B.E/B. Tech/M.Tech/Master (Electronics/Telecommunications/Computers Science)OR equivalent
Experience & Attributes:
2-8 years’ experience in Embedded system software design, development, and testing.
Excellent communication skills, spoken and written English
Must have specialized knowledge :
· Embedded C
· Electronics
· RTOS
· Knowledge of Microcontrollers (RISC, CISC)
· CAN Communication & Protocols like UDS, KWP2000, CANopen and J1939
· MISRA standard - 2000/MISRA 2012
· SDLC, Agile Scrum
· Static analysis & Tools like LDRA or QAC or Vector cast
· Change Management & Tools like JIRA/VSTS
· Version control & Tools like SVN/GIT/Clearcase
· Traceability management & Tools like Reqtify or equivalent
· Design methodologies - like UML
· Software Test Life Cycle
Specialized knowledge – Will be Preferred
· Functional Safety life-cycle & Management - Applies to software design & development
· Safety standards like - IEC-61508, ISO-26262, ISO-25119, ISO-13849
Key Tasks and Responsibilities
· Software requirement specification writing
· Creating design for assigned modules
· Implementing the code for assigned requirements
· Perform unit testing
· Perform peer reviews or inspection of software work products
· Support testing team on defect analysis
· Adhere to Quality processes
Developer Software (Embedded)
Location: Udaipur
Qualification: BE in (Electrical/Electronic Engineering)
Technical
· Experience in design and development with structured Software Development Life Cycle for embedded applications
· Proficiency in C language or assembly programming, Microcontroller, Micro Processor.
· Preferably experience in working and understanding the metering domain
· Proficiency in development processes, tools/IDE (KEIL, IAR, Eclipse) & test automation
· Unit testing skill
· Interface RS485, RS232, SPI, I2C, USB, LCD, Keypad, Flash, EEPROM
· Coding Standards and MISRA rules are preferable
· Knowledge of ARM / MIPS / Coldfire / MSP430 / dsPIC / 8051 and other popular processor
· Experience in working on communication products based on GPRS, ZIGBEE, ZWAVE, Ethernet, Power line communication, DLMS, MODBUS
Job Description
· Understand improvement requirements and develop improvement solutions & package, according to technical specifications / high-level solution design
· Responsible to carry out effective and timely unit testing, in order to, deliver first time right solutions
· Development of automation framework/compiler / emulators to speed up business delivery cycle in NPI programs
· Keep track of new trends, continuously learn and self-develop skills by ensuring effective knowledge sharing through group meetings and training. Impart training to new joiners as and when assigned
· Proficiency in developing embedded software design with high reusability using relevant tools and BSM or flow diagram
You would be part of:
- Designing/Improvement of new/existing architectures of distributed computing with subcomponents of Unmanned Aerial Systems (UAS).
- Working/Researching with industrial state of the art sensor systems and modules, and developing drivers (HAL or wrapper) and applications around their usage.
- Design and implementation of communication protocols between different subcomponents of UAS for distributed computing.
- Writing Applications and Drivers from the scratch for (embedded)linux based systems.
- Scripting and automations around work flows of UAS usage.
- Working with existing sophisticated software stacks of subcomponents of UASs.
- Working closely with electronics, design and systems teams for architecture development and deployment.
- Working closely with Flight Controller engineers to do collaborative development of UAVs.
We expect you to be:
- Experienced in hands-on development of complex embedded systems involving multiple microcontrollers or SoCs.
- Very good in analytical abilities to be able to do core research and development activities.
- Able to write low level drivers (wrapper or core) from the scratch.
- Very comfortable reading and understanding datasheets and reference manuals of microcontrollers, peripherals, sensors etc.
- Able to understand existing complex embedded software stack written in C/C++.
- Solid in C.
- Good in C++.
- Comfortable with using hardware debuggers.
- Having Hands-On experience with RTOS concepts like scheduling, threads synchronicity , race conditions etc.
- Having Solid understanding of interrupt mechanisms.
- Experienced in working with different hardware protocols like SPI, I2C, UART, PWM, CAN, USB etc.
- Having Solid understanding of interrupts architecture of ARM based microcontrollers like STM32, LPC etc.
- Having Good understanding of the concept of bootloaders.
- Able to multitask.
- A self-motivated and motivating personality who can work well independently as well as part of a team
- Having good interpersonal and soft skills who can adapt to the work environment while manifesting a good positive attitude
You are awesome if you are:
- Experienced in Linux Device Driver development.
- Having good exposure of working on and understanding of any sensor modules like GPS, LIDAR etc.
- Experienced in data filtering techniques (Example: Kalman filter)
Summary:
The embedded systems engineer designs, develops, tests, and maintains embedded systems. The engineer will identify and fix issues and work collaboratively with engineers, product managers, and others on various teams.
Responsibilities:
- Design and build embedded systems, including embedded system firmware
- Test and debug the systems
- Monitor and maintain the system after development
- Improve system efficiency and stability after development
- Collaborate with customers to create systems based on their needs
Requirements:
- Minimum of a bachelor's degree in computer science or engineering
- Professional experience in embedded systems
- Significant programming experience in C or C++
- Experience in trouble-shooting embedded systems and microcontroller peripherals
- Experience in working in real-time operating systems
- Experience in interfaces, IP protocols, and hardware subsystems
- Proficiency in working with common embedded systems communication protocols
- Strong interpersonal and writing skills
- Ability to work as part of a team
- Exceptional analytical and problem-solving skills
- Self-motivated and passionate about your work and embedded systems
- Always eager to learn and improve
Xfinito is building a portfolio in new product innovation, product contribution and infrastructure goals while providing individuals and teams the freedom to emphasize specific types of work.
Our work focuses on real –world problems that span the breadth of biomedical engineering, embedded systems, computer science, such as machine and deep learning, data mining, natural language processing, hardware and software performance analysis and much more.
JOB ROLE: EMBEDDED SYSTEMS ENGINEER
ROLES AND RESPONSIBILITIES:
- Work with multi-disciplinary engineering team and customer to identify and recommend hardware needs and requirements for project/product.
- Modify or assist in the development of software architecture and design for new products, prototype, or re-design, including sourcing build environments and writing technical support and control documentation.
- Read Block Diagrams and detail circuit schematics and layout of proposed or existing hardware and assess the software and driver requirements.
- Participates in cross-divisional Edge IoT projects and/or proposals.
- Develop, oversee, and document automated tests for electrical hardware design and products as well as final operating drivers and systems.
- Evaluate and investigate product failures, and recommend repair or design modifications based on specifications, cost, resources, and risks.
REQUIREMENTS:
- Ability to creatively approach challenges and cleverly solve difficult problems.
- Ability to independently identify daily design and customer support tasks, self-start and motivate.
- Ability to manage several projects and prioritize appropriately, with minimal supervision.
- Ability to work in a collaborative team environment as well as independently.
- Ability to learn and work in virtual environments (CAD & Hardware build packages) in-which candidate’s skills are low but persevere and overcome skill gaps autonomously.
- Some experience programming with embedded systems designs and multithreaded real-time operating systems is required.
- Solid programming experience. Preferably in C or C++, .NET, and Java programming languages.
EXPERIENCE:
We as a team are looking for freshers or young professionals with (0-4 years of experience) passion and eagerness to create scalable and optimized software systems and execute complete embedded software development lifecycle.
- Looking for engineers with one of the below requirements:
- 3+ years of embedded development experience in a Linux environment
EDK2 experience
SCT experience
knowledge of TPMs
oWith Option2:
worked on bootloaders or uboot
- Total Experience:
- Rel Experience in Embedded development:
- Rel Experience in Linux:
- Rel Experience in C:
- CCTC:
- ECTC:
- NP:
- Company:
- Current Location:
- Reason for Job change:
- Offer:
- Open for a contract position?:










