krishiv@portfolio ~ $

$ whoami

Krishiv Goel

$ cat about.txt

Self-taught systems programmer and web developer. I started with Windows batch scripts, moved to Python, and landed in C++ - where I've stayed. I build things at the low level: engines, renderers, emulators, parsers, tools. I also built elvinnn.com from scratch - no framework, no CMS, just vanilla HTML, CSS, and JavaScript.

$ cat skills.txt

C++ Python HTML & CSS JavaScript OpenGL Systems Programming Graphics Reverse Engineering Algorithms Content Writing

$ ▋

Krishiv
Goel

Systems programmer & web developer.
I build from scratch - low-level engines to full publishing platforms.

Krishiv Goel - C++ Systems Programmer and Web Developer

Built From Scratch

GLIM - Graphics Layer & Interactive Middleware

A C++ framework built on top of OpenGL that makes the boilerplate disappear. A Window handles creation, input, vsync, and frame timing in one constructor call. A Shader loads, compiles, and links from two file paths - and its templated SetUniform picks the right GL call automatically. A VertexArray eliminates all stride and offset math: just call PushLayout<type>(count) per attribute.

Full collision detection across 12+ shapes with every cross-type Intersects() pair implemented. Camera3D, input, clock, profiler, SSBO, textures - single framework for both 2D and 3D. The long-term goal: a complete, sellable game development toolkit.

C++ OpenGL Framework WIP
Super Mario Bros NES clone in C++ - pixel-accurate rendering with authentic physics
C++  ·  Reverse Engineering  ·  NES

Super Mario Bros - Authentic Clone

Not a remake - a behavioral reconstruction. The goal: if a speedrunner or TAS author can do it on real NES hardware, they can do it here.

Collision uses interaction points pulled directly from the original NES assembly, not hitboxes. Level maps are parsed at runtime from the actual ROM's 2-byte object format - the same data Nintendo shipped in 1985. Mario's physics are reverse-engineered frame by frame. Every intentional bug - the Minus World, the flagpole glitch, timing-dependent micro-quirks - is preserved exactly.

TAS support with deterministic frame-perfect input playback. Frame advance for stepping through the game one frame at a time, exactly like FCEUX.

C++ Reverse Engineering NES Physics
Chess engine built in C++ with minimax algorithm and move generation
C++  ·  AI  ·  UCI

Chess Engine

A UCI-compliant chess engine written from scratch in C++, rated approximately 2300 on Lichess. But strip the engine out entirely - what remains is a fully polished chess application.

Two players can play against each other on the same computer, with arrow marking, sound effects, and FEN save/load for resuming any position. The kind of quality-of-life features that separate a finished product from a tech demo.

C++ UCI AI Algorithms
CHIP-8 emulator and assembler toolchain built in C++
C++  ·  Emulation  ·  Compilers

CHIP-8 Toolchain

Not just an emulator - a complete toolchain. Three programs that form a closed loop: an emulator that runs any CHIP-8 ROM, a decompiler that converts the binary into a readable assembly-like format, and a compiler that converts it back.

The roundtrip is lossless - compile → decompile → compile produces byte-for-byte identical output. Getting there required hours of raw hex comparison and manual instruction tracing to find a critical encoding inconsistency that caused silent data loss.

C++ Emulation Compiler Assembly
Mathematical graph plotter built in C++ with real-time expression parsing
C++  ·  Parsing  ·  Math

Graph Plotter

A lightweight interactive 2D graph plotting application written in C++. Supports standard function graphs (y = f(x)), inverse-style graphs (x = f(y)), and fully parametric equations. Built for exploring mathematical behaviour visually.

Multiple equations can be rendered simultaneously with smooth panning, zooming, and live previews while typing. Each graph supports custom mathematical domains - including expression-based ranges like { -2 * pi <= x <= 2 * pi }.

C++ Parsing Math Graphics
Custom POSIX-style shell built in C++ with tab completion and piping
C++  ·  Systems  ·  Cross-Platform

Custom Shell

A full POSIX-style shell built from scratch in C++, running on both Windows and Unix. OS-specific code is abstracted into a clean platform layer with separate implementations per system.

Full tokenization with edge cases handled. PATH search and execution, pipes (|), redirects (> >> 2> 2>>), and persistent .shell_history. Tab completion required writing a custom ReadLine from scratch - handling raw terminal mode, LCP resolution, double-tab listing, cursor movement, and word-jump navigation entirely by hand.

C++ Systems Cross-Platform Terminal
Native C++ text editor with file explorer, tabs, and minimal resource usage
C++  ·  Native  ·  WIP

Text Editor

A native VSCode-style editor built in C++. The motivation is concrete: VSCode runs on Electron - a VM on a VM - and on older hardware it shows. This editor is built natively for minimal resource usage.

Already working: file explorer with tree view, file tabs, image preview, full text editing with auto-indent, auto-brackets, comment toggle, and scrolling. The undo/redo system stores individual actions rather than full file snapshots - keeping memory usage minimal regardless of file size or edit history.

The plan is to ship it and use it daily - forcing features to earn their place through real use rather than speculation.

C++ Native Editor Performance
Isometric procedural terrain generator in C++ with real-time noise parameter controls
C++  ·  Rendering  ·  Procedural

Isometric Terrain Generator

A 3D procedural terrain renderer that projects a voxel world into isometric view using manual coordinate transformation - built before diving into proper 3D rendering techniques.

A side panel of live sliders controls noise parameters; the terrain updates in real time. Includes sky gradient and star rendering. A visibility map skips occluded tiles, and frustum culling skips off-screen geometry.

C++ Procedural Isometric Noise

// other explorations

Making Complex Things Approachable

I built elvinnn.com from scratch - the platform, the design, the tooling. I also write there. My pieces range from technical deep-dives to explorations of how people think and behave.

Technology

Behind Elvin - My Tech Journey and the Tools I Use Daily

I've spent years building custom tools for problems I made up. Here is how those useless projects taught me to solve a real problem for my writer friends.

Read article →
Technology

Backpropagation: How a neural network learns from its mistakes

A beginner's guide to backpropagation and gradient descent.

Read article →
Technology

How Do Neural Networks Learn?

A beginner's guide to AI and the brain - exploring neural networks and AI architecture.

Read article →

Let's Talk

Whether you're looking for a developer, a collaborator, or just want to talk about low-level systems - my inbox is open.