Software Engineer
Role details
Job location
Tech stack
Job description
Our organization is seeking a Senior Software Engineer for a newly formed team focused on modernizing complex legacy applications. This role is pivotal in transforming monolithic desktop applications into scalable, API-driven, microservices-based architectures. The ideal candidate will leverage AI-assisted development tools to reverse-engineer, refactor, and rebuild critical business logic while ensuring functional consistency and accuracy. This position requires a strong software engineering foundation, a curiosity for new technologies, and a mindset geared towards experimentation and rapid learning., * Reverse-engineer and modernize legacy applications, with a focus on C#, .NET, C++, Java, and Fortran codebases.
- Design, develop, and maintain APIs to expose business and computational logic for modern web-based services.
- Develop comprehensive characterization and regression tests to validate modernized solutions against legacy functionality.
- Utilize and guide AI-powered development tools (e.g., Claude Code, Windsurf, Devin agents, AWS Kiro, GitHub Copilot) for code analysis, translation, documentation, and test generation.
- Contribute to the development of modernization frameworks, engineering standards, and reusable tooling.
- Extract embedded business logic from legacy UI components and restructure it within a services-oriented architecture.
- Mentor other engineers on best practices for software modernization and AI-assisted development.
Requirements
- Approximately 10+ years of professional software engineering experience with a broad technical background.
- Strong proficiency in at least one object-oriented language such as C#, .NET, or Java, with experience in legacy desktop applications being preferred.
- Demonstrated experience in API development and moving from monolithic to microservices-based architectures.
- Experience creating automated test strategies to validate behavior-sensitive code changes.
- Comfort and hands-on experience using AI coding assistants and AI-driven development workflows in a production environment.
- A strong aptitude for learning and adapting to new languages and tools quickly.
- Experience with Agile software development methodologies., * Experience reading, maintaining, or modernizing applications written in Fortran.
- Background working with scientific, engineering, numerical, or computational software where output accuracy is critical.
- Experience deploying applications in cloud and containerized environments such as AWS or Azure.
- Exposure to modern functional programming concepts.
- Previous experience in environments with limited documentation and evolving requirements.