Skip to content
View sayantanmandal1's full-sized avatar

Highlights

  • Pro

Block or report sayantanmandal1

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. Markdown is supported. 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
sayantanmandal1/README.md

About

Software engineer at Honeywell (.NET / C# / React), working end to end across systems programming, backend services and applied AI.

I build the hard version on purpose — a search engine rather than a search wrapper, a VPN rather than a VPN client — and then measure it, because an unmeasured claim is just an opinion.

  • 🔭 Now: Software Engineer @ Honeywell — .NET (C#), React, Kubernetes
  • 🌱 Into: distributed systems, developer tooling, information retrieval
  • 🧩 825+ LeetCode solved (130+ Hard)
  • 🎓 B.Tech CSE, VIT-AP — CGPA 9.03/10
  • 📫 msayantan05@gmail.com

Selected work

Each of these is measured, not described. The numbers below are reproduced by a command in the repo.

project what it is measured result
argus
Java 17 · zero deps
A full-text search engine and a browser rendering engine, from scratch — inverted index, BM25, query DSL, WAL, plus HTML/CSS/layout/paint and a JavaScript interpreter 98.9% of scoring work eliminated by Block-Max WAND with provably identical rankings · 218 tests · durability proven by killing a real JVM with halt(9)
MyVPN
Rust · QUIC · Wintun
Serverless peer-to-peer VPN with NAT hole-punching, full-tunnel routing, kill-switch and DNS-leak hardening Security controls unit-tested, not asserted — injection guard rejects 8 payloads, constant-time proof compare, domain-separated key derivation
chromaforge
C++17 · multithreaded
Colour-grading engine — 3D LUT trilinear, separable convolution, ACES/Reinhard tone mapping, custom thread pool 13.4× separable vs naive 4K blur · white balance 306 → 473 Mpix/s via lookup tables, bit-identical output
GameManager
NestJS · Socket.IO · Expo
Server-authoritative multiplayer framework validated across 45 distinct rulesets, with per-player hidden-state projection and WebRTC voice Crossplay web + Android, per-commit APK from CI
VoiceRep
Python · PyTorch
Consent-aware, watermarked zero-shot voice cloning with an independent verification pipeline Held-out LibriSpeech benchmark with acceptance gates independent of the engine's own score
BitDown
Rust · Tauri · axum
BitTorrent client with DHT/PEX/UPnP and a byte-range HTTP server that streams a file while it downloads Shipped Windows installer, auto-released from CI

Engineering notes

Three things these repos taught me that are worth more than the features:

  • A randomised differential test found a bug no example test could. Argus scored the same document as 6.278620742691458 on one path and ...457 on another — both scorers summed over a PriorityQueue, whose iteration order is unspecified, and floating-point addition is not associative. Rankings were non-deterministic across runs. Fixed by scoring in fixed clause order.
  • Work skipped ≠ time saved. Block-Max WAND eliminates 94.5% of scoring at top-10 but only runs 1.6× faster, because the postings are already in RAM so nothing is saved on I/O. Reporting both numbers is the honest version.
  • A single timing is not a benchmark. On a hybrid P-core/E-core laptop, identical chromaforge runs disagreed by 30–50%. The harness now reports medians across five bursts and prints the spread.

Tech

Java Python C++ Rust C# TypeScript Go

Next.js React Spring FastAPI NestJS

PostgreSQL Redis Docker Kubernetes AWS


Open source

Fixes sent upstream to libraries I use:

  • bytesize (Rust) — fixed f64 precision loss when parsing large byte counts
  • go-humanize (Go) — exact integer parsing in ParseBytes
  • luxon (JS) — reject out-of-range 12-hour values in fromFormat

stats langs



Open to SDE / new-grad roles · 2026

Pinned Loading

  1. AsterixChatBot AsterixChatBot Public archive

    TypeScript 4

  2. LinkedClone LinkedClone Public archive

    TypeScript 5

  3. GameManager GameManager Public

    TypeScript 1

  4. PostBee PostBee Public archive

    TypeScript

  5. BitDown BitDown Public

    TypeScript

  6. flux flux Public

    TypeScript