Skip to content
View nkeeley's full-sized avatar

Block or report nkeeley

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
nkeeley/README.md

Description

This portfolio provides a snapshot of development work I've done professionally*, personally, and academically. Most development work centers around GenAI & ML workflows.

  • Languages: Python, R, SQL, HTML, JavaScript

  • Frontend & Backend Frameworks: React, FastAPI

  • AI/ML Frameworks: LangChain/LangGraph, HuggingFace Transformers

  • LLM Platforms: Claude, OpenAI, Llama

  • Infrastructure & Hosting: Docker, Ollama, Vercel, Railway

*Only includes contract work or takehome interview deliverables. Work done in fulltime roles (e.g. while data scientist at QuantumBlack) is not included in this portfolio for confidentiality reasons.

Last updated: 13 MAR 2026.

Table of Contents

Professional

🆕 FDE Interview: Bank Infrastructure

🆕 FDE Interview: Churn Prevention Dashboard

Contract: Webscraping for Medical Marketing Campaign

Contract: Shopper Marketing ROI Optimization (MSDS Capstone)

Personal

🆕 Weekend Planner Agent

Agentic RAG Experiement

QuantumBlack x Life Sciences Hackathon

Serapis

Academic

Project: "Cash, Credibility, and Conversion: The Influence of Synthetic Media on Investment Behavior" 现金、信念、和转化:合成媒体对投资行为的影响

Project: Exploring Company Earnings Calls Before & After COVID-19 (Exploratory Text Analytics)

Programming and Systems for Data Analysis (CS5010)

Foundations of Computer Science (CS5012)

Linear Models for Data Science (STAT6012)

Practice and Application of Data Science (DS6001)

Data Visualization and Analytics (DVA)

Data Science in Business (DSB)

Statistical Learning / Data Mining (DS6030)

Bayesian Machine Learning (DS6014)

Deep Learning (DS6050)

Exploratory Text Analytics (DS5001)

Professional

FDE Interview: Bank Infrastructure

Repository

Language types: Python, JavaScript

A full-stack banking application built as a take-home infrastructure exercise. FastAPI backend with SQLite, React frontend, JWT authentication, encrypted card storage, atomic transfers, and 123 automated tests. Live demo link

image

FDE Interview: Churn Prevention Dashboard

Repository

Language types: Python, JavaScript

Cleaned, transformed, and performed analysis (RFM K-means clustering) on an e-commerce transaction dataset to detect churn propensity. Wrapped pipeline into a FastAPI backend (hosted on Railway), and a React frontend (hosted on Vercel).

image

Contract: Webscraping for Medical Marketing Campaign

Repository

Language types: Python

Webscraped the names of 93K urologists, pulmunologists, and special infectious disease providers across the United States from doctor.webmd.com. Conducted fuzzy matching in order to match list of unknown emails to provider names. In order to preserve confidentiality, provider email list not included, but scraping script and fuzzy matching algorithm in repository script.

Contract: Shopper Marketing ROI Optimization (MSDS Capstone)

Repository

Language types: SQL, Python

A leading international consumer packaged goods (CPG) company asked our team (capstone project) to help with assessing the ROI of their shopper marketing strategies. They provided us access to their database, which totaled over 30M customer transactions and product marketing efforts. Our team extracted, cleaned, and aggregated this data prior to analysis. Based on pre-existing literature on retail sales forecasting, I chose to build a random forest model using walk-forward validation. My model ultimately outperformed our baseline/other competing models, and was accepted by our client for further development. We were able to use this model to determine effective vs. ineffective marketing strategies. Due to the proprietary nature of the data involved, this project notebook is selectively available by request - please message me at https://www.linkedin.com/in/nicholas-g-keeley/.

image

Personal

Weekend Planner Agent

Repository: proprietary! To sign up for beta, please email n.g.keeley2@gmail.com.

Language types: Python

Agent that interacts with user via email to create and deliver a personalized weekend plan. Includes a cronjob scraper for passive event collection, event enrichment (e.g. geocodes for distance), interactive messages via email (using natural language), and ranking algorithm.

Agentic RAG Experimentation

Repository

Language types: Python (via Jupyter notebook)

Ran online tutorial that leverages HF agentic framework to compare outputs of standard RAG against an "agentic RAG" (adjusts system prompts to optimize results). Tutorial can be found at this link: https://medium.com/the-ai-forum/build-an-agentic-rag-using-huggingface-transformer-agent-ec741f09ddcc.

QuantumBlack x Life Sciences Hackathon

Repository: None - isolated Jupyter Labs instance due to actual patient data

Language types: Python, SQL

Led a team of 4 in developing a predictive model for detecting rare disease (PNH) diagnosis on a database of 1M patients between 2017-2022. Included the following tasks:

  • Translated medical research into 600+ dataframe features; used Regex to translate medical diagnosis and procedures codes into binary flags and frequency counts
  • Used PySpark to stitch together multiple databases (procedures, diagnoses, patients, medical providers, pharmacy data, etc.) into usable timeseries dataframe
  • Built model pipeline for training RandomForest and XGBoost classifiers using walk-forward validation
  • Assisted with feature selection and hyperparameter tuning

Serapis

Repository: In progress

Language types: Python, SQL, HTML

Teamed up with a group of friends to create a team optimization dashboard/product for Pokemon Showdown users. While development details are proprietary, I served as the lead backend developer for this project. Tasks accomplished include the following:

  • Scraping opensource text, converting into cleaned data, and producing interactive visualizations
  • Designing database schema, setting up cloud database, and integrating with both frontend/backend
  • Building HTML pages with embedded payment services
  • Troubleshooting hosting service and database updates
  • Utilizing Flask and Selenium

Website (in progress) here: https://www.serapis.dev/ 08/06/2023 demo: https://www.youtube.com/watch?v=jh-vbAVWUtA

image

Academic

Project: "Cash, Credibility, and Conversion: The Influence of Synthetic Media on Investment Behavior"

现金、信念、和转化:合成媒体对投资行为的影响

Repository: In progress

Language types: Python

For the capstone project of the Schwarzman Scholars program, I empirically evaluated the influence of synthetic text on investment behavior (inspired by deepfakes and other forms of synthetic disinformation). I created two different survey versions in Chinese, embedding each with either a real earnings call transcript sample or a ChatGPT-generated one. Respondents were randomly exposed to either survey version and asked a series of questions. Data was compiled from the surveys, aggregated, and then analyzed via Welch t-tests. Semantic analysis (using a Chinese parser!) was conducted on qualitative responses. Results indicated that AI-generated financial text can significantly alter investor behavior, and even introduce more extreme "conversions" in opionion than their genuine counterparts. Full paper (Arxiv) here: https://arxiv.org/abs/2306.05033.

image

Project: Exploring Company Earnings Calls Before & After COVID-19 (Exploratory Text Analytics)

Repository

Language types: Python

For the capstone project of my Exploratory Text Analytics class, I chose to investigate how company earnings call language changed before/after the onset of the COVID-19 pandemic. I produced my own raw text dataset by scraping over 35K earnings calls publicly available on the Motley Fool's website, ultimately refining the corpus into a digital analytical edition that contained topic modeling, semantic algebra, PCA, agglomerative clustering, and more.

image

Programming and Systems for Data Analysis (CS5010)

Repository

Language types: Python

This repository contains key assignments and projects for an introductory programming course in Python. Topics include object oriented programming, webscraping, data visualization, and pandas dataframe querying.

Foundations of Computer Science (CS5012)

Repository

Language types: Python

This repository contains assignments and projects related to the fundamentals of relational database design, data structures, and algorithmic programminig. Topics include entity-relationship diagrams, graph networks, search algorithms, regular expressions, hash tables, database transactions, propositional logic, Big-O complexity, and the solutions for Nearest-Neighbor/Closest-Pair problems.

Sample ER Diagram

Linear Models for Data Science (STAT6012)

Repository

Language types: R

This repository contains assignments and projects for a course on basic statistics for data science. Course topics included single linear regression, multiple linear regression, logistic regression, transformation, ANOVA F-tests, stepwise/backwards/forwards model creation, and linearity assumptions.

Sample Visualization

Practice and Application of Data Science (DS6001)

Repository

Language types: Python, SQL

This repository contains assignments that involve loading, processing, and querying data along the "data pipeline." Data was accessed via tabular files, relational/NoDBMS databases, and APIs.

## Cursor query

pitch_cursor = winedb.cursor()
pitch_cursor.execute("SELECT title, artist, score FROM reviews WHERE score = 10")
response1 = pitch_cursor.fetchall()
df1=pd.DataFrame(response1)
df1

## Alt query

df2 = pd.read_sql_query("SELECT title, artist, score FROM reviews WHERE score = 10", winedb)
df2

## commit and close

winedb.commit()
winedb.close()

Data Visualization and Analytics (DVA)

Repository

Language types: SQL

This repository contains assignments involving data visualizations via Tableau, as well as big data querying/predictive model generation using GoogleBigQuery.

BigQuery

Data Science in Business (DSB)

Repository

Language types: Python

This repository contains several assignments and projects related to predictive modeling (using machine learning tecniques), data munging, and data visualization. For the final project, my team and I submitted a model to an expired Kaggle competition: the Microsoft Malware Classification Challenge.

image

Statistical Learning (DS6030)

Repository

Language types: R

This repository contains exams and assignments primarily involving hyperparameter tuning of statistical models. Additional topics include KNN models, model-based clustering/Kernel Density Estimation, association analysis, and validation techniques (e.g. OOB, k-fold, etc.). Note: each .Rmd file has an associated HTML file with a similar name.

image

Bayesian Machine Learning (DS6014)

Repository

Language types: Python

This repository contains assignments and projects relevant to Bayesian Machine Learning. Topics include practical applications of Bayes Theorem and conjugate analysis, Naive Bayes Classifiers and LDA/QDA Bayes Optimal Classifiers, Bayesian regression models, sampling methods (e.g. Gibbs Sampling, MCMC sampling, etc.), variational inference, Hidden Markov Models, pooled vs unpooled vs. hiearchical models, and an implementation of autoencoder variational Bayes to topic modeling. Note: many of these notebooks were produced on a remote operating system with pymc3 pre-installed. This package is required to run many of the sampling methods used, and is challenging to install on many computers.

image

Deep Learning (DS6050)

Repository

Language types: Python

This repository contains the assignments and projects related to a Deep Learning course. Topics included the architectures of Convolutional Neural Networks (CNNs), construction of CNNs from scratch and via Tensorflow Keras, the creation of recurrent neural networks, the application of transfer learning, and the detection of GAN-generated satellite images. Also, all assignment were run in GoogleCollabPro to reduce runtime duration/RAM maxout.

image

Exploratory Text Analytics (DS5001)

Repository

Language types: Python

This repository contains assignments and projects associated with exploratory text analytics. Topics include manual text cleansing/OHCO chunking using regex, parts of speech annotation, term-frequency analysis, n-gram analysis, agglomerative clustering, principal components analysis, topic modeling, and semantic algebra through word embeddings. For sentiment analysis-related content covered in class, please see https://github.com/nkeeley/Exploring-Company-Earnings-Calls.

sample

Popular repositories Loading

  1. git-novice git-novice Public

    Forked from swcarpentry/git-novice

    Software Carpentry introduction to Git for novices.

    HTML

  2. wizard wizard Public

    Forked from alonzi/wizard

    Vital damage calculations for a wizard in dungeons and dragons (5e).

    Python

  3. MSDS-Hackathon-Covid MSDS-Hackathon-Covid Public

    R

  4. CS5012-Foundations_of_Computer_Science CS5012-Foundations_of_Computer_Science Public

    This repository contains course assignments and projects for CS5012, including topics such as data structures, basic search and sorting algorithms, complexity, ER diagrams/database design, regex.

    Jupyter Notebook

  5. CS5010-Programming_and_Systems_for_Data_Analysis CS5010-Programming_and_Systems_for_Data_Analysis Public

    This repository contains key assignments and projects for CS5010. The course is an introduction to Python and associated packages. Topics include object oriented programming, data types and structu…

    Python

  6. STAT6021-Linear_Models_for_Data_Science STAT6021-Linear_Models_for_Data_Science Public

    This repository contains assignments and projects for a course on basic statistics for data science. Course topics included single linear regression, multiple linear regression, logistic regression…

    R