adni@portfolio:~/ $
open to new-grad SWE roles starting fall 2026 · buffalo, ny · · —:—:— ET · graduating spring 2026

hi, I'm
adni onoh.

Distributed systems engineer and full-stack web developer. Currently interning at a healthtech startup writing software that's helping people track and take care of their mental health. I am also maintaining and adding features to the University at Buffalo CSE department's project management tool. (see Highlights for my best work ↓)

cat about.md # readme · markdown

// in a nutshell

Open to Learn

For the last four years I've focused on systems engineering (more recently distributed systems in particular) and web development, alongside a concentration in communication.

In this time, I've gotten much better understanding ideas/tasks from a software perspective enough to implement them, without losing my ability to communicate effectively with non-technical people on the same topics. I like to think of it as being bilingual! (most likely cope because I have been unsuccessful at learning any languages other than English)

// status: open to new-grad SWE roles starting fall 2026

degree
B.A. Computer Science
school
University at Buffalo
graduating
Spring 2026
focus
Systems · Full-stack
ls -la work/ software roles
Software Contributor @ UB Department of Computer Science and Engineering
internal tool · project management · team management · agile · full-stack

Contributing features and bug fixes to the department's in-house project management tool, used daily by faculty and hundreds of students.

(UB CSE PM Tool — contributions in the highlights below ↓)

Software Engineer @ Nara Therapy
healthtech · agile · full-stack

Working at a fast-paced startup with an agile team building features to equip people with continuous mental health tools that help before, during, and after a session.

(Nara Therapy - Production Features in the highlights below ↓)

grep -r skills/ # grouped by frequency of use

// daily use

  • JavaScript
  • Python
  • Go
  • C
  • HTML & CSS
  • Node.js & Express & EJS
  • Git/GitHub
  • Figma

// comfortable with

  • TypeScript
  • React
  • MongoDB
  • MySQL
  • PostgreSQL
  • jQuery

// familiar with

  • Flask
  • OCaml
  • PHP
  • Scala
  • Java
  • R

// practices

  • Scrum/Agile
  • Shell scripting
  • Debugging
  • Code review
./animate.sh # css demo · not a self-assessment
// note: the bars below are a simple CSS animation demo, a chance to play with transition, transform, and @keyframes. not a claim of skill level. for an honest proficiency picture, see the tags above.
CSS92%
JavaScript68%
HTML81%
Go40%
Python55%
C82%
tree projects/ # 14 entries · 4 highlighted · filter the rest by category
★ highlights // if you only look at four things, look at these
UB CSE PM Tool web current
PHP · JavaScript · internal tooling · agile
Working within a large, established codebase — implementing new features and bug fixes, and shipping changes carefully to a live user base of faculty and students.
  • Extended the card attachment system to support URL links alongside file uploads, and added duplicate attachment-name prevention.

// private repo — access granted by department

Distributed Microservices Demo Suite systems web
Node.js · Go · Python · C · MongoDB · Docker
Building everything I've worked on into one system: independent services in different languages, talking through a secure gateway, health monitoring for services, a live web dashboard that surfaces system status, and graceful degradation when something fails.
Gateway
Single entry point for incoming requests. Routes traffic to the right service and logs request metadata to MongoDB.
Health Node
Watches every other service and works with the Gateway to keep the system honest about what's online and responsive.
Invoice Service
For creating and formatting invoices from raw data.
Performance Monitor
Tracks and reports system resource usage.
Status Dashboard
Webpage that polls the system's health endpoints and shows live status per service.

On reliability: The Gateway and Health Node are single points of failure in this basic setup. The real-world fix is redundancy; multiple Gateways with instant failover, and a consensus-based Health Node cluster that votes on a leader (directly applying what I learned from the Raft project ↓). Future work will include timeouts and retries, circuit breakers for repeatedly-failing downstreams, and a database fallback so the Gateway keeps running even when MongoDB is down.

Repo structure: /api-gateway · /health-node · /invoice-service · /performance-monitor

UB Lost & Found (LFAU) web current
Next.js · TypeScript · Prisma · PostgreSQL · NextAuth · Tailwind · Docker
A full-stack prototype proposing a centralized lost-and-found for UB. Right now the university's lost-and-found is split across police, libraries, the student union, and other depots that don't share a list, so a student who loses something has to check each one. This system adds one searchable layer over all of them: staff post found items, students search across every department at once, and the listing tells them where to pick it up.

The harder part is trust. It's built around a full claim → counterclaim → dispute resolution lifecycle, where ownership is settled by accountability rather than secrecy: every claim is tied to a real UBIT identity, descriptions stay public so claiming is low-friction, and a listing stays open to counterclaims for its whole lifecycle (even after pickup) to deter false claims. Staff resolve contested items by awarding to one party from a department-scoped dashboard.

  • Role-based access control (student / department staff / admin) with route-level and action-level guards
  • Relational data model for the item lifecycle: available → claimed → disputed → archived, on a per-listing clock
  • Server-side rendering and server actions throughout, with a seeded Postgres database for realistic demo data

// private repo — source shared on request

Nara Therapy — Production Features web current
TypeScript · React · Figma
Nara's pitch is continuous mental health support. I haven't worked much on the member-facing side yet, but I've contributed across the parts that make it run: the tools providers use to deliver care, the dashboards org admins use to manage it, and the systems the Nara team uses to keep everything moving.
For providers

