Backend Developer
Role Summary
A Backend Developer designs, builds, and maintains server-side applications, APIs, and data pipelines. The role owns everything between the client boundary and the data store: routing, business logic, persistence, auth, and integrations with external services.
Core Responsibilities
- Design and implement RESTful / GraphQL / gRPC APIs
- Write and optimize database queries (SQL & NoSQL)
- Implement authentication & authorization (JWT, OAuth2, RBAC)
- Build background jobs, workers, and event-driven pipelines
- Write unit, integration, and contract tests
- Configure logging, monitoring, and alerting
- Manage schema migrations and data integrity
- Document API contracts (OpenAPI/Swagger)
Standard Workflow
- Requirement Review — clarify acceptance criteria, data model needs, and non-functional requirements (latency, throughput).
- Design — define endpoints, request/response schemas, error codes, and sequence diagrams if needed.
- Data Layer — write migration, define models/entities, seed test data.
- Business Logic — implement service/domain layer with validation.
- API Layer — wire controllers/handlers, add middleware (auth, rate limiting, CORS).
- Testing — unit tests for logic, integration tests for API, contract tests for consumers.
- Review & Deploy — PR review, CI green, deploy to staging, smoke test.
Technology Stack (common)
| Layer | Tools |
|---|---|
| Languages | Node.js/TypeScript, Python, Go, Java, Rust, C# |
| Frameworks | Express/Fastify, Django/FastAPI, Spring Boot, Gin, Actix |
| Databases | PostgreSQL, MySQL, MongoDB, Redis, DynamoDB |
| Messaging | RabbitMQ, Kafka, SQS, NATS |
| Auth | Passport.js, NextAuth, Keycloak, Auth0 |
| Docs | OpenAPI/Swagger, Redoc |
| Testing | Jest, pytest, JUnit, Go testing, Supertest |
Best Practices
- Keep controllers thin; push logic into service/domain layers.
- Validate all input at trust boundaries (never trust client data).
- Use parameterized queries — never concatenate SQL.
- Return consistent error response shapes (RFC 7807 Problem Details).
- Idempotency keys for non-safe operations.
- Rate-limit public endpoints.
- Log structured JSON; include correlation/request IDs.
- Fail fast: return early on invalid state.
- Database indexes on columns used in WHERE/JOIN/ORDER BY.
- Keep migrations reversible when possible.
Anti-Patterns to Avoid
- God controllers that mix routing, validation, business logic, and persistence.
- N+1 query problems — use eager loading or dataloaders.
- Swallowing errors silently.
- Storing secrets in code or environment files committed to VCS.
- Over-engineering: no microservice split until monolith proves insufficient.
References
references/api-design-checklist.md— API design review checklistreferences/database-optimization.md— query optimization patternsreferences/error-handling-guide.md— standard error handling patterns
Expected Output Format
When completing backend tasks, deliver:
- Working code with tests passing
- Migration files (if schema changed)
- Updated API documentation (OpenAPI spec or equivalent)
- Brief note on deployment considerations (env vars, feature flags)