Yash Agarwal
ProjectsOpen SourceExperienceWritingAboutContact
Hire me

Yash Agarwal

Backend, distributed systems, and the network layer underneath.

Open to SWE roles and internships · 2027 graduate

Site

  • Projects
  • Open Source
  • Experience
  • Writing
  • About
  • Contact

Elsewhere

  • LinkedIn
  • GitHub
  • X
  • Email

© 2026 Yash Agarwal.

Punjab, India

Projects/Salongraphy
01In productionDec 2024 - Present

Salongraphy

A hiring marketplace for salons and beauty artists, live on Google Play.

salongraphy.inPrivate repo · walkthrough on request
Flutter appWeb · SSRAdmin BFFExpress APIPostgreSQLBullMQ workersS3 · Firebaseone API contract · four clients

Salongraphy is a two-sided hiring platform: artists build a portfolio and apply for work, salons post jobs and hire. I built the whole thing: the Express API, the Postgres schema, the Flutter app on the Play Store, the server-rendered marketing and discovery site, and the internal admin console. I run it in production.

The interesting part is not any one screen, it is that four codebases share one API contract without drifting. The admin console is a backend-for-frontend: the browser never sees a token, every call is same-origin through Next route handlers, and a single refresh-and-retry hop handles token rotation so an expired access token never reaches the user as an error.

  • REST API of 60+ controllers over a 45-table Postgres schema: profiles, job posts, applications, a social feed with comments and reporting, follows, search, and subscriptions.
  • Role-based admin console with a permission matrix, immutable audit logs, post moderation and a user-deletion pipeline, running as a backend-for-frontend so no token ever reaches the browser.
  • Monetisation across three payment providers: Razorpay, Google Play billing and Apple IAP, behind one eligibility service that decides what a given user may actually do.
  • Background workers on BullMQ for push notifications and email, with per-route rate limiting, client version gating and a locality index seeded from Indian locality data for geographic search.
  • Flutter client in clean architecture: 300+ files split across domain, data and presentation layers, Riverpod for state and go_router for navigation.

4

codebases, one API

300+

Dart source files

60+

REST controllers

Live

on Google Play

My role

Sole engineer: API, mobile, web, admin, infrastructure

Stack

Node.jsExpressPostgreSQLSequelizeBullMQRedisFlutterRiverpodNext.js 16TypeScriptAWS S3 / R2FirebaseDocker

Next

Apache Fory: gRPC Code Generation

Happy to walk through the code, the schema, or the decisions behind this one.

Get in touchAll projects