Job Summary
We are looking for an experienced C#/.NET Developer with strong hands-on expertise in developing and maintaining standalone/desktop applications. The ideal candidate should have experience working with existing and potentially complex codebases, good debugging and problem-solving capabilities, and exposure to C++/native library integration.
The candidate should be a hands-on developer capable of working independently, quickly learning unfamiliar technical areas, and effectively leveraging AI-assisted development tools to improve development, debugging, testing, and code understanding.
Key Responsibilities
Key Responsibilities
Design, develop, enhance, and maintain desktop applications using C# and .NET.
Analyze and understand existing application architecture and legacy codebases.
Troubleshoot complex application issues and perform root-cause analysis.
Develop maintainable, reusable, and testable code.
Debug application issues involving interactions between managed C#/.NET code and native C++ components.
Understand and work with existing C++ libraries, DLLs, interfaces, and integration mechanisms where required.
Perform code reviews, unit testing, debugging, defect resolution, and application maintenance.
Work independently on assigned development and technical investigation activities.
Learn unfamiliar frameworks, libraries, and technical components as required by the application.
Use approved AI development tools effectively for code understanding, development, refactoring, debugging, test creation, and documentation.
Follow established coding standards, secure development practices, source-control processes, and engineering guidelines.
Skill Requirements
Key Responsibilities
Design, develop, enhance, and maintain desktop applications using C# and .NET.
Analyze and understand existing application architecture and legacy codebases.
Troubleshoot complex application issues and perform root-cause analysis.
Develop maintainable, reusable, and testable code.
Debug application issues involving interactions between managed C#/.NET code and native C++ components.
Understand and work with existing C++ libraries, DLLs, interfaces, and integration mechanisms where required.
Perform code reviews, unit testing, debugging, defect resolution, and application maintenance.
Work independently on assigned development and technical investigation activities.
Learn unfamiliar frameworks, libraries, and technical components as required by the application.
Use approved AI development tools effectively for code understanding, development, refactoring, debugging, test creation, and documentation.
Follow established coding standards, secure development practices, source-control processes, and engineering guidelines.
Other Requirements
Good-to-Have Skills
Experience with WPF, WinForms, or similar .NET desktop technologies.
Knowledge of P/Invoke, COM Interop, C++/CLI, DLL integration, or managed/unmanaged interoperability.
Experience modernizing or maintaining legacy desktop applications.
Familiarity with multithreading, memory management, performance optimization, and application diagnostics.
Experience using tools such as Kiro, GitHub Copilot, Amazon Q Developer, or similar AI coding assistants.
Experience with CI/CD and automated build/test pipelines.
Experience
5+ years of software application development experience preferred.
Strong practical experience in C#/.NET development.
Significant experience should be in desktop/standalone application development, rather than exclusively web services or backend API development.
Previous experience maintaining or modernizing existing applications is strongly preferred.
Key Competencies
Strong analytical and problem-solving ability.
Self-driven and capable of working independently.
Comfortable working in unfamiliar or technically complex areas.
Ability to quickly understand existing architecture and code.
Strong debugging mindset.
Good written and verbal communication.
Willingness to learn and adopt new development approaches and AI-assisted engineering practices.