Nathan Johnson

Senior at Loyola University Chicago studying Computer Science & Incoming Software Engineer at Enova International.

Passionate about building scalable fintech infrastructure, high-performance computing, and AI-driven solutions.

Based in Chicago, IL
Selected work

Some projects worth sharing

A collection of things I’ve worked on, from movie recommendation systems based on watch history to auto-generated Minecraft parkour videos, plus everything else in between.

Machine Learning

Movie Recommendation Website

A Python-based collaborative filtering engine that scrapes Letterboxd ratings to generate personalized movie recommendations using SVD.

Learn more

Movie Recommendation Website

Overview

For the Fall 2024 semester Loyola's AI Club completed a Python-based movie recommendation system that scrapes user movie ratings from Letterboxd and generates personalized movie recommendations using collaborative filtering techniques.

My Role

As president of the club and leader of the Model group I was responsible for overseeing the development and implementation of the recommendation algorithms, coordinating data collection efforts, and ensuring the integration of the model with the web application as well as coordinating and collaboration between different teams for my role as president.

Tech Stack

  • Python
  • Flask
  • PostgreSQL
  • scikit-learn
  • TailwindCSS
  • Heroku

Model

The recommendation pipeline takes a Letterboxd username, scrapes the user’s movie ratings, and combines them with a large global ratings dataset. A collaborative filtering model (SVD or Baseline using scikit-surprise) is trained on the merged data to predict ratings for movies the user hasn’t seen. Candidates are filtered using a configurable popularity/obscurity threshold, then ranked to return top-N recommendations.

In addition, a content-based system uses TF-IDF and cosine similarity on movie metadata (genres, languages, countries) to surface similar films.

Application

A full-stack Flask web application with server-side rendering using Jinja2. The UI is styled with TailwindCSS and enhanced with vanilla JavaScript. PostgreSQL and SQLAlchemy manage users, movies, ratings, and watchlists, with Flask-Login handling authentication and sessions. Cloudinary is used for user profile image storage. The app is production-ready and deployed using Gunicorn in a Heroku-style environment.

Product

Reddit Story Clipper

An automated pipeline that transforms engaging Reddit stories into vertical video clips with text-to-speech narration and Minecraft parkour background.

Learn more

Reddit Story Clipper

Overview

An automated content creation pipeline designed to transform text-based Reddit stories into high-engagement short-form video content. This Python tool bridges the gap between text communities and video platforms like TikTok and Instagram Reels by generating complete, narrated videos instantly.

Tech Stack

  • Python
  • MoviePy
  • FFmpeg
  • Google Cloud TTS
  • PRAW
  • NLTK

Engineering & Architecture

  • Content Discovery: Connects to the Reddit API (via PRAW) to algorithmically identify trending stories based on upvote velocity, sentiment analysis, and subreddit relevance.
  • Audio Processing: Converts raw text to high-fidelity speech using Google Cloud TTS. Leverages NLTK for natural sentence chunking and pacing to ensure life-like narration flow.
  • Video Assembly: Programmatically configures MoviePy and FFmpeg to layer narrated audio, synchronized dynamic captions, and engaging background footage (e.g., Minecraft parkour) into a single rendered output.

Workflow

The system operates as a configurable CLI tool. Users define target subreddits, voice parameters, and video styles via a centralized YAML configuration file, allowing for batch production of content with consistent branding. The pipeline handles the entire rendering process, outputting polished vertical videos ready for upload.

Web Application

Virtual Couples Scrapbook

A personal digital scrapbook explicitly designed to protect and modernize cherished memories, bridging a static legacy photo album with a modern, cloud-based archive.

Learn more

Virtual Couples Scrapbook

Overview

I built this website as a digital scrapbook for my girlfriend, Hannah — a place to preserve our memories while giving new life to an old, hand-coded archive. What started as a static site evolved into a hybrid web app with a secure backend, allowing us to safely upload new photos, notes, and moments without losing the charm of the original site. It’s private, playful, and designed to grow with us.

Tech Stack

  • HTML5
  • Tailwind CSS
  • Vanilla JavaScript
  • Node.js (Serverless)
  • Supabase
  • PostgreSQL

Engineering & Features

  • Private Memory Uploads: A custom password-protected admin area secures all upload routes using hashed credentials and signed session cookies, so adding new memories is simple and safe.
  • Cloud Migration: Built an automated pipeline to move legacy images and metadata from local storage into Supabase Storage and a PostgreSQL database, making the scrapbook scalable and future-proof.
  • Best of Old + New: The original static pages live alongside dynamically loaded content from the database, blending nostalgia with modern functionality.
  • Interactive Surprises: Includes a gamified scavenger hunt that lets Hannah unlock hidden memories through puzzles — because a scrapbook should be fun, not just functional.
Live Site

You can check out the website but it's password protected so good luck!

