Skip to content

Open to remote roles · Full-time or contract · Available immediately

Manish Kumar Singh

Backend engineer · Full-stack · LLM systems

I build backends that hold up in production: search across millions of products, payment flows that record every payment exactly once, and LLM features inside real client products. I ship the frontends on top of them too, in Next.js and SvelteKit. Remote for US and Canadian teams since 2025.

Based in India · Available 9:30 AM–7:30 PM UTC (UK/EU and US East overlap)

~/currently
status:
open to remote roles
role:
backend · full-stack · AI
hours:
9:30 AM–7:30 PM UTC
overlap:
UK/EU and US East
joining:
immediately
products searched in under a second
Millions
Gun Made
PageSpeed after the SvelteKit rebuild
60 → 90
Gun Made
top-5 retrieval hit rate
90% → 100%
Repo LLM
students using Daftaar
About 30
Live on Telegram
DSA problems solved on LeetCode
400+
View profile

01Experience

Experience

Where I've worked and what I shipped there.

BrightPathDigital

Software Developer · Full-time contract

Sep 2026 – nowRemote · Canada

Full-stack and AI product development for multiple client platforms.

Silent production bug, fixed

An overloaded single-worker Celery renderer was shipping personalized cards without customers' handwriting, with no error raised. I traced it and fixed it with HTTP 425 + Retry-After holds, backoff retries (3 → 8) and corrected timeouts.

CeleryFastAPIRedis

AI card editor services

FastAPI services for mask- and point-targeted AI image edits, handwriting transcription, vision-model photo placement, and version history with restore.

FastAPILLMsVision models

LLM news-publishing pipeline

Pilot

Running on a pilot site and built to scale to 30 sites: verified source quotes, per-call AI cost budgets, and lock-guarded, retryable jobs.

Next.jsSupabaseGemini

Bilingual e-learning platforms + a payments fix

Two English/Arabic (RTL) e-learning platforms. I found Stripe webhook signatures were never verified in production (a global JSON parser consumed the raw body first), fixed it, and made payment recording idempotent.

Next.jsExpressSupabaseStripe

Also shipped: CMS SEO management with EN/ES/FR metadata and a publish gate, and an event-grouped audit history (55 tests across both).

Gun MadeBrady's Blogs LLC

Software Developer · Full-time contract

Apr 2025 – Apr 2026Remote · United States

Software developer on a high-traffic US e-commerce marketplace. Owned the search, the edge API and two frontend rebuilds, across four repositories.

Product search

Elasticsearch search with fuzzy matching and around two dozen filters, over a catalog of millions. Results in under a second.

ElasticsearchTypeScript

SvelteKit rebuild

Rebuilt the site SSR-first with 30+ reusable components and proper SEO. PageSpeed went from 60 to 90.

SvelteKitSEO

Svelte 5 rewrite and store locator

Five new product categories, plus a DynamoDB-backed Mapbox map of dealers across the US that brands can embed on their own sites.

Svelte 5MapboxDynamoDB

Edge API

One Cloudflare Worker that every frontend reads from, serving the old and new databases while we moved over.

Cloudflare WorkersPostgreSQL

Django CMS and price sync

A Django/DRF CMS and a Celery price/stock sync with batched SQL.

DjangoCelerySQL

Freelance

Full-Stack Developer · Independent client work

Apr 2026 – nowRemote

Shipped two client websites solo, from code to domain to Google indexing.

Whatbytes

Frontend Intern (Jul–Sep 2024) → Full-Stack Intern (Sep 2024 – Apr 2025)

Jul 2024 – Apr 2025Bengaluru, IndiaCertificate

My first real job. I worked on client projects in whatever framework the client was already using, and on a Django backend with Stripe payments. Led an intern pod across multiple clients and interviewed incoming interns.

Frontend for clients

Built and shipped sites in Next.js, Svelte and Angular for LoginRadius and EnrichlyHealth.

Next.jsSvelteAngular

Django and Stripe backend

Built the Django backend for InPixr with S3 for storage and Stripe for payments. Successful transactions went up 25%.

