Symboticware is looking for a Junior Embedded Software Developer to join our growing team to help build the next level of our cutting-edge IoT products.
About the role
Our hardware products – IoT devices, sensors, and rugged tablets – are plug-and-play and have an integral role in our product portfolio. The cross-functional embedded team at Symboticware designs, develops, prototypes, and manages the products’ supply chain, production, and deployment. The Junior Embedded Software Developer plays a vital role in the team with the ultimate task of driving the release of our products and fulfilling the acceptance criteria.
Responsibilities
- Collaborate on the design and implementation of new software components for embedded Linux systems.
- Troubleshoot and resolve issues in both new and existing software.
- Enhance functionality and optimize performance in the Linux kernel and user space.
- Contribute to code reviews to ensure software quality and adherence to coding standards.
- Provide constructive feedback to peers and actively engage in discussions during code review sessions.
- Maintain clear and comprehensive documentation for software design, implementation, and troubleshooting procedures.
- Collaborate with cross-functional engineering teams.
- Perform other duties as assigned.
- Timely communication with sales, engineering, and project delivery teams on project status, issues, delays, etc.
- Assist in the creation and review of specifications, requirements, and other technical documentation.
- Incorporate open-source technologies and platforms to bolster our product offering.
- Create test regimens to validate and verify product functionality.
- Adhere to coding standards and perform peer QA and code reviews.
- Support the sales team in the preparation of proposals, RFP, and RFI responses.
- Solve various hardware/firmware-related issues and collaborate with the design team.
- Manage work instructions, process documentation, and training.
- Track schedule, work-in-progress levels, and defect rates of owned products.
- Identify trends and opportunities for optimizing product output, quality enhancements, and cost of manufacturability.
- Drive corrective actions and process improvements on owned processes and products.
Qualifications
- 2+ years of software engineering experience
- Bachelor’s or Master’s degree in computer science or related field
- Mastery of C++, Java, Python and Linux
- Familiarity with Embedded Linux build systems (Yocto), Device Driver development, Device Tree implementation.
- Familiarity with JSON data-interchange format
- Experience with AWS IoT Core
- Experience with Docker containers
- Experience implementing CI/CD infrastructures.
- Familiar with Agile and Test-driven development
- Experience, knowledge, or a keen desire to learn the following: Java, RxJava, C/C++, Python
- Experience with vehicle data interfaces and protocols such as CAN bus, J1708, J1939, OBD2, Ethernet, USB etc.
- Comfortable using lab instruments (Oscilloscopes, logic analyzers…) and debugging tools.
- Proven track record of taking ownership and successfully delivering results in a fast-paced, dynamic environment.
- Excellent written and verbal communication skills.
- Demonstrated ability to gather, analyze, and use data to drive systemic improvements.
- Ability to work autonomously and as a team in a highly demanding, fast-paced environment.
- Know how to have fun.
Benefits
For our employees, we provide a competitive compensation package, medical, dental, and life insurance, and growth opportunities in the rapidly evolving field of industrial IoT.
We support flexible/hybrid work arrangements and are committed to finding the way of work that will be the most beneficial for our team members and their productivity.