Skip to content
View swarnika-cmd's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report swarnika-cmd

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
swarnika-cmd/README.md

Swarnika Somvanshi

Backend engineer in the making. I build systems from the protocol up, then measure them and fix what breaks.
Scaler School of Technology · BITS Pilani (CS, 2028) · Bengaluru

LinkedIn Portfolio Email

A real curl -i against my HTTP/1.1 server

☝️ Not a mockup. Every Monday, CI compiles my HTTP/1.1 server, starts it, runs that curl, and re-renders this card from the real response.

📊 Numbers, not adjectives

Benchmark results

Rendered from the benchmark results committed in each repo (bench/results/). Apple M4 Pro, Docker, wrk and k6. Local numbers for comparing designs, not production capacity.

🧱 What I built

Project The interesting part
⚡ HTTP/1.1 Server
Java 21 · raw sockets · 47 tests
A bounded worker pool with 503 load shedding vs virtual threads: keep-alive connections pin platform threads, so virtual threads cut p99 by 12×
🔎 Search Typeahead
TypeScript · SQLite · 67 tests
Precomputed top-K at every trie node makes lookups O(prefix length); the cost is memory, measured at 4.4 GB for 1M terms
🛡️ ShieldWall Gateway
FastAPI · Postgres · Redis · 88 tests
PII masked before it leaves, restored mid-stream across SSE chunks; budgets reserved atomically in a Redis Lua script
🧠 Smarana
Chrome MV3 · FastAPI · pgvector
On-device embeddings and AES-256-GCM, with hybrid search fused by Reciprocal Rank Fusion
🔬 Architecture and the bugs I fixed (click to expand)

⚡ HTTP/1.1 Server

flowchart LR
    C([client]) -->|TCP| A[accept loop]
    A --> Q{{bounded queue}}
    Q -- full --> X[503 + Retry-After]
    Q --> W[platform pool or<br/>virtual threads]
    W --> P[byte parser<br/>Content-Length / chunked]
    P --> H[handlers]
Loading

Fixed with a failing raw-socket test first: a lowercase content-length desynced the connection, a UTF-8 body swallowed the next request, a negative Content-Length dropped the socket, and slow clients could pin every worker.

🔎 Search Typeahead

flowchart LR
    K([keystroke]) --> R{consistent-hash ring}
    R --> S1[(cache shard)] & S2[(cache shard)] & S3[(cache shard)]
    S1 & S2 & S3 -- miss --> T[trie · top-10 per node]
    W([search]) --> B[write-behind buffer] -->|batched txn| D[(SQLite)]
Loading

Fixed 10 bugs, including buffered searches lost at the hour boundary, c++ and c-- colliding in one trie node, and a half-committed batch on a failed flush. A brute-force property test caught a trailing-space bug.

🛡️ ShieldWall Gateway

flowchart LR
    C([client]) --> K[API key · sha256] --> M[mask PII] --> B[Lua budget reserve] --> U[(provider)]
    U -->|SSE| S[unmask across chunks] --> C
    S -. reconcile .-> B
    S -. log .-> Q[[Celery]] --> P[(Postgres)]
Loading

Proved a check-then-act budget race with 50 concurrent requests (the budget fits 7; now exactly 7 succeed). Also fixed placeholder collisions that returned the wrong user's PII.

🌍 Merged

My merged pull requests

Mentored by Naomi Carrigan in the freeCodeCamp × NHCarrigan Summer 2026 cohort.

🧰 Toolbox

Java, Python, TypeScript, Node.js, Express, FastAPI, Next.js, Supabase, PostgreSQL, Redis, SQLite, Docker, GitHub Actions, Git, Bash


This page builds itself: render-profile.yml compiles and curls my server, reads the benchmark files from my repos, and queries the GitHub API for merged PRs. Then render.py (standard-library Python) draws the cards. No third-party stat widgets, so nothing on this page can go down.

Pinned Loading

  1. HTTP-1.1-Server HTTP-1.1-Server Public

    RFC 2616-compliant HTTP/1.1 server built from raw Java TCP sockets. No frameworks.

    Java

  2. Smarana-PrivacyFirstBrain Smarana-PrivacyFirstBrain Public

    TypeScript

  3. DeHype-Unveiling-the-truth-behind- DeHype-Unveiling-the-truth-behind- Public

    JavaScript

  4. AskMyDoc-2.O AskMyDoc-2.O Public

    About Retrieval-Augmented Generation app — upload PDFs, ask questions, get grounded answers with source citations. No hallucinations.

    Python

  5. ShieldWall-Gateway ShieldWall-Gateway Public

    Python