Software Dev Engineer II, ECS
Listed on 2026-09-15
-
Software Development
Backend Developer, Software Engineer, Cloud Engineer - Software, DevOps
What happens when a customer tells AWS ECS to keep 500 copies of their application running, spread across three Availability Zones, and then deploys a new version with zero downtime? The ECS Scheduler makes it happen. We are the team behind the service scheduling engine in Amazon Elastic Container Service, managing over 10 million customer services and processing 115 million task launches daily across every AWS region.
We are looking for a Software Development Engineer II to own and build the distributed systems that make this work will design scheduling algorithms, drive operational excellence, and ship features that millions of customers depend on every day.
- Design, develop, and operate highly available, scalable distributed systems for container scheduling and task placement at massive scale (115M+ daily launches)
- Own the end-to-end design and delivery of features in the ECS Scheduler service, from design doc through production deployment
- Build high-throughput, low-latency scheduling algorithms in Java that make real-time placement decisions across large compute fleets
- Design and implement resource management systems that optimize utilization, handle capacity constraints, and support diverse workload types (services, tasks, daemon sets)
- Lead operational excellence for services you own, including on-call rotations, COE investigations, deployment safety, and production health
- Drive technical design documents and lead design reviews for new scheduler capabilities
- Mentor L4 engineers through code reviews, design guidance, and technical leadership
- Identify and resolve performance bottlenecks and scalability challenges in a system that operates at AWS-wide scale
- Collaborate across ECS teams (Control Plane, Data Plane, Agent, Capacity) on cross-cutting projects
- Build operational tooling and automation that improve diagnostics, accelerate root-cause analysis, and enhance system observability
Your morning might start with a code review for a teammate's placement algorithm change, followed by a quick check on the deployment pipeline. Mid-morning, you dive into a design document for a new scheduling capability. You sketch out the system interactions, model the expected throughput, and post your proposal for team review. After lunch, you pair with a teammate to debug a subtle production issue where a specific task placement pattern is causing higher-than-expected latency in one region.
You trace the request flow through the scheduler, reproduce it locally, and draft a fix. Later in the afternoon, you work on operational tooling you have been building. Before wrapping up, you join a quick sync with the Capacity team to align on a new instance type integration, then review the on-call dashboard. Some days you are deep in scheduling algorithm internals optimizing bin-packing efficiency;
other days you are designing a new API for service deployment controls or building automation that makes the next on-call shift smoother. No two days are the same, but the thread that ties them together is making container orchestration reliable and fast - so customers can focus on their applications, not their infrastructure.
Amazon Elastic Container Service (ECS) lets customers deploy containerized applications ECS Scheduler team owns two core primitives:
ECS Services - When a customer creates an ECS service, the service scheduler runs and maintains the specified number of tasks simultaneously. If a task fails or stops, the scheduler launches a replacement. It spreads tasks across Availability Zones and manages rolling deployments. We serve over 10 million ECS services and process 115 million task launches daily across all AWS regions today.
ECS Managed Daemons - A…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).