Scope of the role:

  • Maintenance and development of an analog / mixed-signal simulator - work on a mature product, 80% of the code is C and around 20% is C++.
    80% of the tasks are maintenance (inside the existing C code), about 20% is new functionality development

  • Algorithms simulating electrical phenomena - working with algorithms that translate an electronic circuit into the digital world: reflections in long lines, disturbances, noise, electrical states on a PCB. Part of these topics is solved with matrix methods and systems of equations

  • Taking over a product area and international cooperation - working hours: Polish timezone, with two afternoon meetings per week with the team in the US (West Coast), code reviews and architecture discussions,

What you need to join us:

Must have:

  • Min. 5 years of commercial experience in software development, fluency in reading and modifying C code and the ability to navigate a large, long-lived codebase, along with experience with C++

  • Manual implementation and interpretation of data structures in C (stack, lists, queues - without STL support) and memory handling: allocation, freeing, conscious choice of variable types

  • Knowledge of data structures and algorithms, understanding of modeling (including mathematical modeling), experience in developing and/or maintaining complex software architecture and algorithms, work in Visual Studio

  • Basics of the physics of electricity and of how electronic circuits are built (current, voltage, circuit analysis), willingness to grow in the direction of simulation algorithms

  • MSc or PhD in computer science, electronics or a related field

  • English: C1+

  • Ability to work within the territory of Poland (citizenship, residence card, visa, etc.)

Nice to have (really nice to have, not a criteria for selection):

  • Understanding of systems of equations and methods of solving them, and familiarity with math-based algorithms (calculus and algebra)

  • Comfort with matrix operations - transformation, inversion, addition, working on large matrices

  • Familiarity with electrical and electronic circuit analysis

  • Familiarity with any hardware description language: VHDL, VHDL-AMS, Verilog, Verilog-AMS

  • Bash scripting, knowledge of Java, scripting of measurements in TCL

  • Experience with EDA-class products and understanding of EDA objects and principles