Job Description and Requirements
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.
Relevant experience in programming software for operating systems utilizing machine assembly and/or job control languages, and expert knowledge of software capabilities. Experience on development of complex software projects and familiar with C/C++ coding. Requires a strong background in data structures and algorithms. Demonstrates good analysis and problem-solving skills. Knowledge and experience of CAD tool development are required.
Typically requires a minimum of 8+ years of related experience. At this level, post-graduate coursework or knowledge base equivalent may be desirable. Having wide-ranging experience, uses professional concepts and company objectives to independently resolve complex issues in creative and effective ways. Understands customer wants and needs. Customarily exercises a high level of independent judgment and interpretation in selecting methods, techniques and evaluation criteria to obtain results. Frequently performs in project leadership role. Drives programs and business initiatives. Determines methods and procedures on new assignments and projects. Offers new solutions or direction and is able to encourage and motivate others to support new solution or direction. May advise senior management on specialized technical or business issues. May coordinate activities of other personnel as a team lead. Represents the organization as the principle contact on business unit and/or company-wide projects. Interacts with management and senior external personnel on matters requiring coordination across internal groups. Networks with key contacts outside own area of expertise.