Firmware Engineer

2 months ago


Kannur, India Schneider Electric Full time

Key Responsibilities:

  1. Designing and developing embedded software solutions using the Linux operating system.
  2. Collaborating with hardware engineers to understand system requirements and specifications, especially in power electronics products.
  3. Design, develop and own product firmware for new product development.
  4. Work with other developers to ensure the development of best possible future proof products to meet the cost, time, quality, and business needs.
  5. Represent the team in technical discussions with other project stakeholders and other technical teams across the organization.
  6. Develop deep understanding of existing product architectures.
  7. Lead Cybersecurity topics for the development site.
  8. Responsible for resolution of field issues that need product expertise.
  9. Collaborate with internal and external teams to bring in best Engineering practices and processes.
  10. Customizing and optimizing Linux kernels and distributions for specific hardware platforms.
  11. Debugging and troubleshooting software and hardware issues in embedded systems.
  12. Participating in code reviews and ensuring adherence to coding standards and best practices.
  13. Developing and executing test plans to verify and validate embedded software functionality.
  14. Documenting software designs, specifications, and test plans for future reference.

Qualifications:

  1. Bachelor's or master’s degree in Electronics and Communication, Embedded system, Electrical /Electronic Engineering, or a related field.
  2. 7 to 12 years of experience in embedded systems firmware development, specifically with Linux-based platforms.

Required Skills:

1. Proficiency in programming languages - C++ and C.

2. Strong understanding and experience in Object-Oriented Design (OOD) principles for developing efficient and maintainable software.

  1. Working experience on embedded Linux development tools and toolchains.
  2. Solid understanding of data structures, algorithms, and data handling techniques.
  3. Experience developing data hub components, incorporating the MQTT protocol, and configuring/integrating MQTT brokers (specifically Mosquitto) for efficient messaging in embedded systems
  4. Experience in memory management and optimization techniques.
  5. Experience in working with Real-Time Operating Systems (RTOS) or similar frameworks for handling tasks, scheduling, and synchronization in real-time applications.
  6. Knowledge of hardware interfaces and protocols (e.g., I2C, SPI, UART, USB)
  7. Familiarity with board bring-up and bootloaders.
  8. Experience with version control systems, such as Git, in both Linux and Windows environments.
  9. Proficiency in scripting languages such as Python for automation and system-level tasks.
  10. Experience with Jenkins server framework for continuous integration and deployment automation.

Preferred Skills:

  1. Preferred working experience with power electronics products, UPS domain is preferred.
  2. Familiarity with ARM or other embedded processor architectures.
  3. Knowledge of networking protocols and TCP/IP stack.
  4. Understanding of software security principles and best practices.

Qualifications - External

  1. Bachelor's or master’s degree in Electronics and Communication, Embedded system, Electrical /Electronic Engineering, or a related field.
  2. 7 to 12 years of experience in embedded systems firmware development, specifically with Linux-based platforms.
  3. Understanding of the entire product and the ability to take ownership of the product's full firmware are key in this role. This likely involves a deep understanding of the product's features, functionality, and the firmware that drives its operation.