We are seeking a Senior Engineer to join our team and contribute to the design and delivery of features for a large, long-lived .NET product. In this role, you will collaborate with other senior developers to take projects from rough briefs through to screens, application code, database changes, and query performance optimization, ensuring timely delivery. You will have full ownership of the features you build, including their design, implementation, and production support. Our development process incorporates AI tools like Cursor and Claude to enhance productivity, but every change is ultimately owned by the engineer who merges it.
Key Responsibilities
- Own features end-to-end, including interaction design, screen development, business rules, data modeling, queries, and user-facing details.
- Write and maintain production C# code, ensuring stability, architectural consistency, and continuous improvement of the codebase.
- Develop the integration between the .NET host and embedded web screens, managing communication between C# and JavaScript to keep user interfaces consistent.
- Handle all database-related tasks for your features, such as designing tables and indexes, writing safe migration scripts, and tuning queries and reports for real-world data volumes.
- Create and maintain operational reports and exports, including grids, formatted documents, and spreadsheet outputs.
- Support background processing and manage releases across live customer environments.
- Utilize AI coding tools responsibly to accelerate development, writing prompts, reviewing every code change, and only shipping code you fully understand.
- Introduce AI features selectively, ensuring clear data boundaries and avoiding the inclusion of customer or personal data in prompts, logs, or third-party tools.
- Provide accurate estimates based on code review, prioritize work to deliver usable slices early, communicate risks promptly, and adjust scope to meet user needs and deadlines.
Required Qualifications
- Strong, current production experience with C# and .NET, including object-oriented design and maintainable code practices.
- Proven problem-solving skills, capable of interpreting unclear briefs, identifying constraints in code and data, and delivering functional solutions.
- Proficiency in frontend technologies (HTML, CSS, JavaScript) sufficient to design and build embedded screens that are responsive and consistent with the .NET interface.
- Solid backend development experience in C# for business logic, data access, and hosting embedded screens.
- Expertise in SQL Server, including schema and index design, execution plan analysis, query tuning, and writing safe migration scripts.
- Practical experience with Azure services relevant to .NET applications, with a strong emphasis on security and data privacy.
- Daily use of GitLab for branching, merge requests, and code reviews.
- Effective communication skills to explain designs, risks, and timelines clearly and early, enabling team collaboration and timely decision-making.
- Substantial experience maintaining a large Windows Forms application and modernizing .NET applications with web screens alongside existing interfaces.
- Ability to analyze and optimize poor execution plans, add appropriate indexes, and rewrite queries without altering results.
- Disciplined use of AI coding tools, ensuring generated code aligns with product standards and is reviewed thoroughly.
- A track record of delivering releases on time, including handling regressions, data fixes, and final user requirements before go-live.
- Strong security practices, keeping credentials out of source code and logs, and treating customer and personal data with regulatory compliance.
Preferred Qualifications and Benefits
- Experience or education related to student-information or training systems.
- Familiarity with reporting, spreadsheet export, document generation, messaging, or file storage within .NET applications.
- Background in performance tuning for large reporting databases and managing background jobs.
- Knowledge of automated testing for pure logic and manual verification for UI components.
- Work within a team of senior developers enjoying autonomy over design and implementation decisions.
- Follow established product patterns for new work, while making incremental improvements in legacy areas.
- Culture that values early communication of risks and prefers scope adjustments over missed deadlines.
- Opportunity to own meaningful features in a product with real users and long-term impact.
- Collaboration with experienced senior colleagues for design, review, and learning.
- Use of modern AI-assisted development tools integrated into daily workflows.