STATUS: OPEN TO BACKEND & CLOUD ROLES

Backend engineer building APIs that hold up /in-production

I design and ship REST APIs with Python, Django REST Framework, and PostgreSQL — then deploy and run them myself, from cloud platforms down to a self-hosted server in my home lab.

$ curl https://arghyadeep.dev/api/me

GET /projects

Projects as endpoints

Portfolio projects built end to end — modeling, auth, testing, rate limiting, and deployment included. Each one shipped, not just committed.

GET /projects/url-shortener 200 OK

URL Shortener API

Cryptographic short-code generation, JWT auth, atomic click tracking, soft delete, and anonymous rate limiting — backed by a 22-test suite. Self-hosted on my own Ubuntu server behind Nginx, Gunicorn, and Let's Encrypt.

Django 5DRFPostgreSQLJWTNginx
→ view source
POST /projects/file-manager IN PROGRESS

File Upload & Management API

Multipart upload handling with validation, built on Django's Storage abstraction so the same code targets S3-compatible object storage in the cloud or MinIO on my own hardware.

DRFS3 / R2GCSMinIORender
→ follow along

GET /stack

What I work with

The tools I reach for daily, written the way I'd write a config file.

stack.toml

backend

  • Python
  • Django / DRF
  • PostgreSQL
  • JWT auth
  • pytest & API testing

cloud

  • Google Cloud Platform
  • Cloud Run & VPC networking
  • Object storage (GCS, S3, R2)
  • Render

infrastructure

  • Linux (Ubuntu Server)
  • Nginx + Gunicorn
  • TLS / Let's Encrypt
  • DNS & networking

GET /home-lab

I run my own server

Cloud platforms are great — but I wanted to understand what they abstract away. So I turned a spare machine into a self-hosted Ubuntu server that serves my projects to the public internet.

That meant working through dynamic DNS, reverse proxying with Nginx, Gunicorn process management, and TLS certificates myself. When something breaks at 11 pm, I'm the on-call engineer.

It's the cheapest production environment I could ask for, and the fastest way I've found to learn how the pieces actually fit together.

nginx.service active (running) gunicorn.service active (running) postgresql.service active (running) certbot.timer active (waiting)
# uptime: because it's my server, # it's my problem — and I like it that way.

POST /contact

Let's talk

Looking for backend and cloud engineering roles. If you're building things that need reliable APIs and someone who understands the infrastructure underneath them, I'd like to hear from you.