AVAILABLE FOR WORK BASED IN THE UNITED STATES REMOTE & CONTRACT

Choose a developer who owns the whole thing

The full-stack developer who ships

Web applications, APIs and interfaces — built end to end, deployed and maintained. Frontend, backend and the bit in between.

Talk to the developer directly — no agency in between

Abhinav Koriginja, software developer
ABHINAV KORIGINJA Software Developer · United States
  • FULLStack — frontend,
    API and deploy
  • 1:1You talk to the
    developer, always
  • USBased in the
    United States
  • Web applications
  • REST & JSON APIs
  • Database design
  • UI engineering
  • Deployment
  • Performance work

Quick. Clear. No jargon.

Send a short description of the problem — I'll tell you honestly whether I'm the right person for it.

GET IN TOUCH

What I do

Six things I'm useful for

Not a menu of everything — the work I do well and would take on tomorrow. If what you need isn't here, I'll tell you rather than learn it on your budget.

Web applications

The whole thing, front to back — screens, state, the API they talk to, and the database underneath. Built as one system rather than a frontend bolted onto someone else's backend.

APIs & integrations

REST endpoints that are predictable to consume, and the glue between services that were never designed to talk to each other. Documented enough that the next person doesn't have to read the source.

Interfaces that hold up

Responsive, keyboard-navigable, and readable on a bad screen in daylight. Accessibility handled while building, which costs nothing, rather than retrofitted afterwards, which costs a lot.

Data modelling

Schema design that fits how the business actually works. Most performance problems and half of all bugs start as a data model that didn't match reality — worth getting right early.

Making it faster

Profiling before optimising. Slow pages usually come from a handful of specific causes — an N+1 query, an unindexed lookup, a bundle nobody split — and those are findable rather than guessable.

Getting it live

A deploy that's one command and reversible, sensible environment handling, and logs you can actually search. Code that only runs on my machine isn't finished.

The toolkit

Tools, not identity

What I reach for by default. I'd rather pick the boring option that fits the problem than the interesting one that fits my résumé — and I'm happy in an unfamiliar stack when there's a reason for it.

Languages

  • JavaScript
  • TypeScript
  • Python
  • SQL
  • HTML
  • CSS

Frontend

  • React
  • Next.js
  • Tailwind
  • Vite
  • Responsive design
  • Accessibility

Backend

  • Node.js
  • Express
  • REST APIs
  • Authentication
  • Background jobs

Data

  • PostgreSQL
  • MongoDB
  • Schema design
  • Indexing
  • Migrations

Tooling & ops

  • Git
  • Linux
  • Docker
  • CI pipelines
  • nginx
  • Testing

Deeper in some of these than others — ask and I'll tell you honestly which is which.

Selected work

Recent builds

A few things I've built, what the problem was, and what I actually did about it.

This section is waiting on real content

Rather than fill it with invented case studies, it stays empty until there's something true to put here. Projects are added and published from the admin dashboard, and appear here the moment they go live.

ASK ME WHAT I'VE BEEN BUILDING

Read the code before rewriting it. Ship something small, then iterate. Leave it easier to change than I found it.

Abhi — how I work

How I work

Small steps, visible early

Long silent stretches are where projects go wrong. You should be able to see the thing moving every week, and change your mind while changing it is still cheap.

Understand

What the software is for, who uses it, and what breaks today. The brief and the actual problem are rarely identical.

Shape

The smallest version worth building, with the data model sketched first — it's the part that's expensive to change later.

Build

In slices you can look at, not one long reveal. Each slice runs somewhere you can click it.

Harden

Edge cases, error states, and the boring paths — bad input, dropped connections, the second user. Then deploy.

How I think about it

Four things I hold to

Read first

Existing code usually has a reason. Understand it before replacing it.

Write it down

A comment explaining why saves the next person an hour of archaeology.

Handle the sad path

The happy path is the easy half. Failures are what users remember.

Say what's true

An honest "I haven't done that" beats a confident guess, every time.

Get in touch

Tell me what you're building

A short description of the problem is enough to start. If I'm not the right person for it, I'll say so — and where I can, point you at someone who is.