I added a way to filter AI-chat sessions by client rating so low-rated interactions are noticed immediately, which lets a provider catch a struggling client before the next session. I also flagged high-risk journal entries alongside other risk indicators, displayed client feedback on the provider detail page, and helped the AI chatbot reference user journals, mood check-ins, and gratitude logs to tailor conversations to the user.

For org admins

Plan selection and a default session count on org creation let the dashboard handle both billing models (bulk and pay-per-invite) without manual input. A required organization-type field captures what kind of org is being onboarded, and minimum seats with an adjustable annual fee set baseline billing automatically. I also gated dashboard metrics behind a user threshold so admins don't see misleading numbers before there's real data, and built an in-context feedback popup that centralizes admin feedback into the main table.

For the Nara team

Contact-date tracking shows when an org first reached out, helping the team prioritize warm leads. Deletion controls let admins clean up duplicate or accidental org entries instead of just rejecting them. And a user-type column on the feedback table tags every submission as coming from a member, org admin, or provider, so feedback can actually be routed and patterned instead of treated as one bucket.

// process: all work follows Figma designs and team QA criteria.

// note: the four highlighted projects above sit outside this filter. OOP principles and Git/GitHub version control applied across all projects.

Consensus Server Cluster systems
Go · Raft · RPC
Built a Raft-inspired consensus cluster in Go with full leader election, log replication, and crash-recovery. Tolerant of both clean restarts and partial state loss.
  • Implemented leader election with election timeouts and term-based voting
  • Log replication with consistency checks across follower nodes
  • Recovery logic that handles partial state loss on restart

// private repo

Distributed Hash Table (Kademlia) systems
Go · Kademlia · XOR routing · RPC
Built a DHT using a Kademlia-based routing table with XOR distance metrics and k-buckets for node management.
  • Designed k-bucket structure for efficient node tracking
  • Implemented RPC-based node communication for iterative lookups
  • Content-addressing and fault-tolerant data storage across the network

// private repo

Message Service & Failure Detector systems
Go · TCP sockets · Protobuf · channels
Implemented a multi-process message service, then used that service to build a heartbeat-based failure detector.
  • TCP sockets for cross-network process communication
  • Go channels for in-process communication and coordination
  • Protobuf protocol buffers for data serialization between processes

// private repo

Dynamic Memory Allocator systems
C · mutexes · concurrency
Developed a dynamic, concurrent memory allocator using mutexes and locks to manage allocation, deallocation, and reallocation.
  • Thread-safe allocation, freeing, and reallocation under contention
  • Optimized for low fragmentation and reuse of freed blocks

// private repo

ChatAppX — Real-time Chat & Video web
Python · Node · Express · PostgreSQL · MongoDB · WebSockets
A real-time web app for text and video chat, with security as a first-class concern.
  • HTML injection prevention, salted password hashing, XSRF & auth tokens
  • Direct peer-to-peer connections via WebSockets so video chat keeps working through server crashes
  • Secure file uploads with content sanitization and validation
  • Comprehensive form validation and error handling

// private repo

Fresumes — Free Resume Platform web
Node · MongoDB · JSX · Figma
For the Experiential Learning & Research class at UB. Worked on code documentation, user stories & acceptance tests, Figma wireframes mostly and a few implementations.
  • Designed key features: multiple resume uploads with automatic resume display, multi-page resume view, resume filters, ad slots, AI interview interface
  • Implemented real-time multiple resume uploads and integrated a feedback system with automated email routing

// private repo

Simon's Game fun
HTML · CSS · JavaScript
Repeat the sequence of lights and sounds. Built to practice event-driven JS and DOM manipulation. Try beating my personal record of 21 rounds.
Dice Game fun
HTML · CSS · JavaScript
Two-player dice roll — the higher number wins. You and your buddy choose your player, and whoever wins pays for lunch or something.
Drum Kit fun
HTML · CSS · JavaScript
Make beats with your keyboard or by clicking the pads. Covers keyboard events, audio playback, and animated button feedback.
This Interactive Resume tools
HTML · CSS · JavaScript
The site you're reading, built with just HTML/CSS/JS. I hope you enjoy using it! Try the command input at the top: tree projects works.
cat process.md # how this site was built

There are many things to consider when creating anything. Below are the practices that shaped the building of this website

// process Somewhat Agile

I did my best to put the skills I learned to practice without being too stiff considering that this is a solo project

  • Iterative — I shipped features in small, reviewable slices (content fixes → layout → projects → polish). No one giant rewrite.
  • Feedback loops — most features went through a "build, review, refine" pass before being kept. I was able to get feedback from some faculty and friends along the way (and some usability testing).
  • Coursework — used agile/scrum practice from UB's Software Engineering Concepts course

// a11y Making Accessibility a habit

Informed by UB's Applied Human-Computer Interaction and Interface Design course. The site meets AA contrast site-wide; the highlights section's accents are a deliberate aesthetic choice.

  • Keyboard navigable — try Tab through the page; every interactive element is reachable and has a visible focus ring. / jumps straight to the command input.
  • Semantic HTML — proper landmarks (<nav>, <main>, <section>, <footer>), heading hierarchy, ARIA labels on icon-only controls.
  • Reduced motion — if your OS has "reduce motion" enabled, the section fade-ins, status pulses, and shimmer effects shorten or disable automatically.
  • Contrast & legibility — both themes meet WCAG AA contrast for body text. Skip link at the top of the DOM for screen-reader users.
cat certifications.txt # verified credentials
echo "let's build something"