11+ DMA Jobs in India
Apply to 11+ DMA Jobs on CutShort.io. Find your next job, effortlessly. Browse DMA Jobs and apply today!
Job Summary
We are seeking a highly skilled and motivated Linux Device Driver Engineer with strong C/C++ programming skills and hands-on experience in Linux driver development. The ideal candidate will have a proven track record of working with kernel modules and hardware interfaces, and be comfortable debugging and optimizing low-level system software.
Key Responsibilities
- Porting existing Linux device drivers to new platforms, SoCs, and kernel versions.
- New driver development for custom hardware components and peripherals.
- Debugging kernel and driver-level issues using industry-standard tools.
- Integration & bring-up of hardware with Linux-based systems.
- Collaborate with hardware teams to interpret specifications and enable device functionality.
- Optimize drivers for performance, reliability, and resource efficiency.
- Write clear technical documentation for driver APIs, design, and integration steps.
Required Skills & Qualifications
- Bachelor’s/Master’s in Computer Science, Electronics, or related field.
- 4 to 8 years of professional experience in software development.
- Strong proficiency in C/C++ programming and memory management.
- Hands-on experience with any Linux device driver (character, block, network, USB, PCIe, I2C, SPI, etc.).
- Good understanding of Linux kernel architecture, module programming, and build systems.
- Knowledge of interrupt handling, DMA, and device tree configuration.
- Familiarity with cross-compilation and embedded Linux toolchains.
- Experience with debugging tools (GDB, ftrace, perf, printk, etc.).
- Version control experience (Git).
Preferred Skills
- Exposure to multiple driver types (networking, storage, multimedia, etc.).
- Experience with Yocto, Buildroot, or similar embedded Linux environments.
- Knowledge of real-time Linux and RT patches.
- Scripting knowledge (Python, Bash) for testing and automation.
Soft Skills
- Strong analytical and debugging skills.
- Good communication and collaboration abilities.
- Ability to work independently and take ownership of deliverables.
Job Summary:
Conceptualize, designs, codes, debugs and performs development activities in accordance with designated standards and procedures to meet specific project requirements. Shares technical expertise and provides training and guidance to other team members.
Essential Job Duties and Responsibilities:
- Using the current programming language and technologies provide creative, thorough and practical solutions to a wide range of technical problems.
- Share technical expertise within the department and other departments as requested.
- Analyze and contribute to system and subsystem requirements specifications and design definitions.
- Design, develop and test of applications and programs to support the company’s products.
- Design, develop and test software programs following established quality standards and in accordance with internal engineering procedures including coding, unit testing, peer reviews and software configuration control.
- Complete high- and low-level detailed software design specifications, storyboards and interface specifications.
- Provide support of products through conception to product delivery including problem solving, defect maintenance and support to customer services (which may require out of hours support in certain circumstances).
- Prepare reports, manuals, procedures and status reports.
- Provide training and guidance to other team members.
- Supports the bids and proposal and customer variation requests.
- Keeps abreast of improvements and developments within software engineering, supporting continuous improvement within engineering.
- Comply with Cubic’s values and adherence to all company policy and procedures. In particular, comply with the code of conduct, quality, security and occupational health, safety and environmental policies and procedures.
- In addition to the duties and responsibilities listed, the job holder is required to perform other duties assigned by their manager from time-to-time, as may be reasonably required of them.
Education and Qualifications
Essential:
- Bachelor of Science degree in computer science, electrical engineering, or related field or equivalent professional experience or combination of both.
C++ Embedded development experience requirements:
- 6+ years of C++ experience (C++ 11 C 14 is mandatory )
- Delivered highly functional, performance-driven, user-friendly applications.
- Proficient client-side development experience.
- Experience in developing multi-threaded applications.
- Experience with REST, JSON C web services.
- Experience using a crash reporting solution.
- Experience of debugging on target hardware.
Essential:
- Experience in Software Engineering with a proven track record of specification, design and development.
- Demonstrable experience of defining test plans and test data requirements.
- An effective problem solver with the ability to understand and resolve complex issues.
- Experience in troubleshooting and debugging applications.
- Organized with the ability to prepare reports, manuals, procedures and status reports.
- Experience of Object-Oriented Design (e.g. UML) and implementation, along with Design patterns.
- Ability to contribute to the development of the architecture for applications.
- Experience of maintaining and improving coding standards.
- Able to build reusable code and libraries, ensuring thorough application documentation for future use.
- Experience of software best practices such as Automated Testing (Google Test and VSTest), Continuous Integration, Test Driven Development, SOLID and Clean Code principles.
- Scrum or Kanban experience. GIT and Jenkins experience.
- Experience using DOORS, Test Rail and JIRA
- Experience working with test teams to optimize application performance.
Position: Senior Embedded Software Engineer – PCIe / Embedded Linux
Location: Bangalore (Preferred)
Experience: 7+ years
Night Shift
About the Role:
We are seeking a highly skilled Senior Embedded Engineer with strong expertise in Embedded Linux and PCIe protocol development. The ideal candidate will have deep technical knowledge of PCIe (Gen4 and above) and experience in developing and debugging embedded systems at both hardware and software levels. Exposure to AI/ML or accelerator-based systems will be considered a strong plus.
Key Responsibilities:
- Design, develop, and optimize embedded software on Linux and RTOS platforms.
- Implement and validate PCIe-based communication and device drivers (Gen4 minimum, Gen5/6 preferred).
- Work closely with hardware and system teams to debug low-level issues related to PCIe interfaces.
- Develop firmware and system-level software components for high-performance embedded platforms.
- Participate in board bring-up, performance optimization, and hardware/software integration.
- Contribute to system architecture discussions and design reviews.
- Document design, testing procedures, and performance analysis.
Core Skills Required:
- Embedded Linux development (mandatory).
- Deep understanding of PCIe protocols (Gen4 minimum; Gen5/6 preferred).
- Strong knowledge of low-level driver development, DMA, interrupts, and memory management.
- Experience with Embedded RTOS environments.
- Familiarity with hardware debugging tools (e.g., JTAG, logic analyzers, oscilloscopes).
- Proficiency in C/C++ and scripting (Python, Shell).
- Excellent problem-solving and debugging skills.
Preferred Skills (Good to Have):
- Exposure to AI/ML hardware accelerators or data processing units (DPUs).
- Understanding of SoC architecture and high-speed interconnects.
- Experience working with multi-core systems and performance tuning.
Education:
- Bachelor’s or Master’s degree in Computer Engineering, Electronics, or related field.
Skills Required:
- Good experience with programming language Python
- Strong experience in Docker.
- Good knowledge with any of the Cloud Platform like Azure.
- Must be comfortable working in a Linux environment.
- Must have exposure into IOT domain and its protocols ((Zigbee & BLE ,LoRa,Modbus)
- Must be a good team player.
- Strong Communication Skills
- 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
Bachelors/Masters Degree in Engineering
Position : BSP Engineer
Total experience : 4+ yrs to 10 yrs
Desired Skills And Experience
4+ years of experience in application development, drivers development.
At least 4 years of working experience in the design and development of u-boot and Linux kernel subsystems and drivers.
Excellent programming skills in C/C++ and Hands-on experience in ARM-based SoC.
Experience in BSP and Boot loaders
Linux Device drivers Development and knowledge of RTOS.
Device drivers experience preferably for following devices: UART, I2C, I2S, SPI, GPIO, PCIe, MMC, USB etc.,
Hands-on experience on WIFI and SDIO has added advantage.
Strong debugging skills.
2. Embedded development – preferably middleware development
3. Multimedia domain, like – AV, Gstreamer, RDK, DASH, DRM (widevine and playready), HLS, OTT app integration(Chromium/Cobalt integration for any AV apps, such as YouTube, Netflix, Amazon prime, Disney etc.)
Solinas Integrity (www.solinas.in) is a leading water & sanitation robotics start-up founded by IIT Madras Alumni & professors to develop cutting edge solutions to solve the problems in water pipelines and sewer lines\septic tanks, thereby improving the lives of millions of people. Our core values start with trust, and respect for everyone and along with strong collaboration and communication. We believe in giving agency to our teammates and strongly pushing them towards developing a growth mindset.
Duties and Responsibilities:
- To develop and improve signal processing algorithms for analysis of acoustic signals with up-to-date knowledge on processing methods.
- Understand key acoustic algorithm functions, develop efficient code, verify performance and functionality.
- Exposure to all phases of software development life cycle (concept, design, implementation, test, and production).
- Propose innovations to improve performance, quality, etc.
- Work with peers to develop excellent, structured code, well-optimized and easily maintainable.
Basic Qualifications:
● Experience programming in either Python, C++, or MATLAB
● MS/PhD degree in Electrical/Electronics Engineering/ Signal processing
● At least 1 year of signal processing or related area
● Good analytical and problem-solving skills
● Good knowledge of signal processing techniques, basic knowledge of ML algorithms and good visualisation skills.

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
Experience in Object-Oriented design and Multithreaded programming
Strong analytical and problem solving skills
Strong understanding of computer systems e.g. operating systems, networks, performance optimization, etc
Degree in Computer Science or Computer Engineering or related field
Independent team player with an eye for details and report on status and planning of own work.



