8. My Role as a Senior Developer at Amazon
Role Summary
As a Senior Software Development Engineer (SDE-III) on the MangaAssist project, I am not just writing code — I am the technical owner of a critical subsystem and a force multiplier for the entire team. My job is to make the right technical decisions, ship reliable software, and ensure the team moves fast without breaking things.
Ownership Areas
graph TD
subgraph "I Own Directly"
A[Chatbot Orchestrator<br>Service Design & Implementation]
B[API Contracts<br>All service interfaces]
C[RAG Pipeline<br>Architecture & Integration]
D[System Architecture<br>End-to-end design]
end
subgraph "I Influence / Review"
E[Intent Classifier<br>Integration & latency requirements]
F[Frontend Chat Protocol<br>WebSocket contract]
G[Guardrails Pipeline<br>Rules & validation logic]
H[Data Pipeline<br>Event schema & analytics]
end
subgraph "I Delegate"
I[Frontend Widget<br>to FE Engineers]
J[ML Model Training<br>to Applied Scientists]
K[Infrastructure / CI-CD<br>to DevOps]
L[Dashboard & Reporting<br>to Data Engineers]
end
What I Personally Build
1. Chatbot Orchestrator (Core Service)
This is the brain of the system. I write the orchestration logic because it touches every subsystem and requires deep understanding of the full architecture.
Specifically, I: - Design the state machine that routes intents to services. - Implement parallel fan-out to recommendation, catalog, and RAG services. - Build the prompt assembly logic (combining context, history, retrieved data, and system instructions). - Implement timeout, retry, and circuit breaker patterns for each downstream dependency. - Write the conversation memory management (DynamoDB read/write, summarization triggers).
2. API Contracts
I define every API contract between services before anyone writes implementation code.
Why me: API contracts are the hardest thing to change later. A wrong contract creates months of tech debt. As the person who sees the full system, I'm best positioned to get the interfaces right.
Deliverables:
- OpenAPI specs for /chat/message, /chat/init, /chat/feedback, /chat/escalate.
- Internal service contracts: Orchestrator → Intent Classifier, Orchestrator → Recommendation Engine, Orchestrator → RAG Pipeline.
- WebSocket message protocol (frontend ↔ backend).
3. RAG Pipeline Architecture
I design and build the retrieval-augmented generation pipeline because it's the core differentiator — bad RAG means wrong answers.
Specifically, I: - Choose the embedding model and chunk strategy. - Design the indexing pipeline (what gets indexed, how often, what metadata to attach). - Implement the retrieval + reranking logic. - Tune the prompt template that combines retrieved chunks with user context. - Build the evaluation harness to measure retrieval quality (recall@k, answer accuracy).
What I Delegate
| Task | Delegated To | How I Stay Involved |
|---|---|---|
| Chat widget UI | Frontend engineers | Review WebSocket integration, approve UX interactions with backend |
| Intent classifier model training | Applied scientist | Define the intent taxonomy, set latency/accuracy requirements, review evaluation metrics |
| Infrastructure & deployment | DevOps engineer | Review CDK templates, approve architecture, co-own the runbook |
| Analytics pipeline | Data engineer | Define the event schema, review Redshift table design |
| Load testing | QA/SDET | Define latency targets, review test plans, participate in load test analysis |
| Knowledge base content | Operations | Define the chunk format and metadata schema, review content quality |
Cross-Team Collaboration
With Product Manager
- Translate vague requirements into technical specs.
- Push back on scope when needed ("That's V2, not MVP").
- Propose A/B experiments for measuring chatbot impact.
- Jointly define success metrics.
With Applied Scientists
- Provide real user queries for training data.
- Set latency budgets they must work within (intent classification < 50ms).
- Review prompt engineering approaches.
- Co-design the evaluation framework.
With UX Designer
- Explain what's technically feasible for streaming, product cards, and quick chips.
- Provide constraints: "We can show 3–5 products per response, not 20."
- Review designs for technical feasibility before implementation.
With Amazon Catalog / Order / Recommendation Teams
- Negotiate API access and SLAs.
- Define what data we need and in what format.
- Handle dependency risks (what if their service is slow or down?).
With Amazon Customer Service Team
- Design the escalation handoff protocol.
- Define what context is passed to human agents.
- Agree on SLAs for handoff.
Technical Leadership Responsibilities
Architecture Decisions
I make (or approve) every significant technical decision: - Use DynamoDB (not Redis) for conversation memory — why: managed, durable, TTL built-in. - Use WebSocket (not SSE) for streaming — why: bidirectional, better mobile support. - Use a two-stage intent classifier (rules + ML) — why: fast, cheap, accurate enough for MVP. - Use OpenSearch Serverless (not Pinecone) for RAG — why: stays within AWS, managed, IAM integration.
Each decision is documented in a design doc with alternatives considered, trade-offs, and a clear recommendation.
Code Review
I review every PR that touches: - The orchestrator service. - API contract changes. - Prompt templates. - Guardrail rules. - Database schema changes. - Anything that touches PII or security.
Mentoring
- Pair-program with junior engineers on complex integration points.
- Run weekly architecture office hours.
- Write internal wiki documentation on "how the chatbot works end-to-end."
- Conduct post-mortems after incidents and turn them into learning opportunities.
Operational Excellence
- Write the runbook for the chatbot service.
- Define on-call procedures and escalation paths.
- Set up alarms for: P99 latency > 5s, error rate > 1%, guardrail block rate > 10%.
- Own the weekly operational review (WBR metrics).
Metrics I Own
| Metric | Target | Why I Own It |
|---|---|---|
| P99 Latency (time to first token) | < 1.5 seconds | I designed the orchestration and parallel calls |
| End-to-end latency (full response) | < 3 seconds | Same |
| Error rate | < 0.5% | I own the orchestrator and error handling |
| Guardrail block rate | < 5% | I own the guardrails pipeline |
| Intent classification accuracy | > 90% | I defined the taxonomy and set requirements |
| RAG retrieval relevance | > 80% recall@3 | I built the RAG pipeline |
| System availability | 99.9% | I designed the failover and circuit breakers |
Handling Ambiguous Requirements
Amazon is famous for "working backwards from the customer." When requirements are unclear, I:
- Write a one-pager clarifying my understanding and share it with PM.
- Build the simplest version first and get feedback.
- Use data to resolve debates — if we're unsure whether users want proactive recommendations, we A/B test it.
- Bias toward reversible decisions — choose options that are easy to change later.
- Escalate when needed — if two teams disagree on an API contract, I bring it to the manager with a recommendation.
Driving Launches
For launch, I own the launch readiness checklist:
- All services deployed and healthy
- Load test passed at 2x expected traffic
- Guardrails tested with adversarial inputs
- Runbook reviewed by on-call team
- Dashboards and alarms in place
- Feature flag configured for gradual rollout (1% → 10% → 50% → 100%)
- Rollback plan documented and tested
- PM sign-off on metrics and success criteria
- Legal/compliance review complete (PII handling, content moderation)
My Role in This Project — Full Picture
Beyond the technical ownership described above, my role as SDE-III on MangaAssist covers three interlocking dimensions: building, leading, and growing the team.
What I Build
I personally write the hardest, highest-risk code — the orchestrator, the RAG pipeline, and all API contracts. I write this code not because no one else can, but because mistakes here cost months to fix. Every other service depends on these foundations being correct.
What I Lead
I make every significant technical decision and document the reasoning. I own cross-team negotiations (catalog, orders, recommendations, CS teams). I drive launch readiness and own the post-launch operational metrics. When something breaks at 2am, I'm the escalation point for the on-call engineer.
What I Grow
Every interaction with a junior engineer or intern is a coaching opportunity. The measure of a senior engineer at Amazon is not just what they ship — it's how fast the engineers around them improve.
Guiding Interns
Amazon routinely has interns (SDE interns, ML interns, research interns) join product teams like MangaAssist. As the senior engineer, I am the primary technical mentor for any intern on my team.
How I Onboard an Intern
gantt
title Intern Onboarding Timeline (12-week internship)
dateFormat WEEK
section Week 1-2 - Foundation
System walkthrough & architecture doc read :w1, 1w
Dev environment setup + first PR (minor bug fix) :w1, 1w
Shadow code reviews and design discussions :w2, 1w
section Week 3-4 - Ramp-Up
Assigned intern project scoped and spec'd :w3, 1w
First feature implementation begins :w4, 1w
section Week 5-10 - Execution
Core project development + weekly 1:1s :w5, 6w
Mid-point check-in and scope adjustment :w7, 1w
section Week 11-12 - Wrap-Up
Demo prep + final PR review :w11, 1w
Intern presentation + return offer recommendation:w12, 1w
| Week | What I Do With the Intern |
|---|---|
| Week 1 | Walk them through the full architecture end-to-end (1-hour session). Assign a small, self-contained bug fix so they touch the PR process early. |
| Week 2 | Invite them to shadow all my code reviews and one design doc review. Explain the "why" behind every review comment I make. |
| Week 3 | Collaboratively scope their intern project — I have the project ready, but I walk them through the options and let them ask clarifying questions. |
| Week 4–10 | Weekly 30-minute 1:1. First 10 minutes: they update me on progress and blockers. Next 20 minutes: I pair-program with them on whatever is blocking them. |
| Week 7 | Mid-point check. If they're ahead, I add stretch goals. If behind, I narrow scope so they still ship something meaningful. |
| Week 11 | I review their final PR carefully, writing detailed comments explaining what to change and why — this is a teaching review, not a gatekeeping review. |
| Week 12 | I help them prepare their demo. After the internship, I write a detailed return offer recommendation grounded in specific work and behaviors. |
What Projects I Give Interns
Intern projects on MangaAssist are real, production-bound features — not toy projects. But they are scoped to be self-contained so the intern can own them end-to-end.
| Intern Project | Why It's Intern-Appropriate | What They Learn |
|---|---|---|
| Feedback signal pipeline — capture thumbs up/down per response, store in DynamoDB, emit to Kinesis for analytics | Well-defined inputs/outputs, no dependency on orchestrator internals | API design, DynamoDB integration, event streaming |
| Quick-chip suggestion service — given an intent, return a set of short follow-up question suggestions | Small Lambda, independent from main orchestration path | Prompt engineering, Lambda patterns, low-latency design |
| Knowledge base freshness monitor — detect when manga catalog data in OpenSearch is stale, trigger re-indexing | Batch job, no latency requirements | OpenSearch, DynamoDB TTL, CloudWatch events |
| Guardrail rule dashboard — visualize which guardrail rules are firing, at what rate, and for which intents | Read-only analytics, no writes to prod critical path | CloudWatch metrics, Redshift queries, QuickSight |
| Conversation quality labeling tool — internal tool for ops team to label chatbot responses as good/bad/needs-review | Admin tooling, isolated from customer-facing surface | React, DynamoDB read APIs, basic auth |
How I Review Intern Code
My code review approach with interns is different from how I review senior engineers:
With a senior engineer: I write concise comments and expect them to know why.
With an intern:
- I write the comment and the explanation. Example: "Use Decimal here instead of float because DynamoDB's Number type is precise; Python floats introduce rounding errors."
- I tag comments as [must fix], [suggestion], or [learning note] so they know what's blocking merge vs. what's educational.
- I never reject a PR without pointing to a specific resource (code example, internal wiki page, AWS doc).
- I approve their PRs after no more than 2 review rounds — if something still isn't right on round 3, I pair-program through it rather than iterate on comments.
How I Set Interns Up for Success
Before Week 1: - I pre-scope the project with clear acceptance criteria. - I write a starter doc: system context, links to relevant code, list of services they'll touch. - I ensure their dev environment provisioning request is filed before they arrive.
During the internship: - I never give them a blocker and walk away. If they're stuck on IAM permissions, AWS CDK config, or a confusing API, I unblock them within 24 hours. - I involve them in one real design review to expose them to how senior engineers think through tradeoffs. - I cc them on relevant architecture decisions so they see the reasoning, not just the outcome.
What I do NOT do: - I don't assign them tasks that are "nice to have" and would never ship. Their work goes to production. - I don't pair-program for them — I pair-program with them. There's a difference. - I don't wait until week 12 to give feedback. Feedback is weekly and specific.
Intern Assessment Framework
At Amazon, the return offer recommendation carries real weight. I write my recommendation based on four dimensions:
| Dimension | What I Look For |
|---|---|
| Technical Depth | Did they understand the system well enough to make good implementation decisions, or did they just follow instructions? |
| Ownership | Did they track their own blockers and surface them proactively, or did they wait to be asked? |
| Communication | Could they explain their design choices clearly in a PR description, design doc, or demo? |
| Learning Velocity | How much did they improve from week 1 to week 12? A slow start is fine; a flat trajectory is not. |
Example: What a Strong Intern Interaction Looks Like
Situation: Intern is building the feedback pipeline. They come to the weekly 1:1 and say: "I stored the feedback in DynamoDB with userId as the partition key. But I'm not sure how to query all feedback for a given mangaId."
What I do: 1. Ask: "What's your access pattern — do you need to query by mangaId frequently, or is this for an offline analytics job?" 2. Explain the problem: "A GSI on mangaId would work for frequent queries, but if this is just analytics, scanning via Kinesis → Redshift is cheaper and simpler." 3. Let them decide: "Given your project scope, which option makes more sense? Let's think through the tradeoffs." 4. Follow up next week: "Did the approach you chose hold up, or did you hit any edge cases?"
This is the pattern I follow: ask → explain → let them decide → follow up. I don't hand them answers. I hand them frameworks.
Summary: What "Senior" Means on This Project
| Responsibility | How I Fulfill It |
|---|---|
| Technical ownership | I own the orchestrator, RAG pipeline, and API contracts end-to-end |
| Decision making | I make and document every significant technical decision |
| Cross-team coordination | I represent the team in all dependency negotiations with other Amazon teams |
| Operational excellence | I own the runbook, alarms, and on-call escalation path |
| Mentoring junior engineers | Weekly office hours, targeted PR reviews, pair programming on blockers |
| Guiding interns | Scoped projects, structured onboarding, teaching-first code reviews, honest return offer recommendations |
| Force multiplication | My job is not to be the best coder on the team — it is to make the entire team ship faster and with fewer mistakes |