Portfolio

Joseph Prasanna Suresh Baskar

Software engineer in Edmonton, Alberta. Bachelor of Science in Computing Science, Artificial Intelligence Option, University of Alberta, Sep. 2022 to Aug. 2026.

env
Saturn-v0
tracks
AI/ML, full-stack, DevOps
mode
exploit, plain HTML

quorumused daily by 100+ cancer researchers at the Cross Cancer Institute.5 min → 3 s per image.Dice 0.43 → 0.83.quorum-ai.app

$ python scripts/lander.py # PPO on LunarLander-v3

The lander in Explore mode is a PPO agent (Stable-Baselines3) trained for this site on Gymnasium's LunarLander-v3, to 1,015,808 steps on CPU. Each replay below is one recorded episode from a checkpoint, all on seed 0. Eval mean is over 20 deterministic episodes.

  1. 32,768 steps

    eval -101.9

    crashed, -291.1

  2. 114,688 steps

    eval -172.4

    crashed, -96.6

  3. 311,296 steps

    eval +128.4

    landed, +207.8

  4. 1,015,808 steps

    eval +260.6 ± 20.6

    landed, +271.1

$ ls ~/projects # policies

2026.01Quorum5 min → 3 s per imageSegments chromocenters in fluorescent microscopy images. Used daily by 100+ cancer researchers at the Cross Cancer Institute.

Jan. 2026 to Apr. 2026

  • A web application with a React front end and a Python/Flask back end.
  • Reduced segmentation time from 5 minutes to 3 seconds per image.
  • Improved the Dice coefficient from 0.43 to 0.83 by benchmarking four segmentation architectures: Cellpose 2.0, U-Net, U-Net++, and DeepLabV3.
  • Quorum stands for Quick micron Object Recognition by U-Net++ Masking.
  • "Quorum: A Web-Based Deep Learning Framework for Chromocenter Segmentation", submitted for peer-reviewed publication, Aug. 2026.
  • Co-author, Quorum poster, Gairdner Alberta Partnered AI + Health Research Symposium, Sep. 2026.

stack React, Python, Flask, PyTorch

live
2026.08DSA Interview Prep17 topics, SM-2 schedulerTeaches data structure and algorithm patterns, then schedules practice with a spaced-repetition algorithm written from scratch.

Aug. 2026

  • Each pattern is taught through a written explanation, a step-by-step animation, and a checkpoint quiz.
  • Built alone in about one day with Claude Code. Every generated change was reviewed by hand against a design philosophy defined first.
  • Progress is stored in the browser by default (no sign-up) and syncs to Firestore after optional Google sign-in.
  • "Drill" mode: roughly 90-second approach checks without code, graded by keyword matching, with an optional LLM grader through the OpenRouter API as a fallback.
  • TypeScript type-checking and the Vitest suite run before every deploy, through GitHub Actions to Firebase Hosting.

stack React 18, TypeScript, Vite, Tailwind CSS, Firebase (Auth, Firestore, Hosting), Vitest

live
2026.06Cortex9-node LangGraph agentAn 8-service event-driven platform on Apache Kafka, packaged for Kubernetes with a Helm chart.

Jun. 2026 to Jul. 2026

  • A 9-node LangGraph agent (Observe, Retrieve, Verify, GraphTraverse, Reason, Ground, Explain, Recommend, Notify) with a grounding validator that rejects any LLM citation not backed by retrieved evidence.
  • A provider-agnostic LLM client that works with any OpenAI-compatible endpoint (OpenAI, Azure, Groq, Ollama, vLLM).
  • Six authenticated integrations (GitHub, Slack, Jira, Notion, Google Calendar, PagerDuty) using OAuth 2.0 authorization-code-with-refresh, GitHub App JWT, and HMAC webhook verification, with cursor, offset, and page-token pagination, exponential backoff, and rate-limit handling.
  • A 2-layer graph neural network written from scratch in NumPy (forward pass and backpropagation by hand, no deep learning framework), trained on 24,918 ServiceNow incidents and selectable in place of the default weighted scorer.
  • A GitHub Actions pipeline of 8 gated jobs: unit, contract, build-and-smoke matrix, Docker Compose smoke, Playwright end-to-end, and live-container integration tests against Neo4j, Qdrant, and Kafka.
  • Observability: Prometheus RED metrics, Grafana dashboards and alert rules, Kafka consumer lag, and a trace id carried on every event from ingestion to notification.
  • Ports-and-adapters architecture, with an in-memory runtime for local development and a production runtime with live services.

