Nelson Koskela

Software engineer based in Houston, TX. I spent four years building trading tools and data-pipeline systems at JPMorgan Chase, and side projects like this one because I can't quite stop.

Python Flask PostgreSQL Redis SQLAlchemy Socket.IO Docker RAG
Background

By the numbers

2021–26
JPMorgan Chase & Co.
10
Shipped side projects
Real
Postgres and Redis
100%
Built and documented solo
Education

Where it started

Ruth Asawa School of the Arts

Classical voice, minor in jazz, before pursuing computer science.

Howard University

Washington, DC. Initially attended before transferring.

Cogswell University of Silicon Valley

B.S. Computer Science.

Built on my own time

Featured projects

These run against live data and real infrastructure. No mock backends.

Pipeline World

Submit a character and watch it move through a real queued pipeline (validate, test, build, deploy) in a top-down world. Every run is logged and queryable on the analytics page.

RQ + Redis Socket.IO Postgres Window Functions
Open

Market Data Warehouse

yfinance's full price/dividend/split history pulled through an idempotent ingestion job into a dbt dimensional warehouse: a fact-table family (price, technical indicators, risk metrics) sharing conformed dimensions, plus a clearly labeled (not financial advice) trend projection. This page queries the built warehouse live, with a timeframe picker. Same dbt code runs on DuckDB, MotherDuck's free tier, or Snowflake.

dbt DuckDB Star Schema yfinance
Open

AI Assistant

A retrieval-grounded agent, not a scripted chatbot: a LangGraph agent loop decides for itself which tools to call and in what order, pulling real data from this site's own live projects (trading simulator, pipeline world, company scorer, timed-squares) instead of describing them from memory. Its flagship example chains three tool calls on its own -- a stock quote, a trend projection, then a written risk report -- deciding at each step what to call next based on what the last one returned. Retrieval runs over a pgvector store with local embeddings; generation is Groq, behind a rate-limited, prompt-injection-aware public endpoint. A stats page tracks tone, volume, and top questions from the logs, with no model calls.

RAG pgvector Embeddings Groq LangGraph
Open

See all 10 projects →

On the job

Experience

Data / quant engineering

Built Company Scorer's valuation, leverage, growth and profitability scoring off SEC EDGAR filings and market data, with a backtest module to check whether the score actually predicted anything.

Backend / infra engineer

Built Pipeline World's queued processing pipeline on RQ + Redis, with Postgres holding full run history and window-function analytics over every character that's gone through it.

Frontend / game logic

Built Timed-Squares' turn-based survival loop and public leaderboard in vanilla JS and HTML5 Canvas. No game framework.

Have something worth building?

Happy to talk through anything interesting.

Get in touch