Full Stack Engineer
Outstaff Hiring: Remote — Contract (Full-time, Long-term)
About the Role
We are looking for an experienced Senior Full Stack .NET Engineer to join an international engineering team working on production applications and distributed systems.
This is a backend-focused Full Stack role, with the main focus on C#/.NET development, backend services, APIs, databases, and distributed systems. You will also contribute to frontend development using React when needed.
This is a hands-on engineering position. You will build, maintain, debug, and improve production systems, taking ownership of code quality, performance, and reliable delivery.
Location: Remote (EU only)
Engagement: Full-time contract
Start Date: ASAP
Experience: 5+ years
Language: English
Key Responsibilities
- Design, develop, and maintain production applications using C# and .NET.
- Build backend services, APIs, and system-level components.
- Write and optimize complex SQL queries for performance and scalability.
- Debug production .NET applications, including memory, concurrency, and performance issues.
- Contribute to frontend development using React when required.
- Work with microservices and distributed system architectures.
- Build and maintain unit, integration, and end-to-end tests.
- Deploy and maintain services in containerized Kubernetes environments.
- Implement logging, monitoring, metrics, tracing, and alerting.
- Identify technical blockers and delivery risks early.
- Participate in technical design and architecture discussions.
- Communicate technical decisions and trade-offs clearly to engineers, Product Managers, and other stakeholders.
- Participate actively in code reviews and support other engineers through knowledge sharing and mentoring.
- Use AI coding tools such as Claude, Cursor, or GitHub Copilot responsibly while maintaining ownership of code quality and security.
Required Experience
- 5+ years of backend and systems engineering experience in production environments.
- Strong commercial experience with C# and .NET.
- Strong knowledge of modern C#, including async/await, generics, LINQ, records, pattern matching, and nullable reference types.
- Good understanding of the .NET runtime, garbage collection, memory management, and application performance.
- Strong understanding of asynchronous programming and concurrency.
- Experience with ASP.NET Core, including web APIs, minimal APIs, gRPC services, or background workers.
- Strong production debugging and troubleshooting skills.
- Experience diagnosing exceptions, memory leaks, deadlocks, and performance bottlenecks.
- Understanding of dependency injection, configuration, and modern .NET hosting patterns.
- Experience with CI/CD and production deployment workflows.
- Strong automated testing experience using xUnit, NUnit, MSTest, or similar tools.
- Experience with mocking frameworks such as Moq or NSubstitute.
- Hands-on experience using AI-assisted/agentic coding tools.
SQL and Data
- Strong SQL skills, including complex joins, window functions, indexing, and query optimization.
- Production experience with relational databases such as SQL Server, PostgreSQL, MySQL, or similar.
- Experience with Entity Framework Core and/or Dapper.
- Ability to understand when ORM solutions are appropriate and when hand-written SQL is required.
Infrastructure and Operations
- Experience working with Kubernetes and containerized environments.
- Ability to deploy, scale, monitor, and troubleshoot containerized services.
- Experience with observability and monitoring for production distributed systems.
- Experience with tools or technologies such as Serilog, OpenTelemetry, Jaeger, Prometheus, Grafana, or Application Insights.
Nice to Have
- Strong experience with microservices and distributed systems.
- Experience with service decomposition, gRPC, message queues, eventual consistency, and failure handling.
- Experience with React and micro frontend architectures.
- Experience integrating React applications with .NET backend services.
- Experience with Azure or AWS, including managed services, IAM, networking, and infrastructure as code.
- Experience modernizing or migrating legacy .NET Framework applications to modern .NET.
What We’re Looking For
The ideal candidate is a strong hands-on .NET engineer who is comfortable taking ownership of production systems rather than working only on prototypes or proof-of-concept projects.
We’re looking for someone who:
- Is independently productive and takes ownership of their work.
- Has strong backend engineering fundamentals.
- Can investigate and solve complex production issues.
- Understands performance, scalability, and reliability.
- Communicates clearly with both technical and non-technical stakeholders.
- Knows when to investigate independently and when to ask for help.
- Gives and receives feedback well.
- Can mentor and support less experienced engineers.
- Uses AI coding tools effectively without compromising code quality.
Project Environment
- Modern C# / .NET
- ASP.NET Core
- SQL and relational databases
- Entity Framework Core / Dapper
- Microservices and distributed systems
- Kubernetes and containers
- CI/CD
- Production monitoring and observability
- React / micro frontends
- Azure or AWS
- AI-assisted development tools
Interview Process
- Round 1: Technical interview
- Round 2: Final interview with the client/team
Why Join?
- Work on complex production .NET systems.
- Join an experienced international engineering team.
- Work with modern backend, cloud, and distributed system technologies.
- Take ownership of meaningful engineering challenges.
- Use modern AI-assisted development tools as part of the engineering workflow.
- Long-term contract opportunity.