Senior Dotnet Developer
- Discuss this with your agent
- Open in Claude
- Open in ChatGPT
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Role details
Tech stack
+16 more
Job description
The problems the candidate will work on are fundamentally distributed systems and platform engineering problems. A representative sample of current and near-term workstreams:
-
Blue/green deployment topology: zero-downtime service cutover using RabbitMQ exchange binding management, slot affinity middleware, and a topology reconciler. Stateless, eventually consistent, and operationally simple by design.
-
Release and deployment pipeline: GitOps-style release management with strongly-typed release candidates, deployment profiles, and CalVer artifact versioning across a nine-environment promotion pipeline.
-
Structured observability: Splunk Cloud log aggregation, structured log properties, distributed tracing via MassTransit/OpenTelemetry, and RabbitMQ queue metrics.
-
Regression framework: an event-driven, eventually consistent, embarrassingly parallel regression system that compares PROD and UAT output streams per correlation ID using developer-written reconcilers.
- Saga-driven trade processing: multi-stream correlation, idempotent booking, ordered state machine transitions, and durable state across service restarts - all via MassTransit and MongoDB., The successful candidate will join client’s team as a senior engineer working remotely from within the EU time zone. They will work autonomously on large, critical subsystems of the platform, possibly lead a small local team (also in the EU), and serve as the primary engineering contact for that team’s day-to-day execution. They are not a delivery manager - they are a hands-on engineer who also leads.
- Day-to-Day Responsibilities
-
- Design and implement backend features across Kepler’s .NET/Windows services, MassTransit sagas, and infrastructure layers.
-
- Take technical ownership of assigned Kepler subsystems: understand their design rationale, identify improvement opportunities, and drive implementation.
-
- Possibly lead and mentor EU-based developers: code review, pairing, unblocking, and growing their capability over time.
-
- Collaborate asynchronously with the NYC-based team lead and wider client’s team. Reliable written communication across a 5-6 hour time difference is essential.
-
- Contribute to design discussions, technical documentation, and architecture decisions as a full peer - not a ticket-taker.
-
- Maintain and improve observability, deployment practices, and platform reliability for the areas they own
Requirements
-
- 8+ years of commercial software engineering experience, the majority in server-side .NET development in production environments.
-
- Hands-on experience with RabbitMQ or a comparable broker (Kafka, Azure Service Bus). Understands exchanges/queues/bindings or equivalent topology concepts - not just ‘I have used a queue’.
-
- Demonstrable distributed systems depth: has built things that had to be reliable, had to handle message ordering and deduplication, and had consequences when they were wrong.
-
- Experience with saga-style or long-running workflow patterns. Has implemented stateful multi-step processing where steps arrive out of order, from multiple sources, or with long windows.
-
- Writes meaningful tests as part of normal development - not as an afterthought. Understands the difference between unit, integration, and contract tests and applies them appropriately.
-
- Comfortable deploying and running .NET services on Windows Server. Does not require a Linux/container environment to be productive.
-
- Has led or mentored engineers in some capacity - formal or informal. Can explain their approach to code review, feedback, and developing junior engineers.
-
- Reads and writes clear technical prose. Can produce a design document, a runbook entry, or a detailed pull request description without prompting.
-
- Asks the right questions about a new codebase rather than immediately reaching for rewrites. Respects existing design decisions until they understand them.
-
- Self-directed and reliable in a remote, asynchronous context. Has done this before and can point to how they managed it.
- Strongly Preferred
-
- Candidates who bring several of these will be significantly stronger fits. None are individually disqualifying to be missing.
-
- Experience with HashiCorp Nomad or a comparable orchestrator (understanding of job scheduling, placement, health checks).
-
- Familiarity with Consul or a comparable service discovery and KV store.
-
- Experience with MassTransit specifically - its publish topology, saga persistence, outbox pattern, or transport configuration.
-
- MongoDB experience, particularly as a document store for structured state (not necessarily as a primary database).
-
- Exposure to YARP or other programmatic reverse proxy / API gateway frameworks.
-
- Experience with Splunk or a comparable log aggregation and search platform.
-
- Familiarity with OpenTelemetry and distributed tracing concepts.
-
- Experience operating services across multiple environments with a promotion pipeline (dev * staging * production or equivalent).
Apply for this position
This job is hosted externally. Click below to view the full posting and apply.
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Good distractions
Loading talks and stories from around this role…