Nikhil

@Nikhil-Gautam-dev

Backend Engineer building scalable APIs, distributed systems & developer tools

Commit activity

3 commits in the last 30 days

longest streak 1 day

171 / 400 XP229 XP to maintainer

Hey, I'm Nikhil ๐Ÿ‘‹

Backend Engineer ยท Builder ยท Curious about how things work

I started writing code because I wanted to make things.

Then I started asking questions.

How does a browser talk to a server? What actually happens to the data? What happens when multiple users change something at the same time? How do you protect data that shouldn't even be visible to the database?

Most of my repositories are basically the trail of those questions.


Table of Contents


๐Ÿงญ The journey

small programs
      โ”‚
      โ–ผ
web applications
      โ”‚
      โ–ผ
backend & APIs
      โ”‚
      โ–ผ
real-time systems
      โ”‚
      โ–ผ
open source
      โ”‚
      โ–ผ
security & encryption
      โ”‚
      โ–ผ
systems & developer tools

๐Ÿชด 2024 โ€” I started by making things

My first projects were small.

A game. A calculator. A few web experiments.

Nothing fancy.

I was mostly trying to answer one question:

"Can I build this myself?"

A few of those early experiments:

๐ŸŽฎ Tic-Tac-Toe ๐Ÿงฎ Calculator ๐Ÿฑ Cat Facts


๐ŸŒ Then I discovered applications

Eventually, small experiments weren't enough.

I wanted to build things where multiple pieces had to work together.

That's where Connectify came in.

Frontend. Backend. Database. APIs.

Suddenly, writing code wasn't enough.

The pieces had to communicate correctly.

โ†’ Connectify Frontend โ†’ Connectify Backend


โš™๏ธ Then backend became interesting

The more applications I built, the more interested I became in the part users don't see.

Requests.

Data.

Authentication.

Business logic.

Performance.

And eventually:

"Why is this request taking 2 seconds?"

That's when backend stopped being just another part of the application and became the thing I wanted to understand deeply.

โ†’ AI Chat Backend โ†’ Chat App


๐Ÿ”„ Then I started thinking in real time

Request โ†’ response was only the beginning.

I wanted to understand what happens when systems need to communicate continuously.

That led me toward WebSockets, synchronization and eventually message brokers.

Projects like SketchSync and Encora came out of that curiosity.

โ†’ SketchSync โ†’ Encora


๐ŸŒ Open Source

At some point I stopped building only inside my own repositories.

I started fixing things in projects built by other people too.

๐ŸŸข Puter

PR #1463 โ€” Update Norwegian Nynorsk translations

Merged into HeyPuter/main.

I updated the incomplete Norwegian Nynorsk translation, added missing keys, followed the project's conventions, and validated the changes.

โ†’ View PR #1463

๐ŸŸข Realtime Collaborative Code Editor

PR #15 โ€” Fix theme change resetting editor content

Changing the editor theme was causing the application to reload and reset the user's code.

I fixed the theme handling so users could change themes without losing their current work.

โ†’ View PR #15

2 merged PRs. Different projects. Different problems.

That's one of the things I like about open source โ€” you don't control the whole codebase, so you have to understand the system before changing it.


๐Ÿ” Then security became a rabbit hole

Building APIs taught me how to move data around.

Security made me ask:

"What if the database itself shouldn't be able to read some of this data?"

That question eventually led me to MongoDB Client-Side Field Level Encryption.

Instead of implementing it separately in every application, I built:

Mirage Encryption

A TypeScript utility library for MongoDB CSFLE with automated key and schema management and support for multiple KMS providers.

โ†’ Mirage Encryption

And then I built something with it.

TodoCrypt

A small application demonstrating what happens when application data is transparently encrypted at the database layer.

โ†’ TodoCrypt

       MIRAGE ENCRYPTION
          reusable layer
                โ”‚
                โ–ผ
            TODOCRYPT
          actual usage

๐Ÿ”’ Real-time + Encryption

That curiosity also turned into Encora.

A real-time chat platform combining:

  • WebSockets
  • RabbitMQ
  • MongoDB
  • Web Crypto API
  • ECDH P-256
  • AES-256-GCM

The interesting part wasn't just making a chat application.

It was figuring out how all the pieces fit together.

โ†’ Encora


๐Ÿ–ฅ๏ธ Sometimes I just build tools for myself

Not everything needs to be a web application.

I wanted a terminal-first notes and reminder tool that I could actually use.

So I built Nikki.

SQLite. CLI. Background daemon. systemd. Notifications.

Small project.

Very useful.

โ†’ Nikki


๐Ÿ”ฌ Physics โ†’ Software

Before all of this, there was physics.

Some of my projects started as attempts to turn physics concepts into interactive software.

โ†’ Optical Fiber Simulation โ†’ PhysXplore

Physics taught me to be curious about what's happening underneath the surface.

Software gave me another place to apply that curiosity.


๐Ÿง  What I'm interested in now

I'm increasingly interested in the problems underneath applications:

Distributed Systems Backend Architecture Databases Networking Security Message-Driven Systems Linux & Infrastructure

I like taking an abstraction apart just to see what's underneath it.


Currently building, learning & breaking things

backend systems
distributed systems
database internals
networking
security
infrastructure

Find me elsewhere

Portfolio ยท LinkedIn ยท daily.dev


I usually don't start a project because I know how to build it.

I start because I want to know how it works.

Nikhil-Gautam-dev/README.md on GitHub