Responsible for designing, developing, troubleshooting, or debugging software programs. Develops software tools including operating systems, compilers, routers, networks, utilities, databases and internet-related tools, etc.
Determines hardware compatibility and / or influences hardware design.
Experience in programming software for operating systems, utilizing machine assembly and / or job control languages, and some knowledge of software capabilities.
Designs algorithms and data structures. Experience on development of complex software projects, familiarity with C / C++ coding, and a strong background in data structures and algorithms.
Has strong desires to learn and explore new technologies and demonstrates good analysis and problem-solving skills. Prior knowledge and experience of CAD tool development are required.
Typically requires a minimum of 5 years of related experience. Possesses a solid understanding of specialization area plus working knowledge of one other related area.
Resolves issues in creative ways. Exercises independent judgment in selecting methods and techniques to obtain solutions.
Executes projects from start to completion. Contributes to moderately complex aspects of a project. Determines and develops recommendations to solutions.
Works on team-driven or task-oriented projects. May guide more junior peers with aspects of their job. Networks with senior internal and external personnel in own area of expertise.