Responsible for designing, developing, and testing Embedded Software (Firmware), platforms and systems that control and runs on devices that need to be tailored to the needs of the hardware that it controls and run on. Typically requires a deep understanding of the characteristics of the physical device being controlled, the real-time functions it is expected to perform and the ability to design, develop, implement, and test the logic and software required to realize the real-time functionality. Executes standard operational/technical tasks typically subject to instructions and work routines.
As part of a multi-developer firmware team the major responsibilities will include analysis, design, implementation and testing of firmware for Monitoring & Diagnostic devices product line. The Firmware Architect will report to the Engineering Manager – Monitoring & Diagnostics team in Hyderabad.
Roles and Responsibilities:
-
Design and modify product architecture and create definition of components and interfaces.
-
Create product integration strategies and modify architecture to meet performance definitions.
-
Design, develop, implement, and debug embedded software and/or firmware features/set of features for a complex module or a large component of entire embedded software product.
-
Integrate software packages with existing systems and sub-systems.
-
Prepare unit test and regression test specification, packages, and templates.
-
Ensure that the development backlog is prioritised and stacked in the optimal order for developers to be as effective as possible
-
Interact with a multi-discipline engineering team to meet the project requirements throughout its life cycle.
-
Prepare formal and informal engineering documentation (e.g., Design documents, code reviews, Release reports etc.).
-
Engages in technical discussions; participates in technical designs and presents technical ideas through white boarding.
-
Works closely with peers and guide in a fast pace technical design and development team, acting as Subject Matter Expert for the developers.
-
Executes in a fast-paced delivery mode and focuses in delivering tasks to meet the product release goal.
-
Maintains code quality through best practices, code reviews and unit testing.
Required Qualifications:
-
Bachelor’s degree in Computer Science, Electrical Engineering, or Electronics Engineering.
-
A minimum of 12 years of embedded development experience.
-
Proficient in Real-Time Embedded Software Engineering in C/C++ on any embedded processor/DSP/Microcontroller and RTOS (e.g., FreeRTOS, TI-RTOS, VxWorks etc.), File system, Boot, Device drivers.
-
In-depth experience with various firmware architectures.
-
Experience in stack integration and application firmware development.
-
In-depth knowledge of Transmission platform and its applications.
-
Well familiar with HW/SW interfacing, and real-time design consideration.
-
Experience in working with fast network/data interfaces like 1G/10G Ethernet, PCI-E
-
Familiarity with cybersecurity constructs (Static Analysis, Digital Signatures etc.)
-
Familiar with Agile-SW development practices.
Desired characteristics:
-
Experience developing multi-threaded/ multi-tasking real time applications.
-
Using emulators, simulators, and software analysis tools and Proficient in debugging code.
-
Sound knowledge of Processors, DSPs (preferably from Analog Devices or TI) and Microcontrollers (preferably ARM cores on Intel or Freescale chips).
-
Cyber security aspects, such as symmetric and asymmetric cryptography and PKI Infrastructure, LDAP, RADIUS, TLS, SSH, SFTP, RSA, HTTPS, is an asset.
-
Excellent working capacity, flexible and ability to cope with periods of high workloads. Robust and solution oriented.
-
Experience in all phases of the product engineering and development cycle.
Relocation Assistance Provided: Yes