Building systems that are fast, secure, and actually ship.

Background

I am a software engineer who builds backend systems, AI-powered applications, and scalable SaaS products. My core is Node.js, Python, and modern JavaScript — but what I actually do is take complex business requirements and turn them into practical software: multi-tenant architectures, RESTful and event-driven APIs, LLM pipelines, cloud infrastructure, and security-hardened auth flows.

I am comfortable across the full stack — from React frontends to FastAPI microservices to Dockerized deployments on AWS — but I spend most of my thinking on what sits behind the interface: how data moves, where things break under load, and how to build systems that the next engineer can actually maintain. Integrating machine learning and Generative AI into products is something I do regularly, not experimentally — RAG pipelines, AI agents, LLM evaluation frameworks, and automation tooling that ships to real users.

Beyond the day job, I am genuinely curious about how things work under the hood — distributed systems, large language model internals, software architecture patterns. I explore new technology through writing, side projects, and occasionally going too deep into a rabbit hole to understand something most people treat as a black box.

What I work with

Languages

  • JavaScript / TypeScript
  • Python

Backend

  • Node.js / Express.js
  • FastAPI
  • BullMQ / RabbitMQ
  • WebSockets

AI / LLM

  • LangChain / LangGraph
  • RAG pipelines
  • LLM evaluation
  • Prompt engineering
  • Ollama / Hugging Face

Databases

  • PostgreSQL
  • MongoDB
  • Redis
  • Qdrant (vector DB)
  • Apache Solr

Infrastructure

  • AWS (EC2, S3, Lambda)
  • Docker / NGINX
  • GitHub Actions
  • Linux

Auth & Security

  • OAuth2 / OIDC
  • JWT / sessions
  • SSO / RBAC

How I think

Before I write a function, I am already thinking about what happens when it receives a thousand concurrent requests, what the failure mode looks like, and whether the next engineer can understand it without a Slack message. Scalability and maintainability are not things I bolt on later — they are constraints I design around from the start.

Security is not a phase. I have found NoSQL injection, XSS, and broken authentication in production systems — including ones I built — and I treat finding them early as part of the job, not a post-launch cleanup task.

I also believe that good engineers understand their tools, not just their APIs. I regularly go deeper than the docs — into how LLMs tokenize and attend, how databases plan queries, how distributed systems reach consensus. That kind of understanding tends to surface in the decisions that matter most.

Get in touch

I am open to conversations about interesting problems, collaboration, or just talking shop about LLMs and distributed systems.