Description

Key Duties and Responsibilities

  • Demonstrate expertise in the code and the team’s software development processes. Help to continuously improve both software and processes.
  • Evaluate multiple approaches to technical problems and be able to recommend one solution after considering limitations and challenges
  • Build a deep understanding of the domain and how the product fits into the user’s design flow
  • Communicate clearly with others regarding project status and risks, and to ensure that work is aligned with the business unit strategy
  • Serve as a role model for excellent software skills and a source of domain expertise within the business unit
  • Diagnose and fix code problems
  • Deliver code that meets requirements on schedule. Ensure that code is efficient, scalable, maintainable, extensible, robust, and easy to understand
  • Optimize code to improve tool run time and memory capacity
  • Create unit, regression, and/or system-level tests to thoroughly validate new features or changes

 

Minimum Education/Certification Requirements and Experience

  • B.Sc. degree in Electrical Engineering, Computer Science, or related field, with 10 years work experience or M.Sc. in the same fields with 9 years work experience
  • Broad and deep understanding of the C++ language and familiarization with contemporary standards (e.g., C++14) and language constructs
  • Experience with high performance computing and parallel programming tools and frameworks
  • Experience with the Python programming language
  • Strong working knowledge of the Linux operating system
  • Strong background in data structures, algorithms, and debugging
  • Strong background in scalable algorithm implementation for scientific and engineering applications
  • Demonstrated expertise in software development processes
  • Ability to evaluate multiple approaches to technical problems and be able to recommend one solution after considering limitations and challenges
  • Ability to learn quickly, understand complex systems and to work closely with others
  • Ability to complete high-quality work on time
  • Communicate clearly with others regarding project status and risks
  • Successful large-scale commercial software development

 

Preferred Qualifications and Skills

  • Ph.D. or M.Sc. degrees in Electrical Engineering, Computer Science, or related field are preferred qualifications. Minimum relevant work experience with a Ph.D. degree is 7 years and with an M.Sc. degree is 9 years.
  • Demonstrated skills in the following areas are a plus:
    • Experience with computational linear algebra algorithms and libraries (e.g., linear and non-linear solvers)
    • Experience with computational geometry algorithms and libraries (e.g., CGAL library)
    • Development, debugging and optimization of systems using distributed processing
    • Previous experience in the EDA domain


 

Education

Any Graduate