Skip to content

Open to full-time roles and freelance work

Ganesh Chaudhary

Full Stack Developer

I build across the stack, from React interfaces to the Node.js services and databases behind them, including AI features such as retrieval-augmented support agents.

01

About

I'm a full stack developer who likes owning a feature end to end: the React interface, the API behind it, and the database it depends on. Right now that means UnTangler, a voice-first app for students with ADHD, where I work everywhere from the database and API to voice, notifications and accessibility.

Before that I was at TEJ Center, where I built React interfaces for two enterprise client applications inside Agile sprints and, through the fellowship, systems ranging from event-driven order processing to AI support agents. I started on the design side, as a web design intern turning Figma wireframes into responsive layouts, and I have freelanced as a front-end developer building dashboards for training platforms. I keep my foundations current through structured coursework, most recently the University of Helsinki's Full Stack Open and Anthropic's Claude Code in Action, and I care about readable code, disciplined Git workflows, and honest peer review.

Projects Built
9
Technologies
20+
Years Building
3+

02

Current work

UnTangler

Full-stack developer on a production, voice-first productivity PWA for students with ADHD.

Role
Full-Stack Developer
Company
Compass Decisions Science LLC
Since
Jul 2026
Team
Two developers, a product owner, Jira and pull request review

UnTangler helps students with ADHD turn an overwhelming task into small steps, then schedules those steps into Google Calendar, Google Tasks and Google Classroom. I build and ship features across the whole stack, from the database and API to voice, notifications and accessibility.

Stack

  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS 4
  • Express 5
  • Zod
  • Supabase (Postgres, Auth, RLS)
  • Gemini Live
  • Google Calendar, Tasks and Classroom APIs
  • Web Push
  • Vercel
  • GitHub Actions
  • Vitest

What I built

  1. Voice

    Speak a to-do, refine it by talking

    I integrated Gemini Live so a student can say a task out loud and adjust it in conversation, with no restart. The backend issues short-lived, single-use, model-locked tokens and the browser connects straight to Gemini, so the whole backend runs as one Vercel serverless function with no WebSocket proxy.

  2. Dates

    Spoken times that land on the right day

    I built a timezone-aware converter from wall-clock time to UTC and threaded the student's real timezone through every date-resolution path, so a phrase like “tomorrow at 5” resolves correctly. Students can also correct the resolved due date by hand.

  3. Google

    Calendar, Tasks and Classroom sync

    I worked on syncing to all three, including writing task completion back to the real Calendar event. I fixed sync states that got stuck silently, and made the app treat an unreadable Google connection as something to recover from instead of a crash.

  4. Check-ins

    End-of-day check-in and notifications

    I designed and built the whole flow.

    • Finish-time entry, snooze, daily confirmation and catch-up
    • Reminder times saved per user in the database, not in an in-memory global
    • Web Push and an in-app notification bell
    • A scheduled job (GitHub Actions and a Supabase cron migration) that dispatches due check-ins
  5. PWA

    Installable on iOS and Android

    Cross-platform work so the app behaves like a real installed app.

    • iOS and standalone-mode detection, install metadata and an install option in the app
    • Fixes for service worker and manifest caching problems
    • Microphone permission fixed in the installed iPhone app, plus detection of a mic that connects but never captures audio
    • A real-browser end-to-end suite for iOS and Android push
  6. Accessibility

    An app-wide audit, fixed to WCAG AA

    I ran a UX audit across the app and resolved the Very Major and Major findings, plus the Minor ones. The fixes covered WCAG AA colour contrast, aria-live and role=alert on async status text, ARIA landmarks, touch-target sizes, and consistent focus and disabled states.

  7. Reliability

    Security and stability

    The Live token endpoint requires authentication, voice sessions are guarded against re-entry, and Supabase calls are wrapped in error handling. I also fixed flaky tests, including a time-dependent scheduling test and an extraction test that made real network calls.

  8. Delivery

    CI, deploys and migrations

    I set up the CI workflow, sped up deploys by installing frontend and backend dependencies in parallel, and fixed production build failures. Schema changes go through versioned Supabase migrations.

By the numbers

non-merge commits are mine
160 of 286
pull requests merged
~190
database migrations
19
test files
77
CI workflows
2
Jira tickets assigned to me are done
88 of 89

Taken from the project's git history and Jira board on 17 September 2026, covering 17 July to 17 September. Both are private, so there is no public link to check them against.

