I build systems.
Then I write about how they break.
Ashwin Aashu — full stack engineer. 5+ years shipping React frontends and Spring Boot microservices for platforms Fortune 500 teams rely on. Deep dives on databases, architecture, and the trade-offs nobody puts in the docs.

Technical writing
Long-form breakdowns of real systems — what was built, what broke, and the trade-off reasoning in between. Published on Substack.
Why I split OLTP and OLAP in a side project (and what broke)
Running Postgres and ClickHouse side by side taught me more about database trade-offs than any tutorial. What routing queries between them actually looks like.
read on substack →security · testingTesting authorization logic first: a test-first RBAC walkthrough
Access control is the one place bugs become incidents. Writing the tests before the code changed how I designed the entire permission model.
read on substack →engineering craftScoping down to ship: from SQL query builder to raw SQL + a heuristic
The feature I cut made the project better. On recognizing when a "complete" feature is really a timeline risk in disguise.
read on substack →VYO — Query Lens
The flagship build. A self-serve analytics platform, engineered end-to-end and documented publicly as it comes together.
VYO
IN ORBITTeams write raw SQL, get role-scoped dashboards, and query analytical workloads without touching the transactional database. Domain model to deployment.
| role_scoped_authz | Chart-level RBAC — authorization logic developed test-first, so access rules are provably enforced, not assumed. |
| oltp_olap_split | Postgres + ClickHouse — transactional writes stay in Postgres; heavy analytical reads route to ClickHouse. |
| raw_sql_execution | SQL-in, chart-out — users run raw SQL and a lightweight heuristic suggests the right chart type. Deliberately scoped down to ship safely. |
| admin_impersonation | View-as-user — admins impersonate any role to verify exactly what a user sees, closing the loop on the RBAC model. |
| cached_query_path | Redis caching with invalidation — the hottest query path is cached, with invalidation handled explicitly rather than by TTL-and-hope. |
Experience
For the recruiters and hiring managers in the room — the production record.
- Architected a production multi-tenant analytics platform (Tableau/Metabase-style) serving Fortune 500 clients — Google, Indigo, MSCI, Bain, Dell. Raw SQL or visual queries against ClickHouse with sub-second aggregations; charts, themes, and filters runtime-configurable per tenant.
- Built end-to-end across React (Router v7 + Vite), Spring Boot microservices, and ClickHouse — OWASP-compliant, WCAG 2.1-accessible dashboards with zero cross-tenant data exposure.
- Led the frontend migration to Vite, React Router v7, and Tailwind CSS; drove team-wide conventions on clean code and MVVM architecture.
- Built the PDF review workspace for an LLM-powered lab report digitisation pipeline — in-document search, image-based report support, mark-pages-for-deletion, scroll-to-page, zoom, and download — giving QC ops a side-by-side view to verify digitised results against the source report. The digitised flow cut turnaround time by 45%.
- Shipped core mobile features for Omantel's consumer app — E-SIM activation and the Bank Muscat payment gateway — across microservice boundaries.
- Optimised key modules for a ~30% reduction in crash rates; managed Kubernetes pod deployments and production log monitoring.
- Delivered Baqala — a grocery delivery app for the Bahrain market (Manama), backed by the Bahrain Development Bank — shipped to both iOS and Android with React Native, owning delivery end-to-end.
- Built DusMinute, a hyperlocal delivery platform, across the full stack — React Native mobile app, React web app, and Node.js backend.
- Shipped features for Arrivae, an interior design platform; got trusted to lead lean project teams and manage client communications across projects.
- Built full-stack dashboards for 3 early-stage clients using React.js and Spring Boot.
Stack
frontend/
- React.js · Next.js (SSR/SSG)
- TypeScript · JavaScript (ES2023+)
- React Router v7 · Redux Toolkit · Zustand
- Tailwind CSS · Shadcn/UI · Radix UI
- Web Vitals · code splitting · lazy loading
backend/
- Java 21 · Spring Boot microservices
- PostgreSQL · ClickHouse · JDBC
- REST · GraphQL · WebSockets
- API gateway patterns · multithreading
infra_and_quality/
- Docker & Compose · Kubernetes · Linux
- Fedora (daily) · Ubuntu Server · macOS
- Jenkins · CI/CD · Git
- Jest · React Testing Library · Vitest
- WCAG 2.1 · OWASP Top 10 · SOLID