Roshan Raj
B.Tech in Computer Science and Engineering, Indian Institute of Technology (IIT) Bhilai · Expected May 2027
Roshan Raj · B.Tech CSE, IIT Bhilai · expected May 2027
A portfolio in four dimensions
Eight cells, eight stories
Everything here is one object in R⁴. Points are rotated in four dimensions and projected down to three before your screen flattens them to two, and the fourth coordinate is spent on thickness, colour and glow so you can actually see it. A tesseract has exactly eight cubic cells; there are exactly eight things worth telling you. Turn the hypercube to read them.
- 16
- vertices
- 32
- edges
- 8
- cubic cells
- 6
- planes of rotation
- Rotation in R⁴ happens in a plane, not about an axis, and there are six coordinate planes to choose from.
- A double rotation turns two completely orthogonal planes at once, which is something no 3D object can do.
- The glowing core is a quaternion Julia set: scrolling re-cuts the 3-space slice, so its surface changes topology.
Summer Research Intern · Jun – Aug 2026 · S3 Summer Labs, IIT Bhilai · in collaboration with AIIMS Raipur
NISHAD
Screening for anemia from a fingertip video
A low-cost, non-invasive device that estimates hemoglobin from fingertip videos lit by three LED wavelengths. I built its machine learning and embedded software.
- 481
- patients in the dataset
- 91.4%
- anemia sensitivity
- 2.09 g/dL
- mean absolute error
- 3
- LED wavelengths
- Programmed the Raspberry Pi device in Python: GPIO/PWM LED sequencing during 30 fps video capture, and output to an I2C LCD.
- On-device PyTorch inference with a 3-branch residual network, one branch per wavelength.
- Trained models with patient-grouped cross-validation, so no patient appears in both training and validation folds.
- Best model: a Random Forest + LightGBM + XGBoost ensemble on 1,060 features (820 color-histogram and 240 PPG pulse features).
Compilers · Virtual machines · WebAssembly
MiniLang
A compiler, bytecode VM, and browser IDE, built from scratch
A statically typed, C++-style language with functions, recursion, pointers, and vector/queue/stack containers. It compiles to bytecode for my own stack VM, which also runs in the browser through WebAssembly.
- 7,000+
- lines of C++17
- 60
- VM opcodes
- 13
- precedence levels
- 14
- end-to-end tests in CI
- Hand-written lexer and recursive-descent parser with panic-mode error recovery.
- Semantic analyzer with scoped symbol tables and type checking.
- AST optimizer: constant folding, constant propagation, and dead-code elimination.
- Stack VM with call frames, compiled to WebAssembly for a Monaco-based IDE with a step-through debugger for bytecode, stack, and locals.
Distributed Systems Lab · IIT Bhilai
Fault-Tolerant Load Balancer
Zero errors at 2,500 concurrent users on 1 CPU and 512 MiB
A reverse-proxy load balancer in Go, in front of three replicated Go backends and PostgreSQL, running on four containers each capped at 1 CPU and 512 MiB.
- 0
- errors over 60,000 requests
- 2,500
- concurrent users
- 18% → 0%
- error rate, before → after
- 364 MB
- peak LB memory of 512 MB
- Least-connections routing: each request goes to the backend with the fewest in-flight requests, and equal loads take turns.
- Active health checks: a backend is marked down after 3 failed probes and back up on the next success.
- If a backend errors or returns a 5xx before any bytes reach the client, the request is retried on a backend it has not tried yet.
- Backends batch writes to PostgreSQL and pull peer updates every 300 ms using sequence numbers.
Full-stack · Real-time
AlgoRace
Live 1v1 coding races
Two players are paired by ELO rating, get the same problem, and watch each other’s progress live. The first to pass every test case wins.
- 102
- problems
- 1,020
- test cases
- 30
- REST endpoints
- 10 s
- reconnect grace
- Live opponent progress over Socket.IO rooms.
- REST API defined in OpenAPI, with generated type-safe React Query hooks and Zod validators.
- Grading runs generated C++ and Java test harnesses on the Wandbox API.
- Wins and ELO changes settle in one database transaction that allows only one winner; JWT, bcrypt, and rate limiting protect the API.
Open Source Contributor · Jun 2026 · OpenLake, IIT Bhilai · Next.js, TypeScript, Supabase
RateMyCourse
5 merged security and privacy fixes
OpenLake’s course-review platform for IIT Bhilai students. I found security and privacy problems and fixed them.
- #74 · Prevented an open redirect in the /auth/confirm callback (security)
- #73 · Sanitized review comments before writing them to the database (privacy)
- #72 · Moved PBKDF2 anonymization server-side and patched dependency CVEs (security)
- #71 · Removed debug session logging from the browser Supabase client (privacy)
- #70 · Redacted URLs in anonymized reviews with a placeholder (privacy)
What I reach for
From GPIO pins to bytecode to load balancers
Chosen per problem, not per habit
PyTorch on a Raspberry Pi when the model has to run on the device. Hand-written C++ when I want to own the whole pipeline from lexer to VM. Go when the thing has to stay up under load. The through-line is wanting to know how the layer below actually works.
- 350+
- LeetCode problems solved
- 7,000+
- lines of C++17 in MiniLang
- 60
- opcodes in my bytecode VM
- 2nd
- district, Ramanujan olympiad
- Languages: C++, Python, Go, TypeScript, JavaScript, SQL, Bash, C.
- Core CS: Data Structures & Algorithms, OOP, Distributed Systems, System Design, Concurrency, Networking.
- Web & Backend: React, Next.js, Node.js, Express.js, REST APIs, WebSockets (Socket.IO), TanStack Query, Tailwind CSS.
- Databases: PostgreSQL, MongoDB, Supabase, Drizzle ORM.
- Machine Learning: PyTorch, scikit-learn, XGBoost, LightGBM, OpenCV, NumPy, Pandas, Signal Processing.
- Systems & Tools: Linux, Docker, Git, GitHub Actions, WebAssembly (Emscripten), Raspberry Pi, Vercel, Render.
Open to internships and new-grad roles from May 2027
Let us build something
Email is the fastest way to reach me
I am most useful on systems that have to hold up under load: compilers, networked services, anything where the measurement matters as much as the feature. If that is what you are building, I would like to hear about it.
- IIT Bhilai
- B.Tech Computer Science
- May 2027
- expected graduation
- Data Structures & Algorithms
- Operating Systems
- Computer Networks
- Database Management Systems
- Machine Learning
- Probability & Statistics
- Linear Algebra
- Discrete Mathematics
Technical skills
- Languages
- C++, Python, Go, TypeScript, JavaScript, SQL, Bash, C
- Core CS
- Data Structures & Algorithms, OOP, Distributed Systems, System Design, Concurrency, Networking
- Web & Backend
- React, Next.js, Node.js, Express.js, REST APIs, WebSockets (Socket.IO), TanStack Query, Tailwind CSS
- Databases
- PostgreSQL, MongoDB, Supabase, Drizzle ORM
- Machine Learning
- PyTorch, scikit-learn, XGBoost, LightGBM, OpenCV, NumPy, Pandas, Signal Processing
- Systems & Tools
- Linux, Docker, Git, GitHub Actions, WebAssembly (Emscripten), Raspberry Pi, Vercel, Render
Education
B.Tech in Computer Science and Engineering, Indian Institute of Technology (IIT) Bhilai. Expected May 2027.
Coursework: Data Structures & Algorithms, Operating Systems, Computer Networks, Database Management Systems, Machine Learning, Probability & Statistics, Linear Algebra, Discrete Mathematics.
Achievements
- 350+ — LeetCode. problems solved, including 200+ Medium and 20+ Hard, across dynamic programming, binary search, trees, and graphs.
- 2nd — Ramanujan Mathematics Olympiad 2023. rank in Patna district in the Bihar state-level olympiad, among 1,000+ participants.