How I work with the team

  1. 01

    Specs become software

    I work from plain-language product specs written by the product owner, often with screenshots, and treat each epic as the source of truth for intent. I break epics into stories and subtasks, and I am the reporter on 128 of the project's 181 tickets.

  2. 02

    Ask before building

    On the weekly summary feature I posted my starting plan and asked for a decision first. I proposed a read-only link a student can share instead of sending email in version one, and generating the summary on demand instead of sending it every week. I explained that this keeps the first version simple, and left the choice to the product owner. When a ticket leaves out a priority or an estimate, I ask instead of guessing.

  3. 03

    Two audiences, two registers

    Technical status goes to the engineers, and a plain-language note closes the ticket for the product owner, for example: “Notifications are now more reliable if a send fails, and we catch a case where a student’s phone thinks it’s set up but it isn’t.” Pull requests read the same way: what changed for the student, not which files.

  4. 04

    Own the gaps

    On a push-reliability ticket I wrote that my first comment only covered half the spec, then reported the rest: a status endpoint, a banner in Preferences, a one-tap fix and tests. I also flagged a gap my own cleanup of dead subscriptions could cause, and fixed it in the same ticket.

  5. 05

    Small, reviewable changes

    Every change goes through a pull request with a named reviewer, on a branch off main. I keep one pull request to one coherent change, describe it as context, what it solves and how, and add a small diagram when the change has a shape worth drawing.

03

Skills

Languages
  • JavaScript (ES6+)
  • TypeScript
  • Python
  • SQL
  • HTML5
  • CSS3
Frameworks
  • React.js
  • Node.js
  • Express.js
  • Next.js
  • Django
  • Flask
  • Tailwind CSS
  • Bootstrap
Databases
  • PostgreSQL
  • MongoDB
  • Redis
  • Supabase
  • Pinecone
Tools
  • Git
  • GitHub
  • Docker
  • Kafka
  • npm
  • ESLint
  • Prettier
  • Figma
  • Vercel
  • GitHub Actions
  • Vitest
  • Jira
Architecture & Practice
  • RESTful APIs
  • Microservices
  • Event-Driven Architecture
  • Agile
  • Responsive Design
  • UX/UI Design
  • Progressive Web Apps
  • Accessibility (WCAG AA)
AI / ML
  • Gemini API
  • Gemini Live
  • YOLO
  • TrOCR

04

Projects

  1. Challenge
    Real-time chat that handles both text and voice messages, wrapped in an interface that feels premium.
    Approach
    A WebSocket chat system that supports messaging, voice chat, and editing or deleting your own messages. Voice recordings are stored on Microsoft Azure.
    My role
    Built the chat system over WebSockets and designed the UI and UX. Video calling was planned as a next step but put on hold.
    • WebSocket
    • Microsoft Azure
  2. 02

    Shopify Merchant Support Agent

    TEJ Fellowship team project

    Challenge
    Give Shopify merchants fast, accurate support and insight into how their shop is doing.
    Approach
    A retrieval-augmented pipeline with semantic and logical search, Pinecone embeddings, and chunking, plus an MCP architecture with tools for web search, a calculator, and a clock. A real Shopify app integration lets the AI analyse the store. The team worked to keep responses under 4 seconds.
    My role
    Designed and built the merchant dashboard in Tailwind CSS and optimised the front end's async requests to keep the RAG round trips quick.
    • Node.js
    • Gemini API
    • Pinecone
    • MCP Architecture
    • Tailwind CSS
  3. 03

    E-commerce Order Management System

    TEJ Fellowship project

    Challenge
    Keep order processing correct and responsive across separate services, without overselling inventory.
    Approach
    Microservices with a PostgreSQL primary and replicas (reads and writes split across them), Redis for caching and state, and Kafka driving event-based order workflows. The whole stack runs in Docker, with a mobile-first Tailwind CSS interface.
    My role
    Engineered the system end to end: the event-driven order pipeline, the containerised environment, and the interface.
    • Node.js
    • Express
    • PostgreSQL
    • Redis
    • Kafka
    • Docker
    • Tailwind CSS
  4. 04

    Trihutbaba

    Solo project, in progress

    Challenge
    Give the Trihutbaba store a proper way to manage and sell machinery and tools online, the way larger marketplaces like Daraz do.
    Approach
    An e-commerce site for the store's machinery and tools, designed to be simple enough for farmers to use. Nepali language support and weather forecasts are planned.
    My role
    Started this on my own and am building it end to end.
  5. Challenge
    Make learning more engaging for students in grades 8 and 9.
    Approach
    Gamified learning with progress tracking, typing games, hangman, and quizzes in mathematics, science, English, and social studies, plus AI-powered features.
    My role
    Built it solo during the fellowship, then presented it to seniors and alumni, who encouraged me to keep going.
    • React
    • Vite
    • Tailwind CSS
    • Gamification
  6. Challenge
    Give teachers a place to publish lessons and students a place to learn from them.
    Approach
    A learning platform with role-based authentication and authorization. Teachers post text lessons along with YouTube and other video links, and students learn from them.
    My role
    Core responsibility: role-based authentication and authorization for teachers and students.
    • Role-based access
  7. Challenge
    Build a simple to-do manager and use AI to make it more useful.
    Approach
    A task manager where AI summarises your to-do list and adds a quote to go with it.
    My role
    Our first project after joining the TEJ Fellowship. I integrated the AI summaries and the quotes, and Rahul built the front end.
    • AI integration
  8. 08

    Citizenship Verification System

    University capstone, team project

    The repository lives under a teammate's GitHub account.

    Challenge
    Verify Nepali citizenship and ID cards automatically and in real time, including reading Nepali text from the card.
    Approach
    YOLO classifies the document type, TrOCR extracts the Nepali text, and face comparison supports identity verification, all served through Django with OpenCV handling the image work.
    My role
    Developed the verification web application and integrated the YOLO and TrOCR models with the Django backend to give users instant, real-time validation feedback.
    • Python
    • Django
    • YOLO
    • TrOCR
    • OpenCV

