RishavpreetSingh
Building practical software at the intersection of cloud, data, and AI.
Turning data and ideas into practical software.
I'm a Computer Science grad from UBC (Class of 2026) with a Data Science minor. I build full-stack software: backend pipelines, cloud infrastructure, and functional frontends.
At Aeroqube, I deployed and maintained AWS-hosted web apps for AI healthcare products. I built a React/Tailwind landing page for a clinical assistant and set up a Lambda and SendGrid email workflow for form submissions. Admin console load times dropped 70% after I added API pagination and fixed slow data-loading calls.
My projects tend to involve messy data or tight constraints. JobLens scrapes and scores real Canadian job postings against your skill profile. Adventure of the Ages is a C++ platformer with a custom OpenGL rendering pipeline. Graider was a 48-hour hackathon prototype for AI-assisted grading.
I'm currently building Loopr, a mobile app for musicians to record, layer, and save loop sessions. It's a way to get hands-on with React Native, TypeScript, and AWS together in one project.
BASED IN
Vancouver, BC
EDUCATION
BSc Computer Science · Data Science Minor · UBC
GRADUATED
May 2026
EXPERIENCE
Software Engineer Intern · Aeroqube
TARGETING
Backend · Full-Stack · Cloud & Data Engineering
CURRENTLY
Building Loopr
How colleagues describe me
Tech I work with
The tools I reach for.
Organized by category. Hover any skill for context from real projects.
Programming languages I've used across coursework, projects, and production work.
Where I've worked.
Production experience building cloud and AI products.
Aeroqube
InternshipSoftware Engineer Intern
Cloud, AI products & web
Deployed and maintained production web apps on AWS (S3, EC2, Lambda, CloudFront) serving a live AI healthcare product, with zero downtime across the 5-month internship.
Built a React.js + Tailwind landing page for an AI clinical assistant and wired a SendGrid email workflow through AWS Lambda, converting form submissions into automated lead-capture emails without a backend server.
Cut admin console load times by 70% by replacing full-table fetches with API pagination and restructuring third-party API calls, going from roughly 8s to under 2.5s on the main dashboard.70% faster
Tightened the AI chatbot UX for healthcare professionals by reworking chat history storage, response state flow, and error states, which reduced support tickets about conversation drop-offs during the final sprint.
Things I've built.
From 48-hour hackathons to semester-long engineering projects.
Apr – Jun 2026
JobLens AI
Real Canadian job data, explainable role-fit scoring, and actionable skill-gap intelligence.
The Problem
Job boards show postings but no signal on fit: which roles match your skills, which gaps matter most, or why one role is better than another. Real job data is also fragmented across employer sites and inconsistently formatted.
My Approach
Built an ingestion pipeline that pulls first-party postings from Greenhouse, Lever, and Ashby, runs Groq-powered skill extraction on each posting, and refreshes the dataset automatically every week. A role-fit scoring engine uses TF-IDF similarity and role-specific weighting across 6 technical categories so candidates see a numeric fit score and ranked list of missing skills. Shipped a Streamlit dashboard backed by FastAPI and PostgreSQL with free-text search, CSV upload, saved analyses, and one-click Markdown/PDF report export.
Key Results
- Ingestion pipeline pulling first-party postings from Greenhouse, Lever, and Ashby with Groq skill extraction and weekly automated refreshes
- Role-fit scoring engine with TF-IDF similarity and role-specific weighting across 6 categories: numeric fit score and ranked skill gaps, not a black-box match
- Streamlit dashboard backed by FastAPI and PostgreSQL: free-text search, CSV upload, saved analyses, and one-click Markdown/PDF export
- Containerized with Docker, deployed on ECR, ECS Fargate, ALB, private RDS, and Secrets Manager with 195 Pytest tests green in CI
Tech Stack
What's next.
A TypeScript and cloud project in progress, built as a real system.
Loopr
In ProgressA mobile-first multitrack loop-building workspace for musicians to capture ideas, layer recordings, and save loop sessions.
The Problem
Musicians capture ideas across messy voice memos and scattered recordings but have no easy way to layer, organize, or replay them as structured sessions. Full DAWs are too heavy when the goal is quickly capturing and building on a musical idea.
The Approach
Building a mobile-first TypeScript app where musicians can create loop projects, record short audio tracks, layer multiple recordings, and manage saved sessions. Starting with a strong local-first workflow, then expanding into a cloud-backed architecture with a TypeScript backend API, DynamoDB metadata persistence, S3 audio storage, and infrastructure-as-code.
What I'm Building
- Mobile loop workspace: create projects → record tracks → layer ideas → save sessions
- Local audio workflow with recording, playback, mute controls, volume sliders, rename/delete, and file cleanup
- TypeScript backend API with project/session routes, validation, tests, and repository boundaries
- DynamoDB metadata design for projects, sessions, and track records
- Planned S3 audio storage, AWS Lambda/SQS processing path, Terraform infrastructure, and CI/CD
Planned Tech Stack
Treating it as a real production system: mobile app, TypeScript backend API, and AWS infrastructure in one project.
Where I learned to think.
Four years at UBC: CS theory, data science, and real systems.
University of British Columbia
Bachelor of Science · Computer Science
Minor in Data Science
Relevant Coursework
4+
Years at UBC
CS + Data Science double-track