DjangoStripeAWS S3

Dr. A.P.J. Abdul Kalam Technical University

B.Tech, Electronics · Prayagraj, Uttar Pradesh

Sep 2021 – Jun 2025

02Case studies

Problems I've solved

Problem, root cause, fix, result. The short version of each, with the detail one click away.

BrightPathDigital

Cards shipping without the customer's handwriting

Problem

Delivery quietly served old artwork when a background render failed, so recipients got cards missing their personal content, and nothing raised an error.

Root cause

  • A 12-card checkout started 12 render jobs at once against a single-worker renderer with no queue: 429s, then a crash from memory pressure.
  • 5 jobs used up a ~10s retry budget, and recovery never retried failed jobs.
  • A Celery time limit (30s) vs HTTP timeout (60s) mismatch killed slow renders partway through.

Fix

  • Delivery holds with HTTP 425 + Retry-After instead of serving incomplete content; recipients see an "almost ready" page that polls.
  • Retries went 3 → 8 with backoff, and render jobs got their own time limits.
  • Fixed a global exception handler that dropped response headers, restoring WWW-Authenticate on 401s.

Result

Incomplete cards are no longer served silently.

CeleryFastAPIRedis

BrightPathDigital

Stripe webhooks that were never verified

Problem

Webhook signature checks were silently disabled in production.

Root cause

A global JSON body parser consumed the raw request body before the signature check could read it.

Fix

  • Verify against the raw body.
  • Payments are recorded by both the webhook and the checkout return page, but only once (idempotent), preventing duplicate records and admin emails.

Result

Verified end-to-end with Stripe test-mode payments.

StripeExpressSupabase

Gun Made

One API, two databases, mid-migration

Problem

Data was moving from a legacy PostgreSQL database to a newer Aurora cluster while the frontends kept running.

Fix

  • One Cloudflare Worker over two Hyperdrive bindings served the legacy PostgreSQL and the newer Aurora cluster at once.
  • Stored-procedure-backed REST endpoints behind it.

Result

Every frontend read through one API while the data moved over.

Cloudflare WorkersHyperdrivePostgreSQL

03How I work

How I work remotely

  • UK/EU and US East overlap

    Available 9:30 AM–7:30 PM UTC, overlapping UK/EU and US East working hours.

  • Fast ramp-up

    Merged 14 PRs and reviewed 14 teammate PRs in my first 3 weeks on an unfamiliar FastAPI + Next.js codebase.

  • Tested work

    103 tests on Daftaar, and 55 tests across two CMS features at BrightPath.

  • Code the next developer can follow

    I care a lot about the next developer being able to follow what I wrote.

04Projects

Projects

Things I built on my own to learn how they work, and two client sites I shipped solo.

Students sign up in chat with their date of birth, qualification, field of study and home state. An hourly pipeline collects recruitment notices, a rules-based parser handles them first, and only low-confidence results go to an LLM. The matching engine answers MATCH, MAYBE or NO, so incomplete data never wrongly rules anyone out. Runs for $0 a month on Oracle Cloud's free tier.

Read the case study
Parsed without an LLM
60% of notices
Home state found
130 of 135
Repeat crawl cost
2 requests total
Answers
MATCH, MAYBE or NO
Tests
103
PythonDjango 5SQLitepython-telegram-bothttpxselectolaxClaude / Groq / GeminipytestOracle Cloud
Open the bot on TelegramPrivate repo, happy to walk you through it
jobs/matching.py
# each notice has its own reference date,
# that's why we store the DOB and not the age
ref   = job.age_as_on or job.apply_end or today
age   = age_on(user.dob, ref)
relax = relaxation_for(user.category)      # OBC +3, SC/ST +5

if age > job.max_age + relax:
    return Verdict.NO, [f"age {age} is above the limit"]
if age > job.max_age:                      # in, but only just
    reasons.append(f"qualifies only with {user.category} relaxation")
Read the case study
Read the case study

05Open source

Open source

Two of my fixes were merged into mloda, an open source data access framework for AI and ML.

mloda-ai/mloda

