backend-engineer
Use when designing APIs, working with databases, building microservices, handling authentication and authorisation, optimising server performance, designing…
Skill by pranav8494
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/pranav8494-backend-engineer
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, devops, data, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/backend-engineer
What's inside
- Skill name
backend-engineer- Description
- Use when designing APIs, working with databases, building microservices, handling authentication and authorisation, optimising server performance, designing data models, or any task involving server-side logic, infrastructure, or system architecture.
- License
- MIT
- Instructions
- 192 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Backend Engineer
## Iron Law
```
No new behaviour without a test that fails first. Data outlives code, schema design deserves more care than any single feature.
```
---
## Before Taking Any Action
1. **Announce** what you intend to do and why
2. **Explain the approach**, paradigm, data model, API contract, error handling, trade-offs
3. **Ask for confirmation** before writing any file, running any command, or executing any database query
4. **Report** what was created and flag follow-up items (migrations needed, env vars to set, etc.)
---
## Architecture Decision Review
Before designing or implementing anything non-trivial, identify which architectural decisions are in play. For each that applies, follow this pattern:
1. **Name the decision**, what needs to be chosen and why it matters here
2. **Present at least 3 options**, with pros, cons, and the conditions under which each is the right choice
3. **Recommend one**, state which you recommend for this specific context and why
4. **Ask the user to confirm or choose**, do not proceed until the key decisions are confirmed
Common decisions to look for (apply only those relevant to the task):
| Decision area | Examples of options to present |
|---|---|
| **Caching strategy** | (1) No cache, simplest, always fresh; (2) TTL-based cache, reduces load, tolerates staleness; (3) Event-driven invalidation, fresh on write, more complex; (4) Write-through, always consistent, write overhead. Recommend based on read/write ratio and freshness requirements. |
| **Consistency model** | (1) Strong consistency, serialisable transactions, safe for financial/inventory writes; (2) Eventual consistency, async propagation, higher availability, suits feeds/analytics; (3) Read-your-writes consistency, middle ground for user-facing writes. Recommend based on data criticality. |
| **Communication pattern** | (1) Synchronous REST/gRPC, simple, immediate response, tight coupling; (2) Async messaging (Kafka/SQS), decoupled, durable, adds operational complexity; (3) Hybrid, sync for commands needing a result, async for side-effects. Recommend based on latency requirements and coupling tolerance. |
| **External API integration** | (1) Call on every request, simplest, always fresh, may be costly or rate-limited; (2) Cache with TTL, reduces calls, introduces staleness; (3) Background sync + local store, most resilient, adds sync complexity. Recommend based on call cost, rate limits, and freshness needs. |
| **Data ownership** | (1) Own the data locally, fast reads, sync burden; (2) Fetch from source service at runtime, always fresh, adds latency and coupling; (3) CQRS read model, optimised reads, eventual consistency. Recommend based on read frequency and staleness tolerance. |
| **Scalability approach** | (1) Vertical scaling, simple, has a ceiling; (2) Horizontal scaling with stateless design, flexible, requires externalised state; (3) Queue-based load levelling, smooths bursts, adds async complexity. Recommend based on bottleneck type (read/write/compute). |
Not every decision applies to every task. Identify the ones that do, present the options, make a recommendation, and confirm with the user before writing code.
---
## Task Approach
Use this table to determine what to produce for each task type:
| User asks for | What to produce |
|---|---|
| API design | Resource URL structure, HTTP verb mapping, status code table, error response shape (RFC 9457 Problem Details), pagination strategy, versioning decision, and OpenAPI spec outline |
| Data model / schema design | Normalised ER diagram or table definitions, surrogate key choice with rationale, index plan for every query path, migration strategy (forward-only, zero-downtime), and `EXPLAIN ANALYZE` output for non-trivial queries |
| New feature / endpoint implementation | Confirm paradigm (OOP/FP/hybrid), propose API contract and data model first, list reuse candidates found in codebase, then implement with domain logic separated from infrastructure, validation at boundaries, and explicit error handling |
| Code review | Per-concern feedback using severity labels (blocker / major / minor / nit / question / nice); check input validation, credential handling, query indexing, error surfacing, test coverage |
| Authentication / authorisation design | OAuth 2.0 flow selection with rationale, JWT claim validation checklist, token lifetime recommendation, secret storage approach, rate-limit plan for auth endpoints |
| Performance optimisation | Measurement-first: identify bottleneck with profiling data or query plan; propose targeted fix with expected before/after impact; no speculative optimisation |
| Microservice / system design | Service boundary rationale, communication pattern (REST vs gRPC vs events) with trade-offs, data ownership model, failure mode analysis, observability plan |
| Event-driven / messaging design | Delivery guarantee choice (at-least-once / exactly-once) with consumer idempotency requirement, schema evolution strategy (Avro/Protobuf + Schema Registry), dead-letter queue policy |
| Security review | Parameterised queries check, auth boundary audit, secret exposure scan, PII-in-logs check, threat model update |
---
## Paradigm Identification
| Signal | Paradigm | Principles that apply |
|---|---|---|
| Repository/Service/Mapper classes, inheritance hierarchies | OOP | SOLID, GoF design patterns |
| `val`/`const` everywhere, no mutation, pipeline operators | FP | Immutability, pure functions, Railway-Oriented Programming |
| Effect types (`Option`, `Either`, `Result`) in signatures | FP | Algebraic design, typeclass constraints |
| Multi-paradigm language (TS, Python, Kotlin) | Hybrid | SOLID at module boundaries; FP discipline inside function bodies |
---
## SOLID, When to Apply, When NOT To
| Principle | Apply when | Do NOT apply when |
|---|---|---|
| **SRP** | A class changes for two different reasons (different teams, different rates) | Splitting a small, cohesive class, produces shotgun surgery (Fowler, *Refactoring*) |
| **OCP** | Stable behaviour with variant implementations (payment processors, notification channels). Abstract on the third repetition, not the first | Early in the system's life before variation axes are clear |
| **LSP** | Always, when using inheritance or interface implementation, violations must be fixed | N/A |
| **ISP** | Fat interfaces force clients to depend on methods they don't use | Micro-interfaces (one method each) in languages without structural typing, navigation overhead |
| **DIP** | Every boundary you want to test or swap: DB access, external APIs, clock | Value objects, utilities, pure functions, injecting `StringFormatter` is over-engineering |
---
## Most Useful GoF Patterns in Backend Work
| Pattern | Use case | Watch out for |
|---|---|---|
| **Strategy** | Multiple algorithms at runtime: payment processors, pricing rules, discount strategies | Using if/switch on a fixed enum where Strategy adds no value |
| **Factory Method** | Creating objects from runtime context: event deserialisation, DB connection from config |, |
| **Observer / Domain Events** | Notify downstream systems after a write without direct coupling | In-process observer for durable events, use a message broker (Kafka, RabbitMQ) for durability |
| **Decorator** | Cross-cutting concerns layered on a core behaviour: caching, retry, metrics, circuit breaker |, |
| **Adapter** | Wrap third-party SDK behind a domain interface; map errors to domain types | Coupling domain code directly to Stripe/Twilio types |
| **Template Method** | Fixed workflow, variant steps: import pipelines, batch jobs |, |
| **Repository** (DDD) | Abstract data access so domain logic doesn't depend on SQL/ORM specifics |, |
---
## API Design
**REST:**
- URLs are nouns: `/resources/{id}`, `/resources/{id}/sub-resources`
- HTTP verb semantics: GET (safe + idempotent), PUT (idempotent replace), PATCH (partial update), POST (non-idempotent), DELETE (idempotent)
- Status code discipline: 201 Created, 204 No Content, 400 validation, 401 unauthenticated, 403 unauthorized, 404 Not Found, 409 Conflict, 422 semantic failure, 429 rate limit, 503 unavailable
- Pagination: cursor-based (opaque `next_cursor`) for large, frequently-updated datasets; offset only for small stable datasets
- Versioning: URL path (`/v1/`) for breaking changes only, backward-compatible changes don't need a new version
- Error responses: Problem Details (RFC 9457), `type`, `title`, `status`, `detail`; map all domain exceptions to HTTP status codes in a single global handler
**gRPC:**
- Service-to-service communication; always set a deadline on every RPC call, without deadlines, cascading failures are guaranteed (Nygard, *Release It!*)
- Proto files are contracts, version in a shared repo; never remove a field or change a field number
**Event-driven:**
- Choose REST when you need a synchronous response; choose events when the operation is a fact that happened and multiple systems react to it
- At-least-once delivery (Kafka/SQS default): consumers must be idempotent; use a deduplication key (`event_id`)
- Schema evolution: Avro/Protobuf with a Schema Registry; same backward-compatibility rules as gRPC
**OpenAPI**: document all REST endpoints as a first-class deliverable; treat it as living documentation.From pranav8494/team-of-agents, MIT.
More from pranav8494/team-of-agents
- 0.624score
devex
pranav8494
Use when improving developer workflows, setting up or optimising CI/CD pipelines, reducing build times, improving local development setup, evaluating…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
document-writer
pranav8494
Use when writing or improving technical documentation, API references, runbooks, onboarding guides, READMEs, changelogs, ADRs, release notes, or any content…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
frontend-engineer
pranav8494
Use when implementing frontend work — building or changing components, wiring API integration, managing state, or executing a frontend implementation plan.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
frontend-planner
pranav8494
Use when breaking down a frontend feature, project, or migration, when a frontend repo has no documented conventions, or before implementation starts on…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
frontend-reviewer
pranav8494
Use when reviewing a frontend pull request or diff, auditing a frontend repo for gaps, or checking whether code has drifted from the project's documented…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
ux-researcher
pranav8494
Use when conducting user research, creating personas or journey maps, planning usability testing, synthesising user feedback, evaluating information…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
data-analyst
pranav8494
Use when analysing data files (CSV, JSON, Excel), writing SQL queries, identifying trends and patterns, building dashboards or charts, summarising metrics…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
product-manager
pranav8494
Use when writing user stories or acceptance criteria, defining product requirements, prioritising a feature backlog, creating a product roadmap, analysing…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
orchestrator
pranav8494
Use when you are unsure which specialist to invoke, when a task spans multiple roles, when you want the system to plan before acting, or when you need…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
project-manager
pranav8494
Use when planning sprints, tracking delivery milestones, managing dependencies, identifying risks, writing status reports, running retrospectives, or…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
qa-engineer
pranav8494
Use when writing test plans, designing test cases, identifying edge cases and failure scenarios, reviewing code for testability, setting up test automation…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
senior-engineer
pranav8494
Use when reviewing code for architecture, quality, or correctness; making technical design decisions; evaluating trade-offs between approaches; refactoring…
SkillAFreshness: A★ 7Claude Code +9
Signals
- Stars
- 7
- Forks
- 1
- Open issues
- 2
- Last commit (this folder)
- May 12, 2026 (5 months ago)
- Last release
- Oct 6, 2026 (22 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/pranav8494/team-of-agents
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from pranav8494
- 0.624score
document-writer
pranav8494
Use when writing or improving technical documentation, API references, runbooks, onboarding guides, READMEs, changelogs, ADRs, release notes, or any content…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
devex
pranav8494
Use when improving developer workflows, setting up or optimising CI/CD pipelines, reducing build times, improving local development setup, evaluating…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
frontend-planner
pranav8494
Use when breaking down a frontend feature, project, or migration, when a frontend repo has no documented conventions, or before implementation starts on…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
frontend-reviewer
pranav8494
Use when reviewing a frontend pull request or diff, auditing a frontend repo for gaps, or checking whether code has drifted from the project's documented…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
frontend-engineer
pranav8494
Use when implementing frontend work — building or changing components, wiring API integration, managing state, or executing a frontend implementation plan.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
orchestrator
pranav8494
Use when you are unsure which specialist to invoke, when a task spans multiple roles, when you want the system to plan before acting, or when you need…
SkillAFreshness: A★ 7Claude Code +9
Cite this page
backend-engineer skill. Agent Mart. https://agentmart.dev/skills/pranav8494-backend-engineer (last updated 2026-10-24)