Senior Software Engineer ll

Microchip Armenia CJSCYerevanstaffamavaldatud 29.09.2026
Nõutav:PythonGitFrontendBackendSenior

Microchip Technology Inc. is seeking a Senior Software Engineer ll to help modernize the software toolchain behind our FPGA device families. This is a large-scale legacy modernization program transitioning a mature, long-lived EDA codebase onto a modern, cross-platform foundation integrated with our current design environment.

The role owns significant subsystems within the modernized codebase, determines the technical approach for new assignments, and serves as a resource for complicated technical matters across the team. Prior FPGA tooling experience is valuable but not required; the core requirement is strong C++ and software architecture capability applied to a large legacy system.

Design and implement significant components of the modernized codebase - module boundaries, interfaces, and coding conventions - contributing to the overall target architecture.

Port and re-architect assigned libraries from the legacy application, removing obsolete framework and platform dependencies while preserving functional behavior.

Decompose legacy monolithic components into independent, headless executables.

Resolve complex technical issues arising from 32-bit to 64-bit transition and cross-platform support across Windows and Linux.

Analyze undocumented legacy subsystems and produce clear technical specifications from the findings.

Assess and communicate migration risk, identifying where changes could alter functional or algorithmic behavior and defining the verification required.

Coordinate work across SQA, EDA domain experts, IDE/UI, and documentation teams.

Delegate defined tasks to less experienced engineers, reviewing output and monitoring progress to completion.

Participate in design reviews, unit testing, and code reviews, and support enforcement of Microchip's Software Development Processes.

Bachelor's or Master's degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field.

10+ years of professional software engineering experience.

Strong C++ expertise, with working fluency in both modern C++ (C++17 or later) and legacy pre-standard idioms; solid object-oriented design, algorithms, and data structures.

Demonstrated experience designing and owning significant components or subsystems within a large C++ codebase.

Experience working in or modernizing large legacy codebases with limited documentation and no access to original authors.

Familiarity of legacy Windows desktop technologies (MFC, COM/ATL, or Win32).

Cross-platform development experience on Windows and Linux, including CMake.

Proficiency with scripting languages (Python, Bash, TCL).

Ability to determine methods and approach independently on new, loosely defined assignments and drive them to completion.

Strong English communication skills, verbal and written, including the ability to produce clear technical specifications.

Preferred Qualifications

Experience with EDA software internals such as synthesis, place & route, static timing analysis, or device programming, and familiarity with FPGA architecture.

Experience with Qt, particularly integrating compute back-ends with a Qt front end.

Familiarity with source code management systems (ClearCase, Git, SVN).