05

What I Can Help With

Whether you are hiring for a team or scoping a project, this is the work I can take on.

  1. 01

    Front-end interfaces

    Responsive, accessible React interfaces, including WCAG AA fixes, built from Figma designs into modular, maintainable code. Delivered for enterprise client applications, a production PWA, and as a freelance front-end developer.

  2. 02

    Backend services and data

    Node.js and Python services on PostgreSQL, MongoDB, or Redis, including event-driven designs with Kafka, real-time features over WebSockets, and containerised delivery with Docker.

  3. 03

    AI-integrated features

    Voice and retrieval-augmented assistants with Gemini Live, Pinecone and Gemini, plus computer vision and OCR pipelines with YOLO and TrOCR.

How I work

  • Work in Agile sprints with clear deliverables
  • Keep changes reviewable with clean Git workflows and peer review
  • Explain technical trade-offs in plain language

06

Experience

  1. Jul 2026 – Present

    Full-Stack Developer

    Compass Decisions Science LLC

    • Building UnTangler, a production voice-first PWA that turns an overwhelming task into small steps for students with ADHD and schedules them into Google Calendar, Tasks and Classroom.
    • Built the Gemini Live voice-to-schedule pipeline, timezone-aware date handling, and Calendar, Tasks and Classroom sync.
    • Designed the end-of-day check-in flow and its notifications: Web Push, an in-app notification bell, and a scheduled dispatch job.
    • Ran an app-wide accessibility audit and fixed the findings to WCAG AA, and set up CI and versioned Supabase migrations.
    • Work in a two-developer team with a product owner, tracked in Jira, with every change reviewed through a pull request.
    Read the UnTangler case study
  2. Jan 2026 – Jul 2026

    Junior Software Developer

    TEJ Center Private Limited

    • Built responsive, cross-browser React interfaces for 2 enterprise client applications.
    • Turned complex Figma mockups into modular, production-ready front-end code with Tailwind CSS. Strict peer reviews contributed to a 40% reduction in UI rendering bugs.
    • Worked directly with UI/UX designers and backend engineers in fast-paced Agile sprints, completing every cross-functional milestone on time.
    • Kept the codebase stable with disciplined Git and GitHub workflows, npm dependency management, and reusable component patterns.
  3. Jul 2025 – Dec 2025

    Software Developer Fellow

    TEJ Center Private Limited

    • Worked in an intensive, project-driven program covering full-stack development, distributed system design, code reviews, and technical presentations.
    • Built real-world projects in cross-functional teams, including a RAG-based support agent and an event-driven order system.
    • Completed the University of Helsinki Full Stack Open certification (7 ECTS, Grade 5).
  4. May 2025 – Jul 2025

    Web Design Intern

    Nobel PBC Learning

    • Designed and refined user interfaces and page layouts, bridging visual mockups and semantic, performant web pages.
    • Ran user flow research and accessibility audits to sharpen layout hierarchy on landing pages.
    • Created high-fidelity wireframes and responsive UI designs in Figma, iterating on feedback from internal stakeholders.
  5. 2023 – 2025

    Front-End Developer (Remote)

    Freelance

    • Developed interactive dashboards using vanilla JavaScript, improving UX for training platforms.

07

Education

  • 2021 – 2025

    Bachelor of Computer Engineering

    Institute of Engineering, Dharan

Anthropic Academy · 2026

Claude Code in Action

Completed hands-on course on building with Claude Code — AI-assisted software engineering workflows.

Issued under the name Ganesh Tharu.

Claude Code in Action: Verify certificate (opens in a new tab)

University of Helsinki · 2025

Full Stack Open Certificate

7 ECTS online course — Grade 5

Full Stack Open Certificate: Verify certificate (opens in a new tab)

08

Let's Work Together

I'm open to full-time roles and freelance projects. If you have something in mind, send a few details and I'll get back to you.