

Similar jobs

Responsibilities:
- Software Development with C++ for Autonomous drive project.
- QT Library (no GUI features)
- Object Oriented Analysis / Object Oriented Design
- C++ Template implementation
- C++17 specifics like “std::optional”
- Macro implementation
- Implementation of Clean Code
- Static Code Analysis
- CMake
Qualifications:
- Excellent GIT knowledge especially how to merge, Rebase
- University degree in Electrical/Electronic engineering, Computer Science or similar
- Minimum 1 to 5 years of embedded software development experience on Yocto Linux based projects in automotive domain
- Expert in C++ programming
- Strong debugging skills
- Good communication skills
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
- 32-bit Microcontroller knowledge is essential (ARM Cortex based micro-controllers (STM32).
- Esp32 architecture knowledge is essential.
- Strong experience in C, C++, Free-RTOS
- Strong experience in CUBEMX IDE, MDK Version 5 – Keil, Arduino IDE environment
- Good knowledge in HW and communication protocols like CAN, SPI, UART, I2C, USB
- Good knowledge in TFT Displays and Sensors is added advantage
- Good knowledge of implementation of motor controls as required, pulse width modulation schemes (PWM).
- Good knowledge of power electronics (TRIACs, MOSFETs, IGBTs, gate drivers) and require protections (Over/under voltage/current).
- Document firmware designs, specifications, test plans, revisions and produce test reports

Location: Bangalore
Experience: 4 to 12 years
JD:
- Familiar with AUTOSAR BSW and RTE, architecture, specifications, and configuration tools
- Strong fundamentals programming in C, embedded system concepts, and software build process
- Strong customer orientation, willingness to meet deadlines, and self-management skills
- Deep passion for solving problems to resolution, including root cause analysis skills
- Ability to work and collaborate in a dynamic team environment
-
Design and implement software of embedded devices and systems from requirements to production and commercial deployment.
-
Design, develop, code, test and debug system software Review code.
-
Support software QA and optimize I/O performance.
-
Interface with hardware design and development Assess third party and open source software.
-
hands-on development and troubleshooting on embedded targets Solid programming experience in C or C++.
-
Experience in programming Embedded C/C++ applications with strong background in C/C++ inheritance, templates and pointers.
-
Strong in OS concepts like efficient multi-threading and resource-sharing.
-
Experience in working with firmware, application and board support packages.
-
Expert knowledge on protocols like (RS485 SPI, I2C, ADCs, PWM, CAN).
-
Embedded development tools and methodologies. • Version Control Systems - Clear Case / RTC /GIT.
-
Strong development experience in embedded C and RTOS. • Should have detailed knowledge and experience on microcontrollers / microprocessors ( 16 bit/32-bit).
-
Experience in configuration management & defect tracking tools.
-
Strong debugging skills.
-
Must be a self-starter.




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)
Develop firmware, system software for medical devices\ Automotive ECUs\ IoT edge devices & gateways. Implement the logic and protocols and communications on 32-bit microcontrollers, configure OS, timers, tasks, interrupts, and communicate with external modems, SoCs, trans-receivers to design, code, and test desired functionality as per customer requirements
Job Requirements :
- Hands-on experience in firmware development using C language
- Hands-on experience in writing low-level device drivers for microcontrollers
- Know of real-time Operating system concepts, tasks, and interrupts’ configuration
- Hands-on experience with in-circuit debuggers
- Knowhow of wired and wireless communication protocols
- Basic understanding of HW circuits, power supply designs, sensors, and actuators’ interfaces
- Experience in implementing SW development quality processes like ISO 9001 or ASPICE
- Good written and oral communication skills


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.

