$ whoami

Hi, I'm Bohan Lin

Software Engineer

Full-stack developer who builds products end to end — from database schemas and APIs to on-device ML.

01.

About

I'm a Software Engineer and a CS master's student at Boston University, focused on building full-stack products end to end.

I like owning things from the database up — schema design, RESTful APIs, and increasingly on-device ML. Lately I've been building BookEasy, a bookkeeping platform whose entire matching pipeline runs locally on the user's device.

// education

  • M.S. in Computer Science

    Boston University · Boston, MA

    Expected May 2027 · GPA 3.63

  • B.S. in Computer Science & Applied Mathematics

    Brandeis University · Waltham, MA

    July 2023 · GPA 3.54

// tech stack

Languages

  • TypeScript
  • JavaScript
  • Python
  • Java
  • SQL

Frameworks

  • React
  • React Native
  • Next.js
  • Node.js
  • Express.js
  • Spring Boot

Data & ML

  • PostgreSQL
  • MySQL
  • MongoDB
  • SQLite
  • pgvector
  • Transformers.js
  • Tesseract.js

Tools

  • Git
  • Docker
  • CI/CD
  • JWT
  • Jest
  • Render
02.

Selected Work

What if you could run a full double-entry ledger without ever typing a debit or a credit?

BookEasy screenshot

Solo Developer · Jan 2026 – Present

BookEasy

Self-hosted double-entry accounting & bank-reconciliation app running the real books for a two-storefront eCommerce business.

one shared FIFO inventory
2 storefronts

one shared FIFO inventory

typed by the user
0 debits/credits

typed by the user

live A = L + E proof
Balanced

live A = L + E proof

BookEasy hides the accounting machinery behind plain-language screens: the owner records a “sell” or a “buy”, and the app generates the balanced journal entries, tracks FIFO inventory cost, reconciles bank deposits against sales, and produces financial statements.

One shared inventory is sold through two storefronts with independent per-store pricing. I built the whole thing solo — product, data model, backend, and UI.

  • Money is never a JavaScript number — every amount flows through one Decimal-based money module (DB columns Decimal(18,2)), killing a whole class of rounding bugs.
  • One double-entry invariant in one place: every posted entry has ≥2 lines and SUM(debit) === SUM(credit), written in a single Prisma transaction so half-entries are impossible.
  • Posted entries are immutable — corrections are reversing entries, never edits, preserving a clean audit trail; sales void by restoring the exact FIFO stock lots.
  • Bank reconciliation matches Zelle deposits to the sale that produced them and learns each sender → customer alias, so future statements auto-match — no AI required.
  • TypeScript
  • Next.js 16
  • PostgreSQL 17
  • Prisma 7
  • decimal.js
  • Zod
  • Tailwind CSS 4
  • shadcn/ui
  • pgvector
  • Tesseract OCR
  • Claude vision
  • Vitest

How do you keep students coming back to finish just one more study session?

Study Buddy screenshot

Lead Developer · Sep 2025 – Dec 2025

Study Buddy

Full-stack study-productivity app with a gamified virtual-companion system — led as a 6-person team lead.

team led
6-person

team led

endpoint test coverage
90%+

endpoint test coverage

across 6 modules
20+ APIs

across 6 modules

Study Buddy is a full-stack study-productivity app where a virtual companion levels up as you complete study sessions, turning focus time into a game.

As lead developer I owned the technical architecture, sprint planning, and feature delivery for a 6-person team across the full project lifecycle.

  • Designed 20+ RESTful endpoints across 6 backend modules (auth, study tracking, stats, companion) with JWT auth and rate limiting.
  • Architected a normalized SQLite schema — 6 tables, 5 foreign-key relationships — for accounts, sessions, timers, and companion progression.
  • Built a component-based React Native frontend with reusable UI modules and state-driven companion progression.
  • Wrote a Jest + Supertest suite reaching 90%+ endpoint coverage, and set up Docker + GitHub Actions CI/CD deploying to Render.
  • React Native
  • Expo
  • Express.js
  • Node.js
  • SQLite
  • JWT
  • Swagger
  • Jest
  • Docker
  • GitHub Actions
  • Render

03. Contact

Let's build something great

I'm open to software engineering roles and collaboration. Whether you have an opportunity or just want to talk shop, my inbox is open.

bohan0lin@gmail.com