JobDescription.org

Software Engineering

AWS Developer

Last updated

AWS Developers build cloud-native applications using Amazon Web Services — designing serverless architectures with Lambda and API Gateway, integrating managed services like DynamoDB, SQS, and S3, and deploying applications through infrastructure-as-code pipelines. They bridge software development and cloud operations, building applications that are architected from the start to run on AWS rather than adapted from on-premises patterns.

Role at a glance

Typical education
Bachelor's degree in CS, software engineering, or related technical field
Typical experience
3-6 years
Key certifications
AWS Certified Developer – Associate, AWS Certified Solutions Architect – Professional, AWS DevOps Engineer – Professional
Top employer types
Cloud service providers, enterprise software companies, AWS consulting firms, tech startups
Growth outlook
Strong demand driven by accelerating serverless architecture adoption and AWS's dominant market share.
AI impact (through 2030)
Strong tailwind — demand is expanding as developers integrate foundation models via Amazon Bedrock and build RAG pipelines using SageMaker.

Duties and responsibilities

  • Design and implement cloud-native applications using AWS Lambda, API Gateway, DynamoDB, S3, SQS, SNS, and EventBridge
  • Write infrastructure-as-code using AWS CDK (TypeScript or Python) or Terraform to define application resources and environments
  • Build event-driven architectures: Lambda functions triggered by SQS queues, S3 events, DynamoDB streams, or EventBridge rules
  • Implement authentication and authorization using Amazon Cognito, IAM roles with least-privilege permissions, and API Gateway authorizers
  • Optimize Lambda function performance: cold start reduction, memory sizing, concurrency configuration, and execution time profiling
  • Implement observability for serverless applications: structured CloudWatch logs, custom metrics, X-Ray distributed tracing, and CloudWatch alarms
  • Write integration tests and end-to-end tests for AWS-hosted services using LocalStack, moto, and AWS SDK mocking strategies
  • Design DynamoDB data models optimized for access patterns: partition key selection, GSIs, sparse indexes, and single-table design patterns
  • Manage application secrets and configuration using AWS Secrets Manager and Parameter Store
  • Conduct code reviews with specific attention to AWS anti-patterns: synchronous anti-patterns in async environments, over-provisioned resources, and insecure IAM configurations

Overview

An AWS Developer builds applications designed to run natively on cloud infrastructure rather than ported from traditional server environments. The shift in thinking this requires is significant: instead of a web server process running continuously and handling requests, a serverless application might be dozens of Lambda functions each triggered by specific events, composed into workflows through queues and event buses, and backed by managed databases that scale automatically.

A typical feature development cycle involves designing the event flow: what triggers what, how data moves between services, where failures are caught and retried. Then implementing the Lambda function handlers in the language of choice — Python, JavaScript, or Java for most AWS shops — with the business logic that was previously in a monolithic application. Then defining the infrastructure in CDK or Terraform: the Lambda function, its IAM role with least-privilege permissions, the SQS queue that triggers it, the DynamoDB table it writes to, the CloudWatch alarm on the DLQ that pages the on-call team when messages start failing.

The observability layer is a first-class concern in serverless development. Lambda functions are stateless and ephemeral — when something goes wrong, the logs are the only record of what happened. AWS Developers write structured logs (JSON-formatted with correlation IDs, request parameters, and execution timing), configure CloudWatch alarms on error rate and duration, and implement X-Ray tracing so failed requests can be traced across multiple service calls.

DynamoDB modeling is a specialized skill that most developers find challenging when coming from relational databases. Because DynamoDB doesn't support arbitrary queries, all data access patterns need to be anticipated at modeling time. Getting the partition key design and GSIs right requires understanding the application's access patterns thoroughly before writing schema — a discipline that's different from relational modeling.

Cost awareness is baked into daily decisions. Lambda costs money per invocation and per duration; DynamoDB costs money per read and write unit. An AWS Developer thinks about the cost implications of architectural choices: caching frequently read data in ElastiCache versus paying DynamoDB read capacity for each request, batching SQS messages to reduce Lambda invocations, using S3 lifecycle policies to tier storage cost.

Qualifications

Education:

  • Bachelor's degree in computer science, software engineering, or a related technical field
  • AWS certifications are highly weighted alongside or in lieu of formal education for experienced candidates

Experience:

  • 3–6 years of software development with at least 2 years specifically working with AWS services
  • Demonstrated serverless architecture experience: Lambda, API Gateway, SQS/SNS, DynamoDB
  • Experience deploying and operating production applications on AWS

Core AWS service proficiency:

  • Compute: Lambda (runtime selection, layers, concurrency limits, cold starts), ECS Fargate
  • API layer: API Gateway (REST and HTTP APIs), AppSync for GraphQL APIs
  • Storage: S3 (bucket policies, pre-signed URLs, lifecycle rules), EFS for shared file storage
  • Database: DynamoDB (table design, GSIs, streams, TTL), Aurora Serverless for relational needs
  • Messaging: SQS (standard and FIFO, DLQ configuration), SNS fan-out patterns, EventBridge rules
  • Authentication: Cognito (user pools, identity pools, hosted UI), IAM roles with OIDC federation

Infrastructure-as-code:

  • AWS CDK (TypeScript or Python preferred): construct authoring, stack organization, CDK Pipelines
  • Terraform as an alternative, particularly in multi-cloud or existing Terraform environments
  • SAM (Serverless Application Model) for Lambda-focused applications

Development tools:

  • AWS CLI and SDK (Python boto3 or JavaScript AWS SDK v3)
  • AWS SAM CLI for local Lambda testing
  • LocalStack for local AWS service emulation
  • CloudWatch Logs Insights for log analysis and query

Testing:

  • pytest with moto for Python Lambda unit tests
  • Jest with aws-sdk-mock for JavaScript/TypeScript
  • Integration testing patterns against real AWS test accounts

Career outlook

AWS development skills are among the most durable in software engineering because Amazon Web Services shows no signs of declining market relevance. AWS continues to hold the largest share of the cloud market, release services faster than any competitor, and maintain a strong enterprise sales motion that sustains demand for developers who can build on the platform.

Serverless architecture adoption is accelerating. Lambda and managed services reduce the operational overhead of running applications, which makes them attractive for teams that want to focus on product development rather than infrastructure maintenance. As more applications move to serverless patterns, demand for developers who understand event-driven architecture and AWS managed services grows proportionally.

The convergence of application development and cloud infrastructure in the AWS Developer role is significant. Developers who only know application code but not the AWS services their code runs on are increasingly limited in what they can contribute on modern teams. AWS Developers who understand both layers are in a stronger market position than specialists in either layer alone.

AI development on AWS is an emerging growth area. Amazon Bedrock provides access to Claude, Llama, Titan, and other foundation models through a managed API. SageMaker continues to expand AI/ML capabilities. AWS Developers who understand how to build RAG pipelines, fine-tune models, and create AI-powered application features using Bedrock and SageMaker are accessing one of the fastest-growing market segments in the industry.

The AWS Certified Solutions Architect Professional certification and AWS DevOps Engineer Professional certification are strong career accelerators — candidates with these credentials consistently earn above the median for their experience level and face shorter job searches. AWS Certified Developer – Associate is the standard baseline for most developer roles.

Senior AWS Developers ($140K–$175K) and AWS Architects ($160K–$210K) represent the upper compensation bands. AWS consulting and contracting provides an additional path for developers who want to maximize hourly rates rather than total compensation at a single employer.

Sample cover letter

Dear Hiring Manager,

I'm applying for the AWS Developer position at [Company]. I've been building serverless applications on AWS for four years, most recently at [Company] where I'm the lead developer on a document processing platform that handles 40,000 documents per day.

The core of my system is an event-driven pipeline: documents land in S3, which triggers an EventBridge rule that routes them to different SQS queues based on document type, with Lambda functions processing each queue. I designed the DynamoDB data model to support the four access patterns our application needs — by job ID, by document type and status, by submitting user, and by time range — using a single table with two GSIs. The cold start sensitivity was a real challenge for our latency SLA; I addressed it by using provisioned concurrency for the queue-consuming Lambdas during business hours and Lambda snapshots for the API functions.

I wrote the infrastructure in AWS CDK (TypeScript), which gave us the ability to review infrastructure changes in pull requests and automatically deploy through a CDK Pipeline with staging environment validation before production. When a Lambda permission change broke staging last November, we caught it in the pipeline before it reached production.

I hold the AWS Certified Developer – Associate certification and am scheduled to take the Solutions Architect Professional exam next month. I'd welcome the opportunity to discuss the role.

[Your Name]

Frequently asked questions

What is the difference between an AWS Developer and an AWS Cloud Engineer?
An AWS Developer focuses on building applications that run on AWS — writing Lambda functions, designing event-driven workflows, and integrating AWS services into application code. An AWS Cloud Engineer focuses more on the infrastructure layer — VPC design, IAM governance, multi-account architecture, cost management. In practice the roles overlap, but AWS Developers tend to spend more time writing application code and less time on platform-level infrastructure design.
Do AWS Developers need to know Kubernetes?
Not necessarily. Serverless architectures (Lambda, Fargate) are increasingly the first choice for new application development on AWS because they eliminate cluster management overhead. Kubernetes (via EKS) is important for applications with specific container orchestration requirements, particularly large microservices systems or workloads with complex scheduling needs. Developers who build primarily with Lambda and managed services can work productively on AWS without Kubernetes experience.
What is single-table design in DynamoDB and when should it be used?
Single-table design is a DynamoDB modeling pattern where multiple entity types coexist in one table, with a generic partition key and sort key that encode the entity type and identifier. It's used when an application has access patterns that require retrieving related entities in a single query — which is efficient in DynamoDB but impossible across multiple tables. It's the recommended pattern for complex applications with many entity types and diverse access patterns, though it requires careful upfront design and is harder to query ad-hoc than relational tables.
How do AWS Developers handle testing serverless applications?
Serverless testing has more friction than testing traditional server applications because Lambda functions run in a managed environment with dependencies on other AWS services. Unit tests mock the AWS SDK calls using libraries like moto (Python) or aws-sdk-mock (JavaScript). Integration tests can use LocalStack to run AWS services locally or test against a dedicated AWS test account. End-to-end tests run against actual deployed resources in a staging environment. Each approach has cost and fidelity tradeoffs that developers manage based on the risk profile of each component.
Is the AWS Certified Developer – Associate certification worth pursuing?
Yes, particularly early in an AWS development career. It validates a working knowledge of core AWS services, IAM patterns, and deployment tools that most developer roles require. Employers in AWS-heavy environments treat it as a baseline signal of platform competence. It also provides structure for learning that's useful for developers without a formal cloud background. The Professional level certification (DevOps Engineer) is more valued for senior roles and commands a measurable salary premium.
See all Software Engineering jobs →