Our team designs, develops, tests, and maintains business applications using C# and
the .NET platform. The work includes both development of new capabilities and ongoing
enhancement and modernization of existing applications.
The work frequently requires an engineer to begin with relatively broad requirements,
clarify the problem and desired outcome, evaluate implementation options, and drive the
work through completion. Regular communication and check-ins with the internal team
are expected throughout that process.
Effective augmentation of this work requires more than familiarity with particular
frameworks. Sound technical judgment, strong communication, and an inclination to seek,
establish, and maintain alignment on goals and requirements are especially important.
Core Capabilities
C# and .NET Software Engineering
Work performed by the team includes:
- Developing applications using up-to-date C# and .NET
- Developing web applications using ASP.NET Core, including the MVC applicationmodel
- Applying object-oriented software design principles appropriately
- Designing code for maintainability, testability, and clear separation of responsibilities
- Refactoring existing software safely and incrementally
- Using asynchronous programming techniques in .NET
- Applying functional programming concepts pragmatically where they improve the design
- Evaluating technical tradeoffs rather than mechanically applying patterns or practices
- Working effectively in Visual Studio, with VS Code also used in the development environment
A resource augmenting this work should be proficient in C# and demonstrate solid
software engineering practices rather than simply being able to implement functionality.
Testing and Quality
Automated testing is an important part of the team’s development practices. Relevant
capabilities include:
- Unit testing
- Designing software for testability
- Using mocks, fakes, or other test doubles where appropriate
- Integration te