Technical Lead (Embedded Software - Linux)
Job Responsibilities:
Lead a team of software/Linux development engineers working on microcontroller firmware development, Linux platform drivers and IOT solutions. Should be able to guide team members, resolve technical roadblocks and deliver project commitments. Will be the go-to person and first-level escalation point for all technical issues faced by the team. Looking for someone with 6+ years in the embedded industry and a passion to build a core team in a growing company. Team size will vary from 6 to 12 people, mainly firmware and Linux engineers.
The selected candidate for this role will be reporting to the software director/manager in the organization.
- Work with firmware and application architects to create a project execution plan
- Review project proposals for execution scope & timelines
- Lead embedded software development activities by the team
- Work with QA teams to resolve bugs and ensure release readiness
- Work with h/w design and PM teams to ensure smooth execution and timely delivery of projects
The main responsibilities of this role are:
Technical:
- Strong programming skills (C, C++, assembly)
- Linux development experience (porting & platform drivers)
- Expert-level knowledge of embedded microcontroller & microprocessor-based systems
- Prior experience in delivering critical modules for microcontroller projects
- Good understanding of commonly used embedded communication protocols
- Good understanding of common embedded peripherals, interfaces & sensors
- Experience working on Real-Time systems (RTOS)
- Should be able to quickly learn new technologies and enable the team on the same
- Should be able to work with minimal technical guidance
Leadership:
- This role requires excellent communication skills
- Strong analytical & problem-solving skills
- Should be able to lead junior engineers by providing technical mentoring
- Owns task division, task allocation and tracking within the team
- Require multi-tasking and time management skills
- Prior experience working with overseas clients
- Periodically report progress to management
Other desirable skills:
Knowledge of Python
Experience: 6 to 10 years
Similar jobs
Responsibilities:
· Collaborate with cross-functional teams, including hardware engineers, system architects, and product managers, to define software requirements and specifications for embedded systems.
· Design and develop efficient, reliable, and scalable embedded software solutions that meet the defined requirements.
· Write, test, and debug code in programming languages commonly used for embedded systems, such as C, C++, and assembly language.
· Interface with hardware components, such as sensors, actuators, microcontrollers, and communication interfaces (UART, SPI, I2C,CAN etc.).
· Develop and implement device drivers, firmware, and low-level software to control hardware peripherals.
· Participate in code reviews to ensure code quality, maintainability, and adherence to coding standards.
· Perform unit testing, integration testing, and system testing of the embedded software.
· Analyse and optimize system performance, memory usage, and power consumption.
· Collaborate with the quality assurance team to identify and resolve software defects.
· Stay up-to-date with industry trends, tools, and technologies related to embedded systems and software development.
· Document software design, code, and test procedures for internal and external use.
· Provide technical support to other teams during product integration, testing, and deployment.
Qualifications:
· Bachelor's or Master's degree in Computer Engineering, Electrical Engineering, or a related field.
· Proven experience in embedded software development, including designing, coding, testing, and debugging.
· Proficiency in programming languages such as C and C++.
· Familiarity with Embedded C, 32-bit microcontroller,16-bit microcontroller hardware interfaces.
· Knowledge of real-time operating systems (RTOS) and multi-threaded programming.
· Strong problem-solving skills and ability to troubleshoot complex hardware-software interactions.
· Excellent communication skills and the ability to work effectively in a team.
· Familiarity with communication protocols (UART, SPI, I2C, CAN, Ethernet) is desirable.
· Knowledge of security considerations in embedded systems is an advantage.
Location: Chennai
- Experience 4 - 8 years
- Key Skills for Software Developer C++, Linux :
- - Looking only for candidates who can join immediately or max 10 day
- - should be able to work independently with no handholding
- - the ability to work with C/C++ code on Windows/Linux platforms
- - Database knowledge of MSSQL, Oracle, MySQL/MariaDB, ideally other ones too: Saphana, Teradata, Postgres.
- - Ability to work on their own fixing defects
- - should be able to understand secure coding practices
- - should have the Ability to work independently and with the team across different time zones
About the company
A strong cross-functional team of designers, software developers, and hardware experts who love creating technology products and services. We are not just an outsourcing partner, but with our deep expertise across several business verticals, we bring our best practices so that your product journey is like a breeze.
We love healthcare, medical devices, finance, and consumer electronics but we love almost everything where we can build technology products and services. In the past, we have created several niche and novel concepts and products for our customers, and we believe we still learn every day to widen our horizons!
Introduction - Advanced Technology Group
As an extension to solving the continuous medical education needs of doctors through the courses platform, Iksha Labs also developed several cutting-edge solutions for simulated training and education, including
- Virtual Reality and Augmented Reality based surgical simulations
- Hand and face-tracking-based simulations
- Remote immersive and collaborative training through Virtual Reality
- Machine learning-based auto-detection of clinical conditions from medical images
Introduction - Advanced Technology Group
As an extension to solving the continuous medical education needs of doctors through the courses platform, Iksha Labs developed several cutting-edge solutions for simulated training and education, including
- Virtual Reality and Augmented Reality based surgical simulations
- Hand and face-tracking-based simulations
- Remote immersive and collaborative training through Virtual Reality
- Machine learning-based auto-detection of clinical conditions from medical images
Job Description
The ideal candidate will be responsible for developing high-quality applications. They will also be responsible for designing and implementing testable and scalable code.
Key Skills/Technology
- Good command of C, and C++ with Algorithms and Data Structures
- Image Processing
- Qt (Expertise)
- Python (Expertise)
- Embedded Systems
- Good working knowledge of STL/Boost Algorithms and Data structures
Responsibilities
- Develop quality software and web applications
- Analyze and maintain existing software applications
- Develop scalable, testable code
- Discover and fix programming bugs
Qualifications
Bachelor's degree or equivalent experience in Computer Science/Electronics and Communication or a related field.
Industry Type
Medical / Healthcare
Functional Area
IT Software - Application Programming, Maintenance
Senior BLE Firmware Software Engineer
About Company
https://espressif.com/">Espressif Systems (688018) is a public multinational, fabless semiconductor company established in 2008, with headquarters in Shanghai and offices in Greater China, India and Europe. We have a passionate team of engineers and scientists from all over the world, focused on developing cutting-edge WiFi-and-Bluetooth, low-power IoT solutions. We have created the popular ESP8266 and ESP32 series of chips, modules and development boards. By leveraging wireless computing, we provide green, versatile and cost-effective chipsets. We have always been committed to offering IoT solutions that are secure, robust and power-efficient. By open-sourcing our technology, we aim to enable developers to use Espressif’s technology globally and build smart connected devices. In July 2019, Espressif made its Initial Public Offering on the Sci-Tech Innovation Board (STAR) of the Shanghai Stock Exchange (SSE).
Espressif has opened a Technology Center in Pune (Baner), India, which will focus on embedded software engineering and IoT solutions development for our growing customers.
About the Role
Espressif is looking for Embedded Software Engineers to join the software department located in India. You will work in a diverse team where your colleagues are from Czech, Russia, India, Australia and so forth. Here, you get a chance to be a member of the core team in Espressif and work with talented engineers from all over the world.
The BLE Firmware Development Team is now focused on the development of the Bluetooth 5.x standard and BLE Mesh standard.
BLE FW Team is looking for a self-starting, high-technical, energetic individual with keen attention to details. The Candidate will be actively involved in:
- Development of Bluetooth Low Energy (BLE) Firmware for Espressif Bluetooth chips.
- Development of new firmware for BLE latest specification (BLE 5.x, BLE Mesh, etc).
- Development of BLE chip validation and Bluetooth Qualification.
- Research of cutting-edge and challenging Bluetooth technologies (BLE Audio, BLE Direction Finding, Next-Generation BLE Chip, etc).
- Supporting the existing firmware through feature additions, enhancements and maintenance.
- Working with systems team and cross-functional teams to deliver quality software following well-established software development processes.
- Resolving issues as reported by internal test teams as well as customers.
Requirements
Required skills
- Bachlor's degree or above in Electronic Engineering, Communications Engineering, Automation or other related majors
- Familiarity with Bluetooth Low Energy (BLE) protocol or BLE Mesh protocol
- Proven experience in developing BLE stack / firmware (2+ years, both BLE host and controller) or BLE Mesh stack (2+ years)
- Experience with software engineering processes and the full software development lifecycle including requirements, design, implementation, testing, and documenting in Continuous Integration environment
- Strong experience and proficiency in C programming (3+ years) for embedded platforms required
- Excellent problem solving and debugging skills
Bonus point
- Experience in developing BLE profiles and BLE applications (e.g. HID, ANCS, Homekit, etc)
- Good understanding of other networking protocol stacks is highly desired (e.g. Zigbee, IEEE 802.11, UWB, Lora, NB-IoT, etc)
- Strong Real-time systems and software engineering skills required (e.g. FreeRTOS, etc)
- One or more scripting languages (e.g. Python, etc)
- Experience with variety of software productivity tools (e.g. Git, Jira, etc)
What to expect from our interview process
- The first step is to email your resume or apply to the relevant open position, along with a sample of something you have worked on such as a public GitHub repo or side project etc.
- Next, post shortlisting your profile recruiter will get in touch with you via a mechanism that works for you e.g. via email, phone. This will be a short chat to learn more about your background and interests, to share more about the job and Espressif, and to answer any initial questions you have.
- Successful candidates will then be invited for 2 to 3 rounds of technical interview as per previous round feedback.
- Finally, Successful candidates will have interview with HR.
What you offer us
- Ability to provide technical solutions, support that fosters collaboration and innovation.
- Ability to balance a variety of technical needs and priorities according to Espressif’s growing needs.
What we offer
- An open minded, collaboration culture of enthusiastic technologist.
- Competitive salary
- 100% company paid medical/dental/vision/life coverage
- Frequent trainings by experienced colleagues and chances to take international trips, attend exhibitions, technical meetups and seminars.
Mandatory Skills:-
C Programming and data structures.
Linux Internals ( System calls, IPC, Network Programming, POSIX Multi-thread programming)
Desirable Skills :-
C++ and OOPs knowledge
Linux system start-up sysvinit, systemd,
Bootloaders : uBoot
Message bus protocols like dbus
Basic Linux Device driver knowledge
Linux Build framework – Yocto-Bitbake, Makefiles
Python scripting
Debug using tools such as GDB
Version control - GIT and SVN
Relevant experience: 2-3 years
Responsibilities:
- Should be good at, C, C++, Linux driver development
- Should have worked in protocol like i2S, SPI, i2C. rf, 6lowpan, Tcp / Ip stack etc..
- Experience in porting MbedOS , FreeRTOS to different boards is good.
- Analyzing and enhancing efficiency, stability and scalability of system resources
- Design, develop, code, test and debug system software
- Provide post production support
- Interface with hardware design and development
Requirements:
- Proven working experience in software engineering
- Experience in hands-on development and troubleshooting on embedded targets
- Solid programming experience in C or C++
- Adequate knowledge of reading schematics and data sheets for components
- Strong documentation and writing skills
Note: Self-motivated, goal oriented and good analytical skills.