Embedded C++ Linux Developer

3 years

3 - 9 Lacs

Posted:4 days ago| Platform: GlassDoor logo

Apply

Work Mode

On-site

Job Type

Part Time

Job Description

Joining Gadgeon offers a dynamic and rewarding
career experience that fosters both personal and professional growth. Our collaborative culture encourages innovation, empowering team members to contribute their ideas and expertise to cutting-edge projects.

Embedded C++ Linux Developer

Job Summary/Overview:

  • Design, develop, test, and debug embedded software applications for Linux-based systems.
  • Work on the full software development lifecycle for various embedded devices and hardware platforms.
  • Collaborate with cross-functional teams (hardware, QA, product management) to deliver integrated solutions.
  • Ensure the reliability, performance, and scalability of embedded software.

Key Responsibilities:

Software Development:

  • Design, develop, and maintain embedded software in C++ (often C++11/14/17 or newer) for Linux-based embedded systems.
  • Write efficient, robust, and optimized code for resource-constrained environments.
  • Implement and optimize low-level drivers, communication protocols (e.g., I2C, SPI, UART, CAN, Ethernet, USB), and system software.
  • Work on user-space applications, daemons, and shared libraries.
  • Develop firmware for various hardware platforms, including microcontrollers, microprocessors, and SoCs (System-on-Chips).

Linux Specifics:

  • Strong experience with Linux operating systems, including kernel and device driver development.
  • Hands-on experience with building, configuring, and customizing the Linux kernel.
  • Familiarity with Linux OS internals, memory management, inter-process communication (IPC), and thread programming.
  • Experience with tools like the Yocto Project (for building custom Linux distributions), BusyBox, Buildroot, etc.
  • Knowledge of device trees and hardware abstraction layers.
  • Experience with command-line tools and scripting (Bash).

Debugging and Testing:

  • Perform system-level debugging and troubleshooting on target hardware platforms.
  • Utilize debugging tools such as GDB, JTAG, oscilloscopes, logic analyzers, and hardware-in-the-loop (HIL) testing.
  • Conduct unit testing, integration testing, and system validation.
  • Participate in code reviews to ensure code quality, maintainability, and adherence to coding standards (e.g., MISRA for safety-critical systems).

Architecture and Design:

  • Contribute to system-level design decisions and participate in requirement analysis, architecture definition, and software implementation.
  • Apply object-oriented analysis and design (OOAD) principles and software design patterns.
  • Optimize software for performance, including memory usage, processing speed, and energy efficiency

Collaboration and Documentation:

  • Collaborate with hardware engineers to ensure seamless integration of software and hardware components.
  • Work effectively in Agile/Scrum teams.
  • Create and maintain technical documentation for software design, code, and test procedures.

Problem-Solving:

  • Strong analytical and problem-solving skills to diagnose and resolve complex technical issues.
  • Ability to work independently and collaboratively

Required Skills and Qualifications:

  • Education: Bachelor's or Master's degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field.
  • Experience: Typically 3+ years for a developer role or 3+ years for a senior role.

Technical Skills:

  • Strong Proficiency in C++ (modern C++ standards preferred).
  • Strong understanding of embedded systems concepts, including real-time constraints, memory management, and hardware-software interaction.
  • Hands-on experience with Embedded Linux, including kernel, device drivers, and user-space application development.
  • Experience with multithreading and synchronization.
  • Familiarity with communication protocols (I2C, SPI, UART, CAN, Ethernet, USB, etc.).
  • Experience with version control systems (Git is common).
  • Experience with build systems (CMake, Make).
  • Knowledge of RTOS (Real-Time Operating Systems) concepts (even if primary focus is Linux).
  • Knowledge of GRPC protocol and docker containers

Soft Skills:

  • Excellent problem-solving and debugging skills.
  • Strong verbal and written communication skills.
  • Ability to work independently and as part of a team.
  • Quick learner, self-starter, and results-oriented.

Nice-to-Have Skills (Preferred/Good to Have):

  • Experience with specific processor architectures (ARM, PowerPC, x86).
  • Knowledge of specific industries (Automotive - ISO 26262, Industrial Automation, IoT, Medical Devices).
  • Experience with CI/CD pipelines and automated testing frameworks.
  • Familiarity with virtualization technologies (Docker) in embedded contexts.
  • Experience with scripting languages like Python for automation or testing.
  • Contributions to open-source projects related to embedded systems or Linux.
  • Experience with specific network protocols (TCP/IP, HTTP, REST, WebSockets).

Work Environment (often mentioned):

  • Agile/Scrum methodology
  • Collaborative team environment
  • Work from office

Mock Interview

Practice Video Interview with JobPe AI

Start Python Interview
cta

Start Your Job Search Today

Browse through a variety of job opportunities tailored to your skills and preferences. Filter by location, experience, salary, and more to find your perfect fit.

Job Application AI Bot

Job Application AI Bot

Apply to 20+ Portals in one click

Download Now

Download the Mobile App

Instantly access job listings, apply easily, and track applications.

coding practice

Enhance Your Python Skills

Practice Python coding challenges to boost your skills

Start Practicing Python Now

RecommendedJobs for You