All 60 tasks, level by level

The real graded Software Architecture tasks the portal assigns, grouped into three levels.

The portal assigns these Software Architecture tasks. Finish Level 1 before Level 2 and Level 2 before Level 3. Your mentor may mark some tasks as required for the certificate.

Level 1: Foundations (24 tasks)

TaskWhat to do
What architects doWrite a page on the role of a software architect: decisions, trade-offs, communication and quality attributes.
Quality attributesDefine performance, scalability, availability, security, maintainability and cost, with a measurable example for each.
Layered architectureBuild a small app with presentation, business and data layers, and explain what each layer may and may not call.
SOLID principlesShow each SOLID principle with a short bad and good code example.
Design patterns tourImplement Factory, Strategy, Observer and Adapter in one language, with a real use case for each.
UML and C4 diagramsDraw a C4 context and container diagram for an online food-ordering app.
Monolith analysisPick an open-source monolith on GitHub and describe its modules and how they depend on each other.
API contractsWrite an OpenAPI contract for a service before writing its code, and explain contract-first design.
Coupling and cohesionFind a tightly coupled piece of code (yours or open source) and refactor it to reduce coupling.
Architecture decision recordWrite an ADR choosing between SQL and NoSQL for a project, with context, options and consequences.
Non-functional requirementsWrite NFRs for a college result portal: load, response time, uptime, security and data retention.
Read a real case studySummarise an engineering blog post about a large system's architecture and list three lessons.
Architecture katasSolve one architecture kata (a short design exercise) in 45 minutes and write up your design.
Component diagramDraw a C4 component diagram for one container of an app you built.
Dependency graphGenerate a dependency graph of a project's modules and find any cycles.
Twelve-factor appCheck an app against the twelve-factor principles and fix two gaps.
Clean architectureExplain clean/hexagonal architecture and restructure a small app into ports and adapters.
Interface designDesign interfaces for a payment module so the provider can be swapped easily.
Error handling strategyWrite an error handling and logging strategy for a whole application.
Configuration strategyDesign how configuration and feature flags are managed across environments.
Code review for designReview a pull request only for design issues (coupling, naming, boundaries).
Read an ADR logRead the ADRs of an open-source project and summarise three decisions.
Sequence diagramDraw a sequence diagram for a login and an order checkout flow.
Glossary for a domainCreate a ubiquitous language glossary for an online learning platform.

Level 2: Building real features (20 tasks)

TaskWhat to do
Client-server and n-tierDeploy a three-tier app (frontend, API, database) and document how requests flow.
Modular monolithRestructure an app into clear modules with public interfaces and no cross-module database access.
Microservices splitSplit one app into two services that talk over HTTP, and list the new problems this created.
Event-driven designMake two services communicate through a message queue (RabbitMQ, Kafka or a cloud queue) and explain why.
Caching strategyAdd a cache to a slow endpoint and explain cache-aside, TTLs and invalidation in your design.
Database scalingExplain replicas, sharding and partitioning, and design how your app's data would scale to 10 million users.
API gatewayPut an API gateway or reverse proxy (NGINX) in front of your services for routing, rate limiting and TLS.
Resilience patternsImplement retries with backoff, timeouts and a circuit breaker between two services.
Domain-driven designIdentify bounded contexts, entities and aggregates for an e-commerce system and draw a context map.
Trade-off analysisCompare REST, GraphQL and gRPC for one use case and recommend one with reasons.
Event stormingRun an event storming session (even alone) for a food delivery system and capture events, commands and aggregates.
Data ownershipDecide which service owns each data entity in a microservice design and how others get it.
Outbox patternImplement the transactional outbox pattern so events are published reliably.
Idempotent consumersMake a message consumer safe to process the same message twice.
API compositionBuild a backend-for-frontend that combines data from two services for one screen.
Feature togglesAdd feature flags to release a feature gradually and remove the flag afterwards.
Multi-region thinkingExplain how you would serve users in India and Europe with low latency and data rules.
Capacity estimateEstimate storage, bandwidth and QPS for a photo-sharing app with 1 million users.
Read modelBuild a separate read-optimised model (CQRS) for a reporting screen.
Architecture fitness testsWrite automated tests that fail if a forbidden module dependency is added.

Level 3: Professional work and capstone (16 tasks)

TaskWhat to do
Design a URL shortenerProduce a full design: requirements, API, data model, scaling, caching and a capacity estimate.
Design a chat systemDesign a real-time chat with presence and message history, and explain your choice of WebSockets and storage.
Observability architectureDesign logging, metrics and tracing for a microservice system and set up a small demo with OpenTelemetry.
Security architectureDesign authentication, authorisation, secrets and encryption for a multi-service app.
Cost-aware cloud designDesign a cloud deployment for a startup and estimate its monthly cost with the provider's calculator.
Architecture reviewReview a classmate's or open-source project's architecture and write a constructive report with risks and fixes.
Migration planWrite a step-by-step plan to move a monolith to services using the strangler pattern, with risks at each step.
Capstone: architecture documentProduce a complete architecture document for a real product idea: context, C4 diagrams, ADRs, NFRs, scaling, security and a prototype of the hardest part.
Design a payment systemDesign a payment system with idempotency, ledgers, reconciliation and failure handling.
Design a notification systemDesign email, SMS and push notifications with preferences, retries and rate limits.
Design a search systemDesign search with indexing, ranking and freshness for an e-commerce catalogue.
Design a video platformDesign upload, transcoding, storage and streaming with a CDN.
Platform engineeringDesign an internal developer platform with templates, CI/CD and self-service environments.
SustainabilityEstimate the carbon and cost impact of a design and suggest greener choices.
Architecture presentationPresent an architecture to non-technical stakeholders in 10 minutes and collect feedback.
Capstone 2: design portfolioPublish three complete system designs with diagrams, trade-offs, estimates and ADRs as a portfolio site.
โ† Tools and first-week setupSubmitting tasks and earning your certificate โ†’