All 60 tasks, level by level

The real graded Backend Development tasks the portal assigns, grouped into three levels.

The portal assigns these Backend Development 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
How HTTP worksUse curl -v against two APIs and explain methods, status codes, headers and the body for each request in a README.
Your first serverCreate a Node.js (Express) or Python (Flask/FastAPI) server with three routes returning JSON. Commit it to a repo named backend-internship.
REST design for a resourceDesign REST endpoints for a library (books, members, loans) with methods, URLs, status codes and sample JSON.
CRUD with an in-memory storeImplement create, read, update and delete for books, with proper 201/404/400 responses.
Input validationValidate request bodies with a library (zod, Joi or Pydantic) and return clear error messages for bad input.
Connect a SQL databaseMove the books store to PostgreSQL, MySQL or SQLite. Write the CREATE TABLE statements and commit them.
SQL queries practiceWrite 10 SQL queries on your library data: filters, joins, GROUP BY, ORDER BY and a subquery, with results.
Environment variablesMove database URLs and secrets into environment variables with a .env.example file and explain why secrets never go in Git.
Logging requestsAdd request logging with method, path, status and duration. Show a sample of the log.
Error handling middlewareAdd one central error handler so every error returns the same JSON shape without leaking stack traces.
API documentationDocument your API with OpenAPI/Swagger and serve the docs page from the server.
Test the API with PostmanCreate a Postman collection with tests for every endpoint and export it to the repo.
Status code cheat sheetWrite a cheat sheet of 20 status codes with one example request for each from your own API.
Config per environmentLoad different settings for development, test and production without code changes.
Request IDsAdd a unique request ID to every request and include it in logs and error responses.
Seed data scriptWrite a script that fills the database with realistic sample data for development.
Soft deleteImplement soft delete for books (deletedAt column) and exclude deleted rows from lists.
Timestamps and time zonesStore created and updated times in UTC and return ISO 8601 strings. Explain why.
CSV exportAdd an endpoint that streams a CSV export of records without loading everything into memory.
Search endpointAdd case-insensitive search across two fields with SQL LIKE or full-text search.
Health and readinessAdd separate liveness and readiness endpoints and explain the difference.
API versioningServe /v1 and /v2 of one endpoint where v2 changes the response shape.
Basic auth vs API keyProtect an admin endpoint with an API key header and explain its limits.
Linting and formattingAdd a linter and formatter to the project and fix every warning.

Level 2: Building real features (20 tasks)

TaskWhat to do
Authentication with passwordsAdd sign-up and login with bcrypt-hashed passwords. Explain why you never store plain passwords.
JWT or session authProtect the write endpoints with JWT or sessions. Show what happens with no token, an expired token and a valid one.
Roles and permissionsAdd admin and member roles. Only admins can delete books. Write tests for both roles.
Pagination, filtering and sortingAdd page, limit, search and sort query parameters to the books list with safe defaults and limits.
Database migrationsUse a migration tool (Prisma, Knex, Alembic or Flyway) to create and change the schema in versioned steps.
Indexes and query plansLoad 50,000 rows, time a slow query, add an index and show EXPLAIN output before and after.
Automated API testsWrite integration tests that start the server with a test database and cover the main flows.
File uploadsAdd a book cover upload with size and type checks, storing files on disk or in cloud storage.
Rate limitingLimit login attempts per IP and return 429 with a Retry-After header. Explain why this matters.
Containerise the APIWrite a Dockerfile and docker-compose file that runs the API and database together with one command.
Refresh tokensAdd short-lived access tokens and long-lived refresh tokens with rotation and logout.
Password reset flowBuild a secure password reset with one-time, expiring tokens.
Email verificationSend a verification link on sign-up and block unverified users from some actions.
Audit logRecord who changed what and when for every write, and add an endpoint to read the log.
N+1 query fixFind an N+1 query in your API, fix it with a join or batching, and measure the difference.
Idempotent paymentsImplement an Idempotency-Key header so retried create requests do not create duplicates.
Scheduled jobsRun a nightly job that cleans expired sessions or sends a report.
Object storageStore uploaded files in S3-compatible storage with signed URLs for download.
GraphQL endpointExpose the same data through a small GraphQL API and compare it with REST.
Load testLoad-test your API with k6 or autocannon and find the first bottleneck.

Level 3: Professional work and capstone (16 tasks)

TaskWhat to do
Caching with RedisCache the books list in Redis with a sensible expiry and clear it when a book changes. Measure the speed-up.
Background jobsSend a welcome email (or log it) through a background job queue instead of inside the request.
Transactions and consistencyMake borrowing a book a database transaction so stock can never go negative, and prove it with a concurrent test.
WebhooksBuild an endpoint that receives a webhook, verifies its signature and processes it exactly once.
OWASP API security checkReview your API against the OWASP API Top 10 and fix at least three findings, documenting each.
ObservabilityAdd a /health endpoint, structured JSON logs and basic metrics (request count and latency).
Deploy with CIDeploy the API to a free host (Render, Railway or Cloud Run) with a GitHub Actions pipeline that runs tests first.
Capstone: production backendShip a complete backend for an app of your choice with auth, database, tests, docs, Docker and a live URL. Include an architecture diagram in the README.
Message queue integrationPublish an event when an order is placed and process it in a separate worker.
Multi-tenant designAdd tenant separation so each organisation sees only its own data, with tests.
Search engineIndex records in Elasticsearch, Meilisearch or Typesense and add fast search with filters.
Distributed tracingAdd OpenTelemetry tracing across your API and worker and view a trace.
Database backup and restoreAutomate daily database backups and practise a restore to a new database.
Zero-downtime migrationChange a column in a way that never breaks running code (expand and contract).
Backend code reviewReview a classmate's backend pull request for security, errors and performance.
Capstone 2: SaaS backendBuild a multi-tenant SaaS backend with billing-ready plans, roles, audit logs, background jobs, tests and deployment.
โ† Tools and first-week setupSubmitting tasks and earning your certificate โ†’