Discord Bot

Discord Parlay Bot

A sophisticated Discord bot that generates optimized sports betting parlays with real-time odds, fair probability analysis, and expected value calculations.

Learn more

Discord Parlay Bot

Overview

The Discord Parlay Bot bridges the gap between casual sports fandom and analytical betting. Instead of manually scouring sportsbooks for combined bets, users can simply request a parlay directly within their Discord community. The bot doesn't just randomly pick winners; it constructs a three-leg bet based on live market data and performs a quantitative analysis on the wager. It decompiles the sportsbook's odds to determine the "fair" price, calculates the expected return on investment (ROI), and suggests an optimal bet size. Built with a focus on modularity and community management, it serves as an interactive tool for sports communities to discuss and discover value bets together.

Tech Stack

  • Python 3.11+
  • discord.py
  • httpx
  • The Odds API
  • Docker

Engineering & Features

  • On-Demand Parlay Generation: Users can generate multi-leg parlays instantly via slash commands (/parlay), customizing for sport (NBA, NFL, MLB, NHL), market, and risk tolerance.
  • Live Odds Integration: Fetches real-time data from major sportsbooks (FanDuel, DraftKings, etc.) via The Odds API.
  • Advanced Analytics: Calculates "Fair Probability," Expected Value (EV+), and provides Kelly Criterion staking recommendations for every generated bet.
  • Risk Management: Includes correlation warnings to prevent conflicting parlay legs and configurable daily usage limits based on user roles.
  • Admin Controls: Built-in health checks and role-based access limits to manage API usage costs efficiently.
Experience

Curriculum Vitae

Engineering, research, and leadership work across fintech, Computational Sciences, and campus communities.

View My Resume
Jun 2025 – Aug 2025

Software Engineering Intern

Enova International · Chicago, IL
  • Completed an internship in the Small & Medium Business division modernizing legacy systems via cloud-native architecture.
  • Migrated core business functionality into Go + AWS Lambda microservices backed by Salesforce Apex and Terraform.
  • Partnered with cross-functional teams to deliver fault-tolerant, production-ready solutions that scale with the platform.
Go AWS Lambda Salesforce Apex Terraform Microservices
Jan 2025 – Apr 2025

Business Development Intern

TrueLayer · London, UK
  • Support a leading Pay-by-Bank/Open Banking provider by identifying commercial opportunities in fast-moving markets.
  • Analyze partner data to surface strategic plays that grow A2A adoption.
  • Collaborate across technical and non-technical teams, reinforcing communication and problem-solving skills.
Pay-by-Bank Open Banking Data Analysis Business Development
May 2024 – Aug 2024

Computational Research Aide — Sophomore

Argonne National Laboratory · Lemont, IL
  • Offloaded performance-critical sections of HPC programs to GPUs using SYCL.
  • Optimized parallel workloads using OpenMP, improving scalability and efficiency across large clusters.
  • Conducted profiling (MAQAO) to identify bottlenecks and implemented multi-threaded optimizations.
SYCL OpenMP GPU HPC C++ Performance Profiling
Jan 2024 – Present

Computer Science Tutor

Loyola University Chicago · Chicago, IL
  • Weekly tutor in the Computer Science Department, supporting students in Computer Science core courses.
  • Subjects include Introduction to Computing Tools and Techniques, Discrete Structures, Object-Oriented Programming, Computer Systems, and Data Structures.
Data Structures OOP Algorithms Teaching Tutoring
Aug 2023 – Dec 2024

Loyola AI Club President

Loyola University Chicago · Chicago, IL
  • Led a machine-learning movie recommendation project utilizing Pandas, NumPy, and Scikit-learn with around 15 active contributors.
  • Organized weekly meetings, competitions, and guest speakers to expand member engagement tripling the active membership.
  • Increased club presence on campus while strengthening leadership and communication skills.
Artificial Intelligence Machine Learning Club Leadership
May 2023 – Aug 2023

Computational Research Aide

Argonne National Laboratory · Lemont, IL
  • Developed Python-based HPC workflows and integrated C/C++ libraries for performance-critical modules.
  • Employed cProfile and mpi4py for benchmarking and parallel execution, boosting distributed performance.
  • Researched various Python and C/C++ bindings for interoperability and performance optimization.
Python HPC Research Lab C/C++ Performance Optimization
Aug 2022 – Expected May 2026

B.S. in Computer Science

Loyola University Chicago · Chicago, IL
  • GPA: 3.93
  • Relevant Coursework: Data Structures and Algorithms, Discrete Math, Calculus I & II, Linear Algebra, Computer Systems, Programming Languages, Operating Systems, Object-Oriented Design, Machine Learning, Software Engineering.
  • Future Coursework: Database Programming, NLP, Deep Learning.
Computer Science Education University DS & Algorithms