Job Summary:
Designs and assists customers in the design of semi-custom Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs) and board level systems.
Principal Responsibilities:
Low level hardware embedded driver development.
Interface with hardware engineering for embedded systems design
Design, develop, and test embedded software for various applications.
Collaborate with cross-functional teams to define software & hardware requirements and specifications.
Implement software solutions using C/C++, Python, and other relevant programming languages.
Debug and troubleshoot hardware issues to ensure optimal performance.
Conduct code reviews and provide constructive feedback to team members.
Provide onsite support to customers as needed.
Stay updated with industry trends and emerging technologies to continuously improve our products.
Job Level Specifications:
Proven experience in embedded software & hardware development.
Proficiency in C/C++ and Python programming languages.
Familiarity with embedded systems architecture and real-time operating systems (RTOS).
Experience with Linux kernel-level programming.
Strong problem-solving skills and attention to detail.
Excellent communication and teamwork abilities.
Work Experience:
Typically 5+ years with bachelor's or equivalent.
Experience in AMD FPGA development is an advantage.
Windows Driver development is an advantage.
Education and Certification(s):
Bachelor's degree or equivalent experience from which comparable knowledge and job skills can be obtained.
Experience with ARM Cortex microcontrollers.
Knowledge of communication protocols (e.g., UART, SPI, I2C).
Understanding of hardware design and integration.
Experience with version control systems (e.g., Git).
The above statements are intended to describe the general nature and level of work being performed. They are not intended to be construed as an exhaustive list of all responsibilities, duties, and skills.