Responsibilities:
- Lead and participate in the end-to-end lifecycle of software development from concept to deployment, contributing high-quality, production-ready code.
- Collaborate closely with product teams to define and implement effective solutions based on business needs and sure feedback.
- Collaborate with a strong team and company stakeholders.
- Ability to work independently, taking personal ownership of tasks and deliverables, while not neglecting teamwork and clear communication.
- Take on challenging and complex technical issues, applying your expertise to propose and implement robust, long-term solutions.
- Support application deployments in the field for product testing and demonstrations; including live troubleshooting and analysis.
- Uphold and raise the bar for high code quality and performance, conducting code reviews and optimizations to improve system efficiency and scalability.
- Be vigilant and proactive in identifying and addressing performance bottlenecks and security vulnerabilities.
Required Skills:
- C/C++
- Embedded Linux
- Real Time Operating System(s) (RTOS)
- Proven track record of developing high-quality embedded software
- Excellent problem-solving, leadership, and communication skills
- Expertise in building and managing the Linux kernel, including configuration, customization, and optimization for specific hardware platforms
- Proficiency in developing and maintaining Linux device drivers, with a deep understanding of Linux kernel subsystems and hardware interaction
- Experience with kernel build environments and tools, capable of setting up and managing build systems for Linux kernel development
- Solid understanding of network programming, including proficiency in TCP/IP networking, network stack, and related communication protocols
- Knowledge of hardware-based software development; including the use of timers, interrupts, hardware peripherals such as SPI controllers and ADCs, and debug tools
- Experience with communication buses such as I2C, CAN, UART, and SPI; along with devices that utilize them
- Demonstrated experience in hardware bring-up, including proficiency in troubleshooting and resolving hardware-related issues in embedded systems
- Ability to understand hardware design, schematics and provide meaningful feedback to assist the hardware design process
- Experience with JTAG and SWD standards
Required Qualifications:
- Bachelor’s degree or higher in a computer programming field (e.g. Software Engineering, Computer Science, Computer Engineering)
- 5-7 years of related experience
- Ability to obtain and maintain a Secret level security clearance