Open Data Access for AI and ML. Plugin based, traceable and framework agnostic.

78stars
41forks
Merged18 Aug 2026
#1176

Decline instead of rescanning when a file hint fails a reader's predicate

When a reader got a file hint it didn't own, it threw the hint away and rescanned everything, so it could end up reading a different file than the one the caller asked for. Now ReadFile and ReadDocument just decline, and the caller's choice sticks.

+41−23 files
  • mloda_plugins/feature_group/input_data/read_file.py
  • mloda_plugins/feature_group/input_data/read_document.py
  • tests/.../test_data_access_handle_hint.py
Merged17 Aug 2026
#1152

Normalize Windows path handling in read_context_files and its tests

Four test failures that only showed up on Windows. All of them came from backslashes being read as escape characters instead of path separators. Fixed with raw strings, as_posix() and re.escape().

+7−44 files
  • mloda_plugins/feature_group/input_data/read_context_files.py
  • tests/test_docs_fences.py
  • tests/.../test_read_context_files_file_paths_filtering.py
  • tests/.../test_read_dbs/test_sqlite.py

06Stack

Stack

What I work with, roughly grouped.

Backend

  • FastAPI
  • Django
  • DRF
  • SQLModel
  • Alembic
  • Celery
  • Node.js / Express
  • Gin
  • REST APIs

AI / LLM

  • RAG
  • MCP
  • Tool calling
  • ChromaDB
  • BM25
  • Hybrid retrieval
  • Reranking
  • Claude
  • Gemini
  • Groq

Data & Infra

  • PostgreSQL
  • Elasticsearch
  • Redis
  • Supabase
  • Docker
  • AWS (S3, DynamoDB)
  • Cloudflare Workers
  • Git

Languages

  • Python
  • TypeScript
  • JavaScript
  • Go
  • SQL

Frontend

  • Next.js
  • React
  • SvelteKit
  • Svelte 5
  • Tailwind

AI dev tools

  • Claude Code
  • OpenAI Codex

Fundamentals

  • Data Structures & Algorithms
  • System Design
  • DBMS
  • OOP

07About

My story

How I got into this, the short version.

Manish Kumar Singh, Backend Engineer

Open to remote roles

Manish Kumar Singh

Based in India · Available 9:30 AM–7:30 PM UTC (UK/EU and US East overlap)

Open to remote rolesSend me the role · replies within a day
  1. the crt erachildhood

    My dad brought home a CRT computer and I was hooked.

    Games, PowerPoints with far too many animations, and LOGO, where I made a little turtle draw squares over and over. REPEAT 4 [FD 100 RT 90] was the first program I ever wrote, and I still remember how cool that felt.

  2. whatbytes2024 to 2025

    Joined knowing React. Left knowing a lot more.

    The steepest learning curve I've had: Next.js, Django, Node, AWS, Angular, whatever the client was already using. By the end I was interviewing new interns and leading a small pod across a few clients, while still an intern myself.

  3. gun made2025 to 2026

    From building features to keeping things fast at scale.

    On a busy US marketplace the question stopped being "does it work" and became "will it hold up at 3am with real traffic". I kept search under a second across millions of products and ended up owning four repos and the API in front of them.

  4. brightpathdigital2026 to now

    Remote, on someone else's codebase.

    I work remotely for a Canadian consultancy across multiple client platforms. I learned an unfamiliar FastAPI and Next.js codebase and was shipping into it within weeks. Since then I've traced a silent production bug where cards were shipping without customers' handwriting.

  5. on the sidenow

    On the side, I build my own things.

    Daftaar, my Telegram bot for government job eligibility, is live with about 30 students. I've also shipped two client sites solo, from the code to the domain to getting them on Google.

I'd rather find the bug nobody noticed than ship the feature nobody asked for.

08Contact

Hiring?

Send me the role and I'll reply within a day. Remote, full-time or contract, available immediately.

Phone
+91 91981 71021

Based in India · Available 9:30 AM–7:30 PM UTC (UK/EU and US East overlap)

Message me on WhatsApp

Open to remote roles · Replies within a day

Goes straight to my inbox.