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 care for their mental health, building a personal project that combines my web and distributed systems experience (see Distributed Microservices Demo Suite ↓), and interview prepping.

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/ # current role
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 projects section 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/ # 13 entries · filter by category

// note: OOP principles and Git/GitHub version control applied across all projects. ● current marks projects I'm actively building right now.

Nara Therapy — Production Features web current
TypeScript · React · Figma
Nara's pitch is continuous mental health care. I haven't worked much on the member-facing side of the product 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.

UB CSE Scrum Board web current
Bug fixes · feature work · internal tooling
Contributing to the University at Buffalo CSE department's in-house scrum board. Fixing live bugs and adding new features for an existing user base, which means reading other people's code & documentation first, working within the existing architecture, and shipping changes carefully.

// private repo

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, I picked a few accessibility metrics and made the website comply with them.

  • 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"