This position is responsible for a portion of a total engineering project related to designing, developing, testing, and maintaining software systems and applications.
We're looking for someone who knows their way around embedded systems and who has knowledge of Linux and real-time operating systems. Understanding of networking, cyber-security, bootloaders, and kernels is needed for this position.
JOB DUTIES AND RESPONSIBILITIES:
- Independently applies knowledge of software engineering principles to design, code, troubleshoot, and debug software applications.
- Develops new and varied solutions to software problems within A-dec standards and contributes to the value of product design by studying competitive products, customer practices, and identifying customer needs.
- Analyzes software issues to determine suitable solutions to prototypes, production, or field failures by establishing and coordinating design reviews with peers and project leads. Responsible for organizing data and preparing documentation for assigned reviews.
- Responsible for thoroughly testing their software, coordinating others on software verification tests, and testing peer software when necessary.
- Responsible for development and completion of all software documentation, working collaboratively with cross-functional teams. Ensures documentation is complete, accurate, and properly maintained, recording new ideas in the form of flow charts, sequence diagrams, etc. to convey concepts.
- May direct the work of drafters, technicians, and others who assist in small projects.
QUALIFICATION'S
- Ability to develop software requirements and apply design methodologies.
- Excellent written/oral communication skills with a proven ability to work both independently and collaboratively within a team environment while following established procedures.
- Strong understanding of the software development lifecycle.
- Understanding of software configuration management tools.
EDUCATION AND EXPERIENCE
- Bachelor’s degree or relevant experience, plus, at least five years of relevant software engineering experience of increasing complexity.
- Software development experience using C/C++, Python, TypeScript, and other programming languages.
- Experience working with Linux Bootloader, Linux Kernel, and a real-time operating system (RTOS).
- Familiarity with UI application frameworks and/or cloud platforms.