Software Engineer- Senior Embedded Engineer (Automotive / Linux / Tools)
Key Responsibilities:
Develop and validate software, firmware, tools applications, and/or specialized utility and test programs.
Design software architectures that interoperate with standard interfaces and open systems.
Engage in all phases of software development – design, coding, unit testing, debugging, integration and release – while meeting key specifications and schedules.
Participate in code/design reviews, triage, issue resolution to improve product reliability.
Analyse customer needs and system requirements to design and customize software for optimal performance, scalability and interoperability.
Provide guidance on technical software design, feasibility with effective documentation.
Job Requirements:
Bachelor’s / Master’s degree in Engineering, Information Science, Computer Science or related field.
Strong understanding of embedded systems fundamentals and computer architecture.
8+ years of working experience in embedded systems development, software architecture.
Proficiency in C/C++ and bash scripting, with familiarity in at least one of the following:
Python, C#, .NET, WPF, WinForms.
Experience in development for and testing on Linux / embedded Linux platforms.
Expert proficiency in RTOS development, multithreading, bare-metal firmware, ROM development, system debug, problem triaging and analysis.
Possess good working knowledge of network and communication protocols. e.g., I2C, SPI, MDIO, GPIO, UART, TCP/IP, ETH, Wi-Fi, etc.
Independent, self-starter with strong problem-solving and analytical skills.
Familiarity with software life cycle development processes and secure coding principles.