stack Python, FastAPI, LangGraph, Apache Kafka, Neo4j, Qdrant, Kubernetes, Helm, GitHub Actions

repo
2026.05TsukiReact Native + three.jsA cross-platform mobile music player. Offline-first, with no account or streaming dependency. Built alone.

May 2026 to Jun. 2026

  • Now Playing screen: a turntable (React Native views, SVG, and gradients, not a game engine) with gesture scrubbing and a button-equivalent fallback for accessibility.
  • Library: a distance-driven vertical coverflow and a horizontal shelf for favourites and playlists.
  • Visual screen: a low-poly Earth-and-Moon scene using three.js and react-three-fiber that spins with momentum, zooms on tap, and reacts to playback.
  • Microphone-based song identification routed through a Cloudflare Worker proxy that keeps the third-party API token off the client.
  • Spotify and YouTube Music playlist import through OAuth 2.0 PKCE.
  • EAS production builds that meet App Store and Play Store compliance requirements.

stack React Native, Expo (SDK 54), strict TypeScript, Zustand, Reanimated 4, Gesture Handler, expo-audio, expo-router, Cloudflare Workers

repo
2025.08F1 Race Predictorlog loss 0.117A React dashboard with a 3D car viewer on a FastAPI prediction service.

Aug. 2025

  • Log loss of 0.117 and Hit@3 of 0.938 on a locked 48-race holdout (2024 and 2025), run once. For scale, a uniform guess scores 0.1986 and a grid-only logistic regression 0.1307, pooled over 193 races. Five model families were compared (XGBoost and PyTorch).
  • Every feature is a point-in-time SQL window query whose frame ends one row before the race being predicted, checked by leakage, referential-integrity, and metric-correctness tests.
  • Found and fixed 5 silent pipeline defects that raised no errors, including a SQL window that doubled rows and a circuit-ID mismatch that nulled 24 races.
  • A 29-entry append-only experiment log records each hypothesis, metric, configuration change, and retraction.

stack Python, SQL, PostgreSQL, SQLAlchemy, Alembic, XGBoost, PyTorch, FastAPI, React, pytest

live
2025.05Pill Streak HeroSpring Boot + ReactA medication adherence application with streak mechanics. A 2-service client-server system.

May 2025 to Aug. 2025

  • Java and Spring Boot REST API backed by a relational PostgreSQL schema, with a React and TypeScript front end, verified with JUnit tests.
  • Run on a local minikube Kubernetes cluster in Docker containers.
  • An LLM API feature generates personalized medication reminders.

stack Java, Spring Boot, PostgreSQL, React, TypeScript, JUnit, Docker, minikube

no public link

# on a desktop, each project opens a hands-on "how it works", and the whole site can be explored in 3D.

$ cat ~/experience.log # training history

Jan. 2026 to Apr. 2026

Full-Stack Machine Learning Researcher

Cross Cancer Institute, Edmonton, AB

  • Built and deployed Quorum, a web application (React front end, Python/Flask back end) that segments chromocenters in fluorescent microscopy images. It reduced segmentation time from 5 minutes to 3 seconds per image and is used daily by 100+ cancer researchers.
  • Improved the Dice coefficient from 0.43 to 0.83 by benchmarking four segmentation architectures: Cellpose 2.0, U-Net, U-Net++, and DeepLabV3.
  • Supported a manuscript submitted for peer-reviewed publication in Aug. 2026 by conducting code reviews, writing documentation, and iterating on features with research stakeholders.

Sep. 2024 to Apr. 2025

Member, Tire Modelling & Vehicle Dynamics Team

University of Alberta Formula SAE, Edmonton, AB

  • Reduced telemetry post-processing time by 25% by building automated Python pipelines for CAN bus logs.
  • Informed vehicle setup decisions by applying statistical analysis to race telemetry data.
  • Applied Pacejka tire-model formulas to race telemetry data to support the team's tire modelling work.

May 2024 to Aug. 2024

Intern, AI and Data

Etisalat, Dubai, UAE

  • Raised HelpMeFind chatbot retrieval accuracy from 56% to 91% by building a retrieval-augmented generation (RAG) pipeline with Redis vector search and OpenAI APIs on Azure.
  • Shipped a multi-modal Generative AI Studio spanning three content modalities (text, image, audio) to company-wide production.
  • Built Python FastAPI microservices with retry logic, rate-limit handling, and Redis caching for reliability under high-traffic load.

Sep. 2022 to Aug. 2026

Bachelor of Science in Computing Science, Artificial Intelligence Option

University of Alberta, Edmonton, AB

$ cat ~/honors # rewards

$ whoami # agent

I am a software engineer who graduated from the University of Alberta in August 2026 with a Computing Science degree and the Artificial Intelligence option. I build full-stack web applications, machine learning systems, and event-driven backend services.

My work includes a segmentation application used daily by more than 100 cancer researchers at the Cross Cancer Institute, a retrieval-augmented generation pipeline at Etisalat, and a Kubernetes platform of eight services. I started programming during the COVID lockdowns and have used Python for about six years.

$ cat ~/skills # action space

Languages
Python, TypeScript, JavaScript, Java, SQL. C and C++ at coursework level only.
Front end
React, React Native, Expo, Vite, Tailwind CSS, Zustand, Reanimated, three.js, react-three-fiber.
Back end
FastAPI, Flask, Spring Boot, Cloudflare Workers, RESTful APIs, OAuth 2.0, Apache Kafka.
Data and ML
PyTorch, XGBoost, scikit-learn, NumPy, pandas, retrieval-augmented generation, LangGraph, graph neural networks, PostgreSQL, Redis, Neo4j, Qdrant, Firestore.
Infrastructure
Docker, Kubernetes, Helm, GitHub Actions, Prometheus, OpenTelemetry, Azure, Firebase, Git, Linux (coursework and containers).
Testing
pytest, JUnit, Vitest, Playwright.
AI tools
Claude Code, Copilot, Codex.

$ ls ~/hobbies # off-policy

$ ls ~/shelf # replay buffer, 41 entries

$ ls ~/photos # observations

Shot on iPhone, edited in Lightroom.

$ cd ~/garage # Formula 1

Related work: F1 Race Predictor and the University of Alberta Formula SAE tire modelling team.

$ cat ~/space/india.log # ISRO

  • 2009-09-24NASA's Moon Mineralogy Mapper, carried on ISRO's Chandrayaan-1, found water molecules on the lunar surface. source
  • 2014-09-24The Mars Orbiter Mission entered Mars orbit: the first Asian nation there, and the first nation to do it on a first attempt. source
  • 2017-02-15PSLV-C37 deployed 104 satellites in one launch, a single-launch record at the time. source
  • 2023-08-23Chandrayaan-3's Vikram lander touched down near the lunar south pole, the first landing there; India became the fourth country to soft-land on the Moon. source
  • 2024-01-06Aditya-L1, the solar observatory launched on PSLV-C57, entered its halo orbit around Sun-Earth L1. source

$ cat ~/space/ml.log # machine learning in space

  • 2016-05AEGIS began choosing ChemCam laser targets on NASA's Curiosity rover, from Navcam images, on board. source
  • 2017-12A neural network trained on Kepler data found Kepler-90i, an eighth planet around Kepler-90, and Kepler-80g. source
  • 2020-09-03ESA's Phi-sat-1 launched, the first European satellite with on-board AI, discarding cloudy images before downlink. source
  • 2023-04PRIMO, a machine-learning reconstruction, sharpened the Event Horizon Telescope's image of the M87 black hole. source
  • 2023-08-03NASA and IBM released Prithvi, an open geospatial foundation model trained on Harmonized Landsat and Sentinel-2 data. source

Favourite planet: Saturn, drawn in dust at the top of this page.

$ siege --operator deimos # Rainbow Six Siege

Plays occasionally. Highest rank: Emerald 1.

$ finger joseph # terminal state