~/priyanshu-kumar-singh · backend & systems

PRIYANSHU KUMAR SINGH

Backend & systems engineer-in-training. I build things that stay fast on small machines — containers, kernels, queues, and everything between the syscall and the status code.

Dehradun, IN  ·  BCA ’27 @ DIT  ·  open to internships & new-grad SDE roles

0rps sustained
0p95 latency
0requests served
0leetcode solved
priyanshu@dehradun: ~/portfolio
$
$ cat about.md

Systems-minded, backend-first

──────────────────────────────────

I’m a backend & systems-focused developer doing my BCA at Dehradun Institute of Technology (expected May 2027). I like the parts of software most people treat as plumbing: process lifecycles, file descriptors, memory limits, TLS handshakes — and what actually happens when you run five services on a 1 GB VM.

Most of what I build is shaped by constraints. I squeezed a FastAPI + Redis + Celery + PostgreSQL stack onto a single tiny Azure VM, sandboxed untrusted code in Docker, and kept it responsive at 81+ RPS with 11ms p95 across 51K+ requests.

When I go lower level, I write shells in C — fork(), execvp(), dup2() — track every heap allocation by hand, and read the man page before the Stack Overflow answer.

neofetch
priyanshu@dehradun

hostDehradun Institute of Technology
degreeBCA · expected May 2027
baseDehradun, Uttarakhand, IN
stackPython · JavaScript · C
focusbackend · systems · infra
kernelcuriosity (rolling release)
shellabyss — hand-rolled, in C
uptimeshipping under constraints
$ apt list --installed

The toolchain

Everything below has been used in a real build — not just watched in a tutorial.

┌─[ languages ]─┐

PythonJavaScriptC

┌─[ backend ]─┐

FastAPINode.js

┌─[ databases ]─┐

PostgreSQLRedis

┌─[ systems & infra ]─┐

LinuxDockerDocker ComposeAzureNginx/CaddyCelery

┌─[ networking & security ]─┐

HTTP/HTTPSSSL/TLSDNSCORSJWT/JWKS

┌─[ frontend ]─┐

Next.jsReact.jsTailwindCSS
$ ls ./projects --sort=impact

Selected builds

Two projects, read top to bottom: one runs a full production-ish stack on a 1 GB VM, the other lives one syscall above the kernel.

01

Containerized Code Execution Platform

FastAPI · Next.js · Docker · Redis · Celery · PostgreSQL
0rps sustained
0p95 latency
0requests
0concurrent sandboxes
1 GBtotal vm ram · zero oom kills
// architecture
Next.js client (Vercel) Caddy · reverse proxy Let's Encrypt TLS + NSGs FastAPI JWT → JWKS verify Redis task queue PostgreSQL jobs · state Celery workers exec jobs Docker sandbox per-container CPU / mem limits state polled back: QUEUED → RUNNING → SUCCESS / ERROR
// load test · p95 ≈ 11ms across run
81 rps 0 51K req →

A full stack on 1 GB of RAM

Deployed the containerised execution backend on an Azure Ubuntu VM with 1 GB RAM; configured custom swap space and Docker Compose so FastAPI, Redis, Celery and PostgreSQL coexist under memory pressure — the box handles 50+ concurrent sandboxed submissions without a single OOM kill.

HTTPS-only, end to end

Put Caddy in front as the reverse proxy with automated Let’s Encrypt SSL/TLS and locked Azure NSGs to HTTPS-only routing. Tracked down and resolved the CORS and Mixed Content breakage between the Vercel-hosted frontend and the Azure backend.

Isolation by containers

Designed the execution model around per-container CPU/memory limits and Docker-based process isolation, so hostile or buggy submissions can’t touch the host — or each other.

Off the event loop

Used Redis + Celery to offload execution tasks from the FastAPI event loop; submissions become queued jobs instead of blocking coroutines, keeping the API responsive under load.

Zero-trust entry

Validated JWTs against an external JWKS endpoint before processing any execution request — unauthenticated traffic is blocked at the door.

State you can watch

Built a long-polling Next.js client that streams container state transitions into a React terminal UI, with adaptive polling intervals to keep server load down. QUEUEDRUNNINGSUCCESS/ERROR

The receipts

Sustained 81+ RPS with 11ms p95 latency across 51K+ requests on a constrained 1 GB Azure VM — by decoupling heavy execution work through Redis and Celery.

02

Abyss Shell

C · Linux Kernel API · POSIX
0memory leaks
0segfaults
0repl test iterations
2phase tokenizer
// pipeline internals
stdin → cat notes.txt fd[2] grep TODO fd[2] wc -l → stdout fork() · pipe() · dup2() · execvp() · waitpid()
// live repl demo
./abysh

A shell, from syscalls up

Built a Unix shell in C using fork(), execvp() and waitpid() for process creation, execution and lifecycle management across a persistent REPL.

Pipelines, not just commands

Implemented multi-pipe command execution for chained pipelines, dynamically managing file descriptors and IPC across child processes.

Redirection: > and >>

Added I/O redirection via dup2() and open(), supporting both > (overwrite) and >> (append) modes.

A tokenizer that doesn’t lie

Wrote a two-phase tokenizer to handle nested pipe contexts where strtok caused state collisions — parsing that survives real input.

Valgrind-clean

Zero memory leaks and zero segfaults across 500+ REPL test iterations; every heap allocation tracked and freed manually.

$ cat education.log

Education

──────────────────────────────────

expected May 2027

Bachelor of Computer Applications (BCA)

Dehradun Institute of Technology — Dehradun, India
// relevant coursework
Data Structures & Algorithms System Programming OS Internals Computer Networks
$ leetcode --stats

Problem solving

Pattern recognition is a muscle. These are the reps.

0+
problems solved · in python
✓ NeetCode 150 —  full set completed

Including the complete NeetCode 150 — arrays, trees, graphs, dynamic programming and sliding window.

// coverage
  • [✓]Arrays & Hashing
  • [✓]Trees
  • [✓]Graphs
  • [✓]Dynamic Programming
  • [✓]Sliding Window
$ ./reach_out.sh

Let’s build something

Hiring a fresher who reads man pages for fun and ships under constraints? Ping me.

Dehradun, Uttarakhand · open to internships & new-grad backend/SDE roles · relocatable & remote-ready.

$ mail -s "opportunity" pksingh.backend@gmail.com