About

Hi, I'm Salman Khandakar.

A Python developer and AI engineer who builds systems that stay stable under load.

I help businesses solve real problems through digital transformation — delivering practical, dependable solutions across web, cloud, and AI platforms.

I have four years of software engineering experience in production, Over that time I've built SaaS products for construction and manufacturing companies, trading and stock market platforms, and compliance-driven systems for healthcare and education — each with its own rules for what "reliable" actually means.

What stays constant is the discipline: systems that don't break under load, and instrumentation that tells you why before a customer has to. Alongside that, I build the growth-focused tools— automations, dashboards, integrations — that help businesses scale once the core platform is solid.

That discipline shapes how I work. is what I bring to AI engineering. I'd rather read logs until the actual cause turns up than guess and redeploy. A lot of my best fixes have been one line long and taken two days to find — and I've made peace with that trade.

I'd rather ship a boring, well-instrumented service than a clever one nobody can debug at 2am. Clever code is a loan against your future self.

Right now I'm putting that same discipline into AI engineering — retrieval, agents, and evaluation — so LLM features arrive as measurable software instead of a demo that worked once on a good day.

Currently

  • Running a multi-tenant SaaS platform on AWS, end to end
  • Building retrieval and agent systems with measured evaluation sets
  • Reading more infrastructure post-mortems than is strictly healthy
  • Open to freelance backend and AI engineering work

How I work

Four things I've learned the hard way.

Debugging

Find the cause, not a workaround

Restarting the service fixes today. Reading the logs until you understand why it broke fixes the next six months. I'd rather spend the extra day.

State

Assume more than one process

Anything held in memory belongs to one worker only. Caches, connections, counters — if it needs to be shared, it goes in Redis or the database, not a variable.

Measurement

A number beats an adjective

"Improved the search" means nothing. "Retrieval accuracy went from 61% to 84% on a 30-question set" is something you can act on and I can defend.

Handover

Write it down while it's fresh

Every fix gets a note explaining what broke and why. Documentation written a month later is fiction — you've already forgotten the part that mattered.

Background

How I got here.

2025 — now

Python developer | AI engineering

Building retrieval systems, structured extraction, and tool-using agents on top of the same web Frameworks foundations — with evaluation sets and cost tracking treated as part of the feature, not an afterthought.

2024 — 2025

Python developer

Owned the API, background jobs, real-time layer, and deployment for a platform serving isolated customers on their own subdomains and databases. Moved it from a single box to a properly monitored AWS setup.

2023 — 2024

Software engineer | Python developer

API development, database design, and integrations. Learned most of what I know about error handling by being on the receiving end of my own poor error handling.

Stack

Tools I reach for.

Programming Languages

  • Python
  • Golang

Web Frameworks

  • FastAPI
  • Django
  • Flask
  • Gin(go)
  • Pydantic v2

Databases & ORM

  • PostgreSQL
  • MongoDB
  • MySQL
  • SQLAlchemy 2.0
  • Alembic
  • pgvector
  • Amazon RDS

Data & Automation

  • Pandas
  • NumPy
  • Matplotlib
  • BeautifulSoup
  • Playwright
  • Celery + Beat

AI Tools

  • Claude & OpenAI APIs
  • Embeddings + RAG
  • Langchain
  • Deep Agents
  • LangGraph
  • Ollama (local models)
  • Hugging Face
  • OpenCV

Cloud & Infrastructure

  • AWS EC2, S3 buckets
  • Amazon Bedrock
  • Secrets Manager, IAM
  • Docker Compose

Unix & DevOps

  • nginx
  • Git & GitHub Actions
  • Redis
  • Poetry
  • pytest

Say hello

Easiest way to find out if we'd work well together.

Send a short message about what you're building. No form-filling ritual required.