Designs, develops, tests, and evaluates software and systems that enable computers to perform their applications, applying principles and techniques of computer science, engineering, and mathematical analysis. Analyzes requirements to determine feasibility of design within time and cost constraints
Key Responsibilities and Accountabilities
• Willing to learn and develop skills and knowledge.
• Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design.
• Demonstrated aptitude in designing, coding and debugging individual tasks.
• Demonstrated ability in solving problems as part of a team or individually.
• Demonstrated ability in software analysis, code analysis, requirements analysis, software review, identification of code metrics, system risk analysis, and software reliability analysis.
• Fluent in most current design and development techniques.
• Evaluates and identify new technologies appropriate for implementation.
• Creates design requirement definition/documentation.
• Creates detailed design documentation.
• Accurately scopes tasks and implements them in accordance with the scoping plan.
• Fosters teamwork among peers.
• Starts and finishes tasks with minimal management oversight.
• Maintains a positive attitude throughout typical work related challenges.
• Interfaces well with individuals outside of engineering.
• Communicates effectively to peers.
• Organizes time and workflow to maximum productivity.
• Demonstrated aptitude in recognizing and solving problems.
• Bachelor’s degree (or equivalent) in Computer Science, Computer Engineering, Software Engineering or relevant engineering discipline.
• Ten years of experience developing software for embedded systems using C/C++.
• Full lifecycle application development on Linux embedded systems using C++.
• Design, code, debug, and test applications in C++ using object-oriented analysis and design techniques.
• Video encode/decode experience is a plus.
• Knowledge relating to the development of Linux drivers is a plus.
• Knowledge relating to the Linux kernel layer is a plus.
• Knowledge relating to the design and operation of Makefiles is a plus.
• Experience with PIC (or other) microcontrollers is a plus.
• Experience with project planning is a plus.
• Experience with LINX IPC is a plus.
• Experiences with initial processor bring-up via the boot loader and kernel is a plus.
• Experience with Power PC processors is a plus.
• Experience with TI DaVinci processors is a plus.