Portfolio 2025 / 26 Mt. Olive, NJ

Atharva Usturge.

I build software for finance, accessibility, and robots.

I build software across the stack, from autonomous trading systems to accessibility-focused APIs.

I am a rising senior in the Academy of Computer & Information Sciences at Morris County School of Technology, where I also complete dual-enrollment coursework through the County College of Morris. I work most often in Python and Java, and I am drawn to the infrastructure that makes software dependable: automation, clean APIs, and systems that keep running without supervision.

My goal is a career in Financial Technology, where rigorous engineering meets real financial decision-making. I have accepted a Quantitative Researcher internship at Vise, a portfolio-management platform for independent financial advisors. The projects below reflect that direction: market analysis and trade automation, alongside the full-stack and accessibility work that taught me how to ship reliable software end to end.

Languages

  • Java
  • Python
  • C++
  • JavaScript
  • R
  • HTML
  • CSS

Tools & Frameworks

  • Git
  • FastAPI
  • REST APIs
  • Linux
  • WPILib
  • VS Code
  • CLI

Projects.

01

Claude Trading Agent

  • FinTech
  • Automation
  • Python

Problem

Active swing trading demands constant screening, sentiment reading, and disciplined execution, work that is easy to do inconsistently by hand. This agent automates the full loop so that a systematic strategy runs unattended.

What it does

Scans 254 large-cap stocks weekly for trend (60-day relative strength vs. SPY) and dip signals, layers in news and social sentiment, then places risk-managed orders on Alpaca and posts P&L to Discord. The entire system runs on scheduled GitHub Actions. No server.

Stack

Python · alpaca-py · pandas · numpy · Groq (Llama 3.3 70B) · Claude · Alpaca News API · Stocktwits & Reddit sentiment · GitHub Actions · Discord webhooks

Process & reflection

I split the bot into a clear pipeline (research → analyze → execute → monitor) so each stage could be tested on its own. The hardest part was that GitHub Actions runs are stateless: every run starts cold, with no memory of open positions. I solved it by persisting trade history and portfolio snapshots to memory.json and enforcing risk rules (5% stops, at most three positions at 20% each) on every wake-up, which made unattended execution reliable.

View code: position sizing
# risk.py: fixed-fractional position sizing with a hard cap
MAX_POSITIONS = 3      # never hold more than three names at once
ALLOCATION    = 0.20   # commit 20% of equity per position
STOP_LOSS     = 0.05   # 5% protective stop on every entry

def size_order(equity: float, price: float, open_positions: int) -> int:
    """Return whole-share count for a new entry, or 0 if we're at capacity."""
    if open_positions >= MAX_POSITIONS:
        return 0                      # respect the concurrency cap
    dollars = equity * ALLOCATION     # dollars allotted to this trade
    return int(dollars // price)      # brokers fill whole shares only

Representative logic. Full source on GitHub.

View screenshot
Claude Trading Agent posting a trade execution and P&L update to Discord.
Discord webhook: weekly trade execution and P&L update.
02

Tavio

  • Accessibility
  • REST API
  • FastAPI

Problem

Finding a restaurant that fits your needs is hard when you can’t scan a menu by sight. Tavio is a backend that makes restaurant discovery, menus, and recommendations work for blind and visually impaired users.

What it does

Stores restaurant and menu data, discovers nearby options through Google Places, enriches them with travel time from Google Routes, and returns the top three matches scored against a user’s cuisine, dietary, allergen, spice, price, and travel-time preferences.

Stack

FastAPI · PostgreSQL · SQLAlchemy · Pydantic · Google Places API · Google Routes API · Python

Process & reflection

I designed the recommendation engine as a weighted blend of independent match functions, each returning a 0–1 score, so I could tune one dimension without breaking the others. The trickiest piece was composing two Google APIs cleanly (Places for discovery, Routes for travel-time enrichment) while keeping the data model strict with Pydantic so bad input never reached the scorer.

View code: weighted match score
# recommend.py: blend per-dimension matches into one ranking score
WEIGHTS = {"cuisine": 0.30, "dietary": 0.25, "allergens": 0.20,
           "spice": 0.10, "price": 0.10, "travel": 0.05}

def score(restaurant, prefs) -> float:
    """Each match_* fn returns 0..1; weights make the trade-offs explicit."""
    parts = {
        "cuisine":   cuisine_match(restaurant, prefs),
        "dietary":   dietary_match(restaurant, prefs),
        "allergens": allergen_safety(restaurant, prefs),
        "spice":     spice_match(restaurant, prefs),
        "price":     price_match(restaurant, prefs),
        "travel":    travel_match(restaurant, prefs),
    }
    return sum(WEIGHTS[k] * v for k, v in parts.items())

Representative logic. Full source on GitHub.

View screenshot
Tavio backend: restaurant recommendation API response.
Recommendation response: ranked restaurants scored against a user’s preferences.
03

Isolytics

  • Mobile
  • Team
  • TypeScript

Problem

Fitness data is normally scattered across half a dozen apps: one for lifts, another for meals, another for cardio, another for progress photos. Isolytics pulls all of it into a single cross-platform mobile app, with an AI assistant for fitness and nutrition questions.

What it does

One Expo + React Native codebase that ships to iOS, Android, and the web. Tracks body composition (body-fat % via the U.S. Navy circumference method), lifts, meals with macros, GPS-tracked cardio runs, and dated progress photos, all surfaced in a unified history timeline. A Gemini-powered chat answers fitness questions in-app. Auth and per-user data live in Supabase with Row-Level Security; lifts, meals, and photos are cached locally so history works offline.

Stack

TypeScript · React Native · Expo · Expo Router · Supabase (Auth + Postgres + RLS) · Google Gemini API · expo-location · expo-camera · AsyncStorage

Process & reflection

Choosing Expo + React Native let the team ship one codebase to three platforms; Expo Router’s file-based routing kept the navigation tree obvious as features were added. The two pieces that took the most iteration were the live GPS cardio tracker built on expo-location (streaming route points, distance, and elevation in real time without draining the battery), and the Supabase Row-Level Security policies, which had to be airtight so users could never read another user’s rows.

View screenshot
Isolytics: cross-platform fitness tracking app screen.
Isolytics: one of the app screens running on iOS.
04

Teddy Bear Clinic

  • Nonprofit
  • Team
  • Flask

Problem

Kids often associate doctors, EMTs, and fire trucks with stress and fear, which makes real emergencies and routine medical visits harder. The Teddy Bear Clinic is a Morris County 501(c)(3) that flips that script: children bring stuffed animals to a free community event for pretend check-ups with real healthcare workers and first responders. The site is its public face.

What it does

The site is the org’s signup hub and storytelling surface: registration for the next clinic (2027), the org’s mission and team, volunteer and partnership recruitment, a gallery of past events, and sponsor recognition (Nomadics, Morgan Stanley). It supports the nonprofit’s ongoing work: they’ve served 750+ children to date.

Stack

Python · Flask · Jinja templates · vanilla HTML, CSS & JavaScript

Process & reflection

The team chose Flask + server-rendered Jinja templates over a SPA framework for the right reasons here: the site is mostly read-only content with one registration flow, so a single Python process keeps hosting simple, page loads fast, and there’s no build step to maintain, important for a volunteer-run org that has to be able to hand the codebase off.

View screenshot
Teddy Bear Clinic: live nonprofit website.
theteddybearclinic.org, the deployed nonprofit site.

Atharva Usturge

Fintech systems builder focused on signal, risk, and real-time reliability.

Operating principles

Clarity • Resilience • Velocity