Niraj Dhakal — Baltimore, MD

Software engineer building production AI systems.

Go · React/TypeScript · PostgreSQL + pgvector · RAG architecture. Shipped multi-tenant infrastructure that real users \ndepend on — not coursework.

16+ mo
production experience
Multi-tenant
AI platform shipped
RAG
pipeline built from scratch
01Selected work

Three builds,  told as engineering stories.

Dogwood Gaming · Production

AI Marketing Platform

problem
A small game studio needed marketing content and competitor intelligence at a cadence no human team could sustain — across multiple tenants, each with their own data.
built
A multi-tenant platform from scratch: Go/Gin backend, React/TypeScript frontend, PostgreSQL with pgvector for semantic search, a Celery/Selenium scraping pipeline feeding competitor data, and LLM inference served locally through Ollama.
outcome
Shipped to real users with end-to-end ownership — architecture, debugging, deployment, and operations. Token-aware generation keeps inference costs predictable while surfacing posting-time and hook insights from scraped competitor activity.
  • Go
  • Gin
  • React
  • TypeScript
  • PostgreSQL
  • pgvector
  • Celery
  • Selenium
  • Ollama
marketing-generator — live
Dogwood Gaming AI marketing platform generating campaign content
Dogwood Gaming platform interface 1Dogwood Gaming platform interface 2Dogwood Gaming platform interface 3

Retrieval pipeline

  1. 01IngestDocuments normalized and cleaned
  2. 02ChunkOverlap-aware splitting for context integrity
  3. 03EmbedVectors generated per chunk
  4. 04Indexhnswlib + SQLite approximate nearest neighbour
  5. 05Retrieve → ReasonAgent loops over retrieved context to answer

Personal project · Python

Agentic AI Research Tool

problem
Most 'AI research' tools are a thin wrapper over a chat API — they break the moment a question needs grounded, sourced context.
built
A research agent with a RAG pipeline written from the ground up: document ingestion, overlap-aware chunking, embedding generation, and vector indexing on hnswlib backed by SQLite — no managed vector service.
outcome
Answers grounded in retrieved source material, and a working understanding of every tradeoff in the retrieval stack rather than treating it as a black box.
  • Python
  • RAG
  • Embeddings
  • hnswlib
  • SQLite
  • Agents

Personal project · Systems

LocalStream

problem
Sharing a screen with someone nearby usually means a heavyweight account-gated meeting product routing your pixels through someone else's servers.
built
A peer-to-peer WebRTC screen-sharing app: create a room, share a six-character code, stream directly between browsers. Signalling, session negotiation, and reconnect handling built by hand.
outcome
Zero-install sharing that works in seconds, and hands-on experience with NAT traversal and real-time media. Currently being revamped into a full meeting app.
  • WebRTC
  • TypeScript
  • P2P
  • Signalling
  • Real-time media
localstream — session
LocalStream peer-to-peer screen sharing session in progress
Niraj Dhakal

B.S. Computer Science

UMBC

02About

I care about what happens  beneath the API.

I'm a software engineer with a Computer Science degree from UMBC, but I've been building production software for over a year — not just coursework. At Dogwood Gaming I was one of a small team responsible for a multi-tenant AI marketing platform built from the ground up, owning large parts of the stack: a Go backend, a React/TypeScript frontend, PostgreSQL with pgvector, and an LLM inference pipeline on Ollama — along with the debugging, deployment, and operational reality of shipping software people rely on.

Rather than simply consuming AI APIs, I've built RAG pipelines, embedding-based retrieval, and the data ingestion systems underneath them. I like working from first principles and understanding the tradeoffs behind a technology instead of treating it as a black box.

That mindset extends past software. I design CAD models and 3D-print my own parts, and I enjoy taking things apart — literally and figuratively. Outside engineering I'm usually fishing or mountain biking, which is probably why one of my side projects is an AI-powered fishing app.

Currently looking for a new-grad software or AI engineering role — building products that ship to real users, alongside engineers I can learn from.

03Experience

Real responsibility, early.

  1. Internship → production ownership

    Software Engineer · Dogwood Gaming

    • Joined as one of a few students with no senior engineering oversight — the architecture decisions were ours to make and ours to defend.
    • Built a multi-tenant AI marketing platform from scratch: Go/Gin services, React/TypeScript client, PostgreSQL + pgvector, Celery/Selenium ingestion.
    • Owned the LLM inference pipeline on Ollama, including prompt/token budgeting and fallback behaviour when models or scrapes failed.
    • Handled deployment and operations — the on-call reality of software that other people depend on.
  2. University of Maryland, Baltimore County

    Teaching Assistant / Teaching Fellow · UMBC

    • Supported students through core CS coursework, debugging their programs alongside them rather than handing over answers.
    • Sharpened the habit of explaining systems clearly — the same skill that makes code reviews and design docs land.
04Stack

Tools I've shipped with.

  • Go
  • TypeScript
  • Python
  • SQL
  • JavaScript
  • React
  • TypeScript
  • Tailwind CSS
  • WebRTC
  • PostgreSQL
  • pgvector
  • RAG
  • Embeddings
  • hnswlib
  • Ollama
  • LLM inference
  • Docker
  • Celery
  • Selenium
  • Gin
  • Linux
  • Git
05Contact

Open to new-grad software  & AI engineering roles.

If you're hiring for a team that ships to real users, I'd like to hear about it.  Fastest way to reach me is email.