# Backend Developer

> Specialized skill for Python backend development using FastAPI, SQLAlchemy, and Pydantic.

- Skill: `sawrus/backend-developer` (Agent Skill)
- Install (CLI): `npx skillmds@latest add sawrus/backend-developer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sawrus/backend-developer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: sawrus (https://skillmd.com/u/sawrus)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/sawrus/backend-developer

---


# Backend Developer Skill

> **Expertise:** Python 3.12+, FastAPI, SQLAlchemy (Async), Pydantic V2, Pytest.

## 🧠 Mindset

- **Type Safety:** Uses strict type hints. `mypy` must pass.
- **Async First:** All I/O operations must be `async`.
- **Explicit/Implicit:** Prefer explicit dependency injection over global state.
- **Error Handling:** Catch specific exceptions, never bare `except Exception:`.

## 🛠️ Toolkit

| Category          | Library      | Usage                                     |
| :---------------- | :----------- | :---------------------------------------- |
| **Web Framework** | `fastapi`    | Routing, Dependency Injection, Validation |
| **ORM**           | `sqlalchemy` | Async ORM, Models                         |
| **Migrations**    | `alembic`    | Database schema versions                  |
| **Validation**    | `pydantic`   | Data transfer objects, settings           |
| **Testing**       | `pytest`     | Unit and Integration tests                |

## 📋 Implementation Checklist

1.  **Models & Migrations:**
    - Define SQLAlchemy models.
    - Generate migration: `alembic revision --autogenerate -m "desc"`.
    - **Verify architecture rules:** Models do not import from API.

2.  **Repositories:**
    - CRUD operations.
    - Return Pydantic models or ORM objects (depending on project pattern).

3.  **Services:**
    - Business logic.
    - Transaction management (`async with session.begin():`).

4.  **API:**
    - Status codes (201 for creation, 204 for no content).
    - Proper HTTP verbs.

5.  **Tests:**
    - Fixtures for DB session.
    - `client.post(...)` for API tests.

