Krish Shah

Computer Science Student · Freelance Developer

Krish ShahKrish Shah

I'm a third-year CS student, though most of what I actually know came from building outside of class rather than in it. Over the past year and a half I've shipped several full products on my own, including a fantasy cricket platform, a gamified study app, and most recently an AI career-readiness tool, while freelancing for other CS students who needed real software built. I like sitting with a few problems long enough to actually understand them: mostly how people use a product, and how the system underneath holds up once they do.

Ongoing Work

Freelance Software Development

Self-employed · Remote · May 2025 to Present

Projects delivered
30+
Duration
1.3+ yrs
Clients
Int'l CS students
Mode
Remote

For the past year and a half, I've been building software independently for international Computer Science students on real projects with real deadlines, not one-off gigs. It runs alongside my own products, not instead of them: the same habits that go into shipping PathPilot AI or Crictalx carry over here, just applied to someone else's problem instead of my own. Over 30 projects in, it's become a steady, ongoing part of how I work.

Across
JavaPythonDatabasesWeb Technologies
Featured Product

PathPilot AI

Career Readiness Intelligence Platform

pathpilot.kreesh.me →
Users
100+
Resumes Analyzed
100+
Commits
120+
Build
30+ days
Architecture
3 services

PathPilot AI unifies resume quality, role readiness, interview practice, and live opportunity tracking into one student workflow. The hard part was making multi-service AI feel simple and trustworthy in daily use, not just technically impressive. I shipped it through steady iteration over 120+ commits, balancing architecture discipline with product clarity.

Architecture Snapshot
Browser
React SPA
Node API
Auth + Orchestration
Django ML
7 model inference + SHAP

MongoDB for persistence, Gemini for coaching, internal key gate between Node and Django.

Product Journey

Dashboard
01. Dashboard: Surfaces Path Score, behavior signals, and immediate next actions.Expand →
Resume Analyzer
02. Resume Analyzer
Converts uploaded resumes into ATS and structure-level feedback.
Skill Roadmap
03. Skill Roadmap
Transforms weak areas into weekly, measurable improvement tasks.
Live Jobs
04. Live Jobs
Connects preparation with actual job opportunities and tracking.
AI Interview Coach
05. AI Interview Coach
Simulates interview practice loops with contextual feedback.
Resume Builder
06. Resume Builder
Lets students ship application-ready resumes from inside the product.
Landing
07. Landing
Establishes value proposition and drives onboarding action.

System Evolution

Engineering Decisions

Why split into React + Node + Django?

Node handles auth, CRUD, files, and app orchestration while Django hosts ML inference where Python libraries are strongest. This separation keeps boundaries clear and deployments independent.

Why both ML models and Gemini?

ML models produce structured numeric predictions for reliability, while Gemini explains those outputs and provides actionable guidance. Deterministic scoring first, narrative intelligence second.

Feature Set

Path Score
Single 0-100 readiness score across 5 weighted factors
Resume Analyzer
ATS and structure scoring with red-flag detection
Skill Gap Analysis
Compares current profile against target role requirements
Growth Roadmap
Personalized weekly tasks generated for measurable progress
Live Jobs
Market listings with cache-backed fetch and opportunity tracking
Interview Coach
AI mock interviews with answer-level feedback
AI Coach Chat
Gemini-backed mentoring and career guidance
Resume Builder
In-app resume editor with PDF and DOCX export
Reports
Progress snapshots for student career readiness
Onboarding Engine
Role, skills, and semester-aware personalization
Notifications
Scheduled nudges and job alerts via cron jobs
Multi-Service Security
Internal-key-gated AI microservice architecture
ReactViteNodeExpressMongoDBDjangoGeminiSHAP
Other Work

BrainBrew

Multiplayer Gamified Learning Platform
brainbrew.kreesh.me
Users (48h)
260+
Quiz Attempts
1,000+
Battle Mode
Live

Multiplayer quiz ecosystem with real-time quiz battles, XP progression, and performance analytics. Built to make studying competitive and addictive.

260+ users in 48 hours. First time building real-time multiplayer state management. The matchmaking logic was rewritten three times.

Quiz Battles: real-time multiplayer with live scoring
XP Progression: leveling system tied to quiz performance
Adaptive Learning: difficulty scales based on accuracy patterns
Analytics: performance tracking across subjects and time
FlaskSQLiteReal-time StateJSON APIs
Dashboard
Dashboard
Battle Lobby
Battle Lobby
Quiz Battle
Quiz Battle
Leaderboard
Leaderboard

Fantasy cricket prediction and engagement product featuring poll generation, scoring systems, leaderboards, and analytics loops.

Predictions only felt worth making once scoring updated instantly instead of after the match ended. Moving to live scoring was a small backend change that made a much bigger difference to engagement than any new feature.

FlaskSQLiteGamificationAnalytics
Dashboard
Dashboard
Prediction System
Prediction System
Standings
Standings

Front-end coursework project. Multi-page restaurant site with menu, reservation flow, and responsive design in vanilla HTML/CSS/JS.

First project where I had to keep a consistent layout across five separate pages by hand, with no framework or component system. Fighting CSS drift between Menu, Reservation, and Gallery pages taught me why component-based styling exists.

HTMLCSSJavaScript
Homepage
Homepage
Menu
Menu
Reservation
Reservation
Building Notes

Observations from Building

Things I learned by shipping, not by reading.

user behavior

Interfaces should be self-explanatory

Early versions of Crictalx relied on written guides to explain each feature. Adoption stayed flat until I redesigned the flow to be self-evident, which roughly tripled usage afterward.

Learned while building crictalx v1.0, march 2026
02engagement

Engagement requires stakes, not just rewards

Adding XP and badges to BrainBrew had little effect on behavior. Introducing confidence scoring (where users stake points on their own certainty) measurably increased engagement. The incentive structure mattered more than the reward itself.

brainbrew, april 2026
03iteration

Early feedback outweighs early polish

The first version of Crictalx was a single Flask route with hardcoded polls. It was purely functional, not refined, yet friends used it daily, and that real usage taught me more than any upfront planning would have.

crictalx v0.1, february 2026
04retention

Continuity mechanics outperform novelty

Adding a streak counter to Crictalx increased daily return rate more than any single feature addition did. Users came back less for new functionality and more to preserve a habit already in motion.

crictalx v1.3, may 2026
05engineering

Schema design benefits from real usage data

I initially tried to finalize the database schema before writing any code, then rewrote it three times anyway. I now start with a minimal structure and refactor once actual data patterns are clear.

crictalx v2.0, 2026
06product

User friction is a reliable product roadmap

Share cards, reward boosts, and the analytics dashboard all originated from specific complaints raised by users. Direct feedback consistently outperformed planning sessions as a source of prioritization.

all projects, ongoing
Stack & Approach

Engineering DNA

Systems Patterns I Gravitate Toward

Real-time, stateful features over simple request-response: BrainBrew's live quiz battles needed this, not just as a nice-to-have
Start small and let real usage dictate structure: Crictalx began as one Flask route with hardcoded polls before anything else got built
Split services along what they're actually good at, not convenience: PathPilot keeps Node for orchestration and Django for ML instead of forcing one stack to do both
Treat scoring and ranking logic as core infrastructure, not a feature bolted on later: it's the backbone of both Crictalx and BrainBrew
Watch behavior before redesigning around it: Crictalx's self-explanatory redesign came from seeing where people actually dropped off, not guessing

Types of Problems I Enjoy

Compressing messy, multi-factor data into one actionable number: PathPilot's Path Score
Building habits that bring people back every day: Crictalx's streak mechanic
Keeping many users' state consistent in real time: BrainBrew's quiz battles
Turning a manual, ad-hoc process into something a system can automate: PathPilot's roadmap and job matching
Figuring out what actually drives engagement versus what just looks like it should: confidence scoring beat badges in BrainBrew

Current Workbench

PathPilot AI Hardening

active · 70%

Security hardening, test coverage, and architecture cleanup post-v2.1

DSA

learning · 25%

Data structures and algorithms: building problem-solving fluency

Exploring ML

exploring · 30%

Regression, classification, and model evaluation: building to understand

Tools & Technologies

Languages
JavaPythonJavaScriptSQL
Frontend
React.jsHTML5CSS3Tailwind CSSBootstrap
Backend
Node.jsExpress.jsFlaskDjangoREST APIs
Databases
MongoDBSQLiteSQL
ML
Scikit-learnXGBoostCatBoostLightGBMRandom ForestSHAP
Other
JWTMulterFirebase AuthGoogle Gemini API
Tools
GitGitHubPostmanVS CodeVercel
Signal

Currently

Reading"Designing Data-Intensive Applications"
BuildingPathPilot AI (security hardening, testing, architecture cleanup)
ExploringData Structures & Algorithms
ThinkingWhy streak mechanics create stronger retention than rewards
AlsoPlaying chess in whatever time is left over
LocationAhmedabad, India · GMT+5:30

Say something

Project ideas, opportunities, or just a chat about what you're building.