All projects
Interview challenge

Bosch — Task Management Platform

2025·Solo build
FlaskAngularPostgreSQLDockerJWTREST API

Bosch — Task Management Platform

Full-stack task manager built as a take-home technical assessment for a Bosch interview process.

The brief

Build a task management application demonstrating production-quality engineering across the full stack. Authentication, CRUD, sensible UX, deployable. I treated it as if it were going to ship.

What I delivered

  • JWT authentication with refresh-token rotation and route-level guards
  • Task CRUD with priorities, due dates, and tagging
  • Smart ordering — tasks auto-sort by a weighted score combining due-date proximity, priority, and creation time, so the most urgent surface first without manual triage
  • Dockerised stack — docker-compose up brings up Flask API + Angular frontend + PostgreSQL with one command
  • REST API with consistent error envelopes and proper HTTP status codes throughout

Key decisions

Flask over FastAPI. Brief didn't specify. I picked Flask because it's where I have the deepest production muscle and I wanted reviewer attention on architecture, not on me learning a new framework on the clock.

JWT with refresh rotation, not just access tokens. Most take-homes ship a single 24-hour JWT and call it auth. Refresh rotation is what production looks like — and it's what I'd build on the job.

Smart ordering as a first-class feature. The brief said "task management." Every candidate ships CRUD. Adding intelligent ordering on top was the cheapest way to demonstrate product thinking, not just technical execution.

Docker Compose from day one. Reviewer should be able to run my code in 30 seconds, not spend an afternoon resolving local dependencies. This matters more than candidates think it does.

Stack rationale

| Layer | Tech | Why | |---|---|---| | Frontend | Angular | Matched the role's stack expectations | | Backend | Flask + SQLAlchemy | Mature, fast to iterate, easy to read | | DB | PostgreSQL | Relational fit for the data model | | Auth | JWT + refresh | Production pattern, not toy auth | | Deploy | Docker Compose | One-command reproducibility |

Reflection

If I were extending this beyond the assessment: WebSocket-based real-time collaboration, a proper background job system for notifications (Celery + Redis), and OpenAPI spec generation for the REST layer. The bones are there — these are additive, not refactors.