Software Engineer (Embedded Systems)
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.ResponsibilitiesCreate 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/QualificationBS/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 IncludeKnowledge of hardware architecture – micro controllers, SOCs etc. FPGA programming. 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. BenefitsMedicalDentalVisionCompany Paid Life/ADDVoluntary Life/ADDDependent Life/ADD401k with Employer MatchVacationPersonal TimeWatchfire is an Equal Opportunity Employer. All aspects of employment including the decision to hire, promote, discipline, or discharge, will be based on merit, competence, performance, and business needs.Legal authorization to work in the US required. We will not consider candidates who need sponsorship, now or in the future, to be legally employed in the US. No H1B, OPT, CPT or other “temporary work authorization” candidates will be considered.