SummaryThis Software Engineer position will be part of the software engineering team, helping build the next generation of our flagship software product for the digital signage industry. A person at this level will design and develop software products within a specific technical project. S/he can provide solutions for designs and development plans of high complexity which typically requires a broad background of technical and process knowledge. A successful candidate will be a strong team player who is able to work across multiple functions and disciplines. The candidate should be self-directed and have experience and knowledge of software design, coding, and testing methodologies. Though the focus for this position will be on designing and developing embedded systems running on micro-controllers, there will be opportunities to work on user facing web and mobile applications. Our product software is a critical differentiator in our market, and we take great pride in our in-house products developed entirely by this team, from embedded systems to exceptional user facing GUI applications.
Responsibilities:
- Create and maintain embedded applications for our content playback sub-system.
- Help create and review system and software requirements.
- Help foster good software engineering practices and mentor junior engineers.
- Prepare test cases to perform verification and validation of software.
- Assist in data gathering and troubleshooting of products under design or returned/reported from the field.
- Involvement in all aspects of the software engineering process.
- Follow relevant company procedures and help create and maintain relevant documentation.
Required Education/Qualification:- BS/MS in Computer Science, Computer Engineering, Electrical Engineering or a related discipline.
- Minimum 0-3 years of software engineering experience building embedded systems software.
- Experience working on embedded systems with C++ as the primary programming platform.
- Experience with embedded operating systems - Linux in ARM and x86, API, and security would be a plus.
- Understanding of communication protocols (Ethernet and Serial specifically). Understanding the OSI model is a plus.
- Experience with version control software (preferably Git), Continuous Integration Build systems (preferably Jenkins), project management tools (like Jira) and automated testing tools.
- Broad experience in Object Oriented Design/Analysis (OOD/OOA). Understanding of design languages such as UML will be a plus.
- Good written and verbal communication skills.
- Excellent analytical and problem-solving skills.
Other ideal skills include: - Knowledge of hardware architecture - micro controllers, SOCs etc.
- Experience programming in Python (used as a hardware testing tool or hardware simulator/emulator).
- Experience with image processing and rendering algorithms.
- Familiarity with Agile product development methodology (Scrum in particular).
- Use of AI tools for coding, reviewing, and unit testing.
Benefits- Medical
- Dental
- Vision
- Company Paid Life/ADD
- Voluntary Life/ADD
- Dependent Life/ADD
- 401k with Employer Match
- Vacation
- Personal Time