DVA-C02 Sprint Dashboard

21 days · 1–1.5 hrs/day · Maarek (Udemy) + Whizlabs + TutorialsDojo mapped out

SAA background ✓ Maarek videos pinpointed Whizlabs 504 Q ready
32%
Development
26%
Security
24%
Deployment
18%
Troubleshooting
Your 3 resources — nothing else
🎯
Whizlabs — DVA-C02 Practice Questions
504 questions · 115 labs · your primary drill tool
Open →
📝
TutorialsDojo — DVA-C02 Practice Exams
Best explanations for wrong answers · closest to real exam
Open →
🎬
Maarek — DVA-C02 Video Course
Watch only the videos listed per day · skip hands-on labs Week 1
Open →
📖 How to use labs + Anki

Labs: You don't need them to pass — the exam is scenario-based multiple choice, not console work. But if by end of Week 1 you've seen a concept in 3 practice questions and still got it wrong, that's your lab list. Use Day 15 to do only those 3–5 stubborn ones in the Whizlabs sandbox. Don't do all 115.

Anki: Make cards after practice questions, not after videos. When you get something wrong and read the explanation — that's the moment to make the card. The pain of getting it wrong is what makes it stick.

On weak areas: Deployment (31%) and Troubleshooting (36%) are your domain-level gaps — that's the durable signal. The specific services that tripped you up will change with every mock. Don't memorise which service; learn the domain patterns.

Your progress

Week 1
0%
Week 2
0%
Week 3
0%
0%
Sprint complete
0 of 0 tasks done
D1
Diagnostic — take the cold exam first
Maps your real gaps. Most critical day.
START HERE90 min
Do NOT open Maarek today
Opening the course before the diagnostic defeats the point. You'll anchor on what you just watched instead of seeing real gaps.
↩ Skip Maarek on Day 1
Take the Whizlabs free test — 65 questions, timed
whizlabs.com → DVA-C02 → "1 Free test". Set timer to 130 min. No looking anything up. A low score is the goal — it's a map, not a grade.
45 min
Categorize every wrong answer by domain + service
For each wrong Q, note: Domain (Dev / Sec / Deploy / Debug) + Service (Lambda, DynamoDB, IAM…). Tally counts. This is your priority list for the next 20 days.
30 min
Write your 3 weakest services on paper and pin them
Literally write them down somewhere visible. These get priority 1 treatment in weeks 1–2.
15 min
Open Day 1 Gap Log — all 33 wrong answers analysed
Your diagnostic results: Deployment 31% · Troubleshooting 36% · Security 61% · Development 60%
D2
Beanstalk deployment modes — all 5 cold
Your #1 gap — Q18 and Q30 both lost here
~80 min
Memorize the 5 deployment modes as a table
All-at-once = fastest, downtime. Rolling = batches, reduced capacity. Rolling with additional batch = no capacity loss. Immutable = new instances, safest, slowest. Blue/Green = swap URL, instant rollback. "Full capacity throughout" = Immutable OR Rolling with additional batch (your Q30 miss).
▶ Watch: Elastic Beanstalk Overview + Elastic Beanstalk Deployment Modes
20 min
Worker tier — cron.yaml for periodic tasks (your Q18 miss)
Worker tier periodic tasks require exactly cron.yaml in the source bundle root. Not cron.config, not appspec.yaml. Write it out 3 times if needed — this is a pure memorization question.
▶ Watch: Elastic Beanstalk Overview (Worker environment section)
10 min
.ebextensions config files — what they do and where they live
.ebextensions/ folder in source bundle root. Files end in .config. Used to configure environment (install packages, run commands, set env vars). Different from cron.yaml.
▶ Watch: Elastic Beanstalk Deployment Modes (ebextensions section)
10 min
Maarek: Quiz 14 — Elastic Beanstalk (bottom of Beanstalk section, ~5 Q)
Then: Whizlabs → DVA-C02 → Practice Tests → do one set, focus on any Deployment/Beanstalk questions. No dedicated Beanstalk quiz in Whizlabs — Maarek Quiz 14 is your primary drill here. For every deployment mode question write which modes maintain full capacity before picking.
25 min
D3
CodeDeploy — AppSpec + Lambda traffic shifting
Q25 and Q34 both lost here — pure concept gaps
~85 min
AppSpec file for Lambda — what it specifies and where version lives (your Q25 miss)
AppSpec.yaml for Lambda specifies: (1) function name, (2) the version to deploy, (3) validation hooks. The version is declared IN the AppSpec file — not via aliases. Aliases are for traffic routing, not version declaration in CodeDeploy.
▶ Watch: CodeDeploy Overview + CodeDeploy for Lambda and ECS
15 min
Lambda traffic shifting: All-at-Once vs Canary vs Linear (your Q34 miss)
All-at-Once = 100% traffic shifted instantly. Canary = small % first (e.g. 10% for 10 min) then rest. Linear = gradual equal increments over time. "Instantaneously" in any question = All-at-Once. Every time.
▶ Watch: CodeDeploy for Lambda and ECS
12 min
CodeDeploy EC2 lifecycle hooks — BeforeInstall, AfterInstall, ApplicationStart, ValidateService
appspec.yml hooks run in this order. ValidateService is the last hook — used to verify deployment worked. Know which hooks you can use to run scripts.
▶ Watch: CodeDeploy for EC2 and ASG ↩ Skip: CodeDeploy hands-on console
12 min
CodeBuild: buildspec.yml phases + CodePipeline: stages and artifacts
buildspec.yml phases: install → pre_build → build → post_build. CodePipeline stages: Source → Build → Test → Deploy. Artifacts pass between stages via S3.
▶ Watch: CodeBuild Overview + CodePipeline Overview
12 min
Maarek: CI/CD section quiz (bottom of CodePipeline section) → then Whizlabs Quiz #9: AWS CI-CD (5 Q, 15 min)
For every traffic shifting Q — write All-at-Once / Canary / Linear meanings before reading options. The Whizlabs CI-CD quiz is short — do it twice if needed.
25 min
D4
CloudWatch + X-Ray + Lambda metrics
Q10, Q21, Q24 — three specific concept gaps
~80 min
High-resolution custom metrics — 10-second alarm periods (your Q10 miss)
Standard metrics = 1-minute minimum. High-resolution custom metrics = 1-second granularity, alarms every 10 or 30 seconds. "Monitor every 10 seconds" = high-resolution custom metric. CloudTrail = API logging, not monitoring metrics.
▶ Watch: CloudWatch Metrics + CloudWatch Alarms
15 min
IteratorAge — Lambda + Kinesis metric for falling behind (your Q21 miss)
IteratorAge = age of the last record in each batch Lambda reads from Kinesis. High IteratorAge = Lambda falling behind, records aging toward retention limit. Throttles = invocations exceeding concurrency. ConcurrentExecutions = aggregate across all functions. "Data not delivered fast enough from Kinesis" = IteratorAge.
▶ Watch: CloudWatch Metrics (Lambda section) + Kinesis Data Streams Overview
12 min
CloudWatch Logs Insights, Log Groups, subscription filters → Lambda/Kinesis
Log Insights = query language for logs. Subscription filters stream logs to Lambda, Kinesis, or Firehose in real-time. Metric filters extract metric data from log events.
▶ Watch: CloudWatch Logs + CloudWatch Logs Insights
10 min
X-Ray with Lambda — IAM role needs AWSXRayWriteOnlyAccess (your Q24 miss)
Lambda has X-Ray daemon built in — you don't install it. To enable: (1) add AWSXRayWriteOnlyAccess to the Lambda execution role, (2) enable active tracing in Lambda config. No daemon install needed. No "X-Ray function" — it's the X-Ray service.
▶ Watch: X-Ray Overview + X-Ray Instrumentation ↩ Skip: X-Ray hands-on console
12 min
Whizlabs Quiz #10: X-Ray (5 Q) + Maarek: CloudWatch section quiz → then Whizlabs Quiz #16: Management and Governance (covers CloudWatch alarms)
CloudTrail = API calls audit log. CloudWatch = metrics/logs/alarms. X-Ray = tracing. Keep these three separate in your head.
25 min
D5
SQS + CloudFormation + DynamoDB expressions
Q4, Q11, Q12 — quick wins, single concept each
~75 min
SQS visibility timeout — increase with ChangeMessageVisibility (your Q11 miss)
Multiple consumers getting same message = visibility timeout expired before processing finished. Fix = INCREASE visibility timeout via ChangeMessageVisibility API. UpdateMessageVisibility does not exist. Decreasing makes it worse.
▶ Watch: SQS Message Visibility Timeout + SQS Dead Letter Queue + SQS Long Polling
12 min
SQS standard vs FIFO, DLQ, delay queue — full picture
Standard = at-least-once, best-effort ordering. FIFO = exactly-once, ordered, 3000 msg/s. DLQ = after MaxReceiveCount failures. Delay queue = postpone delivery up to 15 min.
▶ Watch: SQS Overview + SQS FIFO Queues
12 min
CloudFormation Parameters section — runtime values (your Q12 miss)
Parameters = values passed INTO template at runtime. Outputs = values exported FROM stack. Metadata = extra template info. Transform = SAM declaration. "Base creation on runtime values" = Parameters section every time.
▶ Watch: CloudFormation Overview
10 min
DynamoDB expression types — Projection vs Filter vs Condition vs Update (your Q4 miss)
Projection Expression = which attributes to return. Filter Expression = filter results after read (still consumes RCU). Condition Expression = conditional writes. Update Expression = how to modify an item. "Return only Colour and Size" = Projection Expression.
▶ Watch: DynamoDB Basic APIs
10 min
Whizlabs Quiz #7: DynamoDB (5 Q) + Quiz #11: SQS and SNS (5 Q) + Maarek CloudFormation section quiz
Three short focused quizzes back to back — 15 questions total, all high-density. Any wrong answers → make an Anki card immediately.
25 min
D6
ECS IAM + DynamoDB GSI + API Gateway + S3 CORS
Q26, Q28, Q29, Q33 — all single concept gaps
~80 min
ECS task role vs instance role — and container network isolation (Q28 + Q33)
Task role = IAM permissions for the container (assign per task, not instance). Instance role = for the EC2 host running ECS. By default containers CAN access instance profile credentials — security risk. Block with ECS_AWSVPC_BLOCK_IMDS=true. Network isolation between containers = Security Groups on EC2 instances.
▶ Watch: ECS IAM Roles + ECS Overview
15 min
DynamoDB GSI — no consistent reads, only eventual (your Q26 miss)
GSI does NOT support ConsistentRead=true. Attempting it throws a ValidationException. For "latest results with least RCU on GSI" = Query with EventualRead. Eventual reads cost half the RCU of consistent reads.
▶ Watch: DynamoDB WCU and RCU + DynamoDB Basic APIs
10 min
API Gateway method vs integration — front-end vs back-end (your Q29 miss)
Method request/response = frontend (client-facing side). Integration request/response = backend (how API GW talks to Lambda/backend). "Control front-end API behavior" = Method request + Method response. Never pick Integration for front-end questions.
▶ Watch: API Gateway Integration Types
10 min
S3 CORS elements — AllowedMethod controls HTTP verbs (your Q13 miss)
AllowedOrigin = which domains. AllowedMethod = which HTTP methods (GET/PUT/POST/DELETE/HEAD). AllowedHeader = which request headers. MaxAgeSeconds = preflight cache duration. "Only allow GET" = AllowedMethod element.
▶ Watch: S3 CORS
8 min
Whizlabs Quiz #12: Amazon ECS Docker EKS (5 Q) + Quiz #14: S3 (5 Q) + Maarek API Gateway section quiz
Three focused quizzes. DynamoDB GSI and API Gateway method vs integration are exam staples — these quizzes will surface them.
25 min
D7
Lambda deep dive — now with context
Triggers · concurrency · layers · versions · SAM
~90 min
Lambda invocation types — sync vs async vs event source mapping
Sync = API GW calls Lambda directly, waits for response. Async = S3/SNS triggers, Lambda retries on failure. Event source mapping = SQS/Kinesis polling, Lambda reads batches. Error behavior differs for each.
▶ Watch: Lambda Overview + Synchronous Invocations + Asynchronous Invocations + Event Source Mapping
20 min
Lambda concurrency — reserved vs provisioned, throttling
Default 1000 concurrent limit (soft, per region). Reserved = cap + guarantee for that function. Provisioned = eliminates cold start. Throttled = 429 error returned to caller.
▶ Watch: Lambda Concurrency and Throttling
12 min
Lambda versions, aliases, layers
Versions = immutable snapshots. Aliases = mutable pointer to version (used for blue/green Lambda). Layers = shared code/dependencies across functions. Alias weighted routing = canary deployments.
▶ Watch: Lambda Versions and Aliases + Lambda Layers ↩ Skip: Lambda hands-on console demos
12 min
Whizlabs Quiz #8: AWS Lambda and Serverless Architecture (5 Q) + Maarek Lambda section quiz
Minimum viable day — two short quizzes, 10 questions total. Keep the streak alive.
25 min
If higher energy: Whizlabs full practice test #1 — 65 Q timed
Week 1 benchmark. Target 58–65% — you've now covered your actual gaps. Compare domain scores to your Day 1 diagnostic. Deployment should be up from 31%.
130 min
📬 Job search language — build this in parallel with the sprint tap to expand
Your lane: Java/AWS modernization + cloud architecture

This runs in parallel with the sprint — not after it. By day 60 of your 100-day sprint you should already be speaking interview language fluently, not starting to learn it. The cert proves the knowledge. This is how you package it.

RECRUITER PITCH — memorize this

"I'm a Java/AWS modernization engineer with 10+ years in enterprise systems. Most recently I worked as a Technology Lead on Vanguard retirement-platform modernization, moving legacy workflows toward Spring Boot microservices, AWS infrastructure, GraphQL APIs, and cloud-native release patterns. I'm strongest where Java backend, AWS architecture, and business-critical modernization meet."

LinkedIn headline
Java/AWS Solutions Architect | Spring Boot Microservices | Cloud Modernization | Enterprise Platform Migration | Former Vanguard Tech Lead
Running alongside the sprint — target day 60 of your 100-day sprint
Now–Day 45 Build 3 interview stories (Vanguard modernization · AWS microservices incident · production debugging) + LinkedIn rewrite — do 20 min/day alongside study
Day 45–60 Build Terraform/AWS project: Spring Boot → ECS Fargate → RDS → S3 → CloudWatch → GitHub Actions. Frame it as "Retirement Plan Enrollment Modernization Platform" — connects directly to Vanguard story.
Day 60–70 Turn project into GitHub README + architecture diagrams + talking points
Day 70–100 Recruiter pipeline · mock interviews · CRM follow-up · daily outreach

Your strongest market identity: Java/AWS modernization architect who can lead enterprise backend migration work. That's where your money is. Don't chase generic "cloud engineer."