About Me.

Recently

Most recently, I built aipapers.chat while studying for the AWS Certified Machine Learning Engineer – Associate exam, which I passed in June 2026. It is a conversational semantic search engine over 624K arXiv machine learning paper abstracts: I built a two-stage AWS Bedrock pipeline (Titan Embeddings + Claude Haiku) that handles retrieval, rewrites queries with context across multi-turn conversations, and synthesizes cited answers. I deployed it serverlessly on Lambda, API Gateway and CloudFront, so it carries no idle compute cost. How it was built →

Before that, I spent five years (2021–2026) as a Senior Research Engineer at Dataminr, on the team building the platform behind a large knowledge graph of real-world entities. My focus was the pipeline that carries an entity from raw ingestion through expert review, model evaluation and production deployment — and the human-in-the-loop tooling that let domain experts correct and validate what the models produced, since a knowledge graph is only as useful as the accuracy of what’s in it. I worked daily alongside data scientists and research engineers: building the FastAPI/Postgres and Neo4j/DynamoDB services those models ran on top of, and helping get their outputs evaluated, deployed and monitored on Kubernetes. Streamlining that ingestion-to-production loop is what took entity onboarding from weeks down to under a day.

Skills & Tools

Languages

Python
JavaScript / TypeScript
Bash
Java
C/C++
SQL

Frontend & Full-Stack

React
Node.js
Express
Vue
Ember.js
D3
HTML/CSS

Data & ML

NumPy & Pandas
Scikit-Learn
TensorFlow
NLTK
Jupyter
AWS Bedrock
OpenSearch

Infrastructure & Cloud

AWS Lambda, S3, SQS, API Gateway
DynamoDB & RDS
Kubernetes
Docker
CI/CD
Neo4j

AI-Assisted Development

Claude Code
GitHub Copilot
MCP
Claude Skills

Work Experience

Dataminr

From 2021 to 2026, I worked as a Senior Research Engineer at Dataminr on the platform behind a knowledge graph of real-world entities. I built data ingestion pipelines using Python, AWS Lambda, DynamoDB, RDS and Neo4j to represent knowledge both relationally and as a graph, and developed a single-page application that domain experts used to review and edit that data — the primary interface for human-in-the-loop quality control. I partnered closely with data scientists and research engineers to evaluate, deploy and monitor ML models running on Kubernetes, and coordinated across data engineering, research, backend and UI/UX teams to deliver a unified platform covering scalability, security and expert-facing workflows. Along the way I helped streamline entity onboarding — ingestion, expert review, model evaluation and deployment — cutting that pipeline from weeks to under a day, and I built and maintained backend services in FastAPI and Postgres.

Python
FastAPI & Postgres
Neo4j
DynamoDB & RDS
AWS Lambda
Kubernetes
Knowledge Graphs
Human-in-the-Loop ML

Opto Wealth

After working in industry for a while, I decided to start my own company. I had a lot of ideas and the big one I wanted to pursue was the “Google Finance for value investors”. No one at that time had really harnessed the mountains of data that are publicly disclosed in financial statements every day. These documents contain not only the income and balance sheets, but also tons of information about the brands, operations, risks and the executives/advisors. Reading these statements revealed all sorts of insights and raised many fascinating questions.

So, I set out to build services that could collect, parse and analyze these data. But I ran into a problem. Rudimentary parsing techniques (e.g., regular expressions) were not working well as they did not generalize to the large disparities in document formatting. At that point I knew a little bit about machine learning, but not enough.

While it would have been nice to just drop everything and get an advanced degree, it was simply not practical at that time. So I did what a typical engineer would do: I hit the books and took a course on Machine Learning and AI, starting with Andrew Ng’s Stanford course on Coursera. Seeing mathematics applied to modern optimization algorithms blew my mind. I ended up building an ingestion pipeline over SEC filings (10-Ks and 8-Ks) using AWS Lambda, SQS and S3, a TF-IDF search interface with NLP preprocessing to surface business insights across those filings, and a document classifier that I trained on 40,000 labeled samples to categorize filing types with 95% accuracy. That stretch of graduate-level coursework, which I pursued alongside running the business, is what pulled me toward research engineering next.

Machine Learning
Numpy & Pandas
NLTK & Scikit-Learn
Docker
Electron
Node.js
AWS Lambda, SQS & S3
Python
React/Vue

Interactive Intelligence

I stayed at the bank for about two years until a recruiter reached out about an interesting position: software engineer on a new cloud product called PureCloud in the telecommunications and customer service space. This was a highly robust product and my introduction to cloud services (AWS). We developed the application in Ember.js and unit-tested all of our components. I worked extensively with cloud architects, automation engineers and designers to build the application, focusing on optimization, internationalization, accessibility and cross-browser compatibility. One highlight: I developed and integrated a WebRTC feature that enabled peer-to-peer audio calls through Chromebooks, letting customers scale their operations faster and more cheaply. In 2016 I earned my AWS Certified Solutions Architect – Associate certification, and the team later promoted me to Senior Software Engineer in recognition of my technical contributions and leadership.

Agile Development
Backbone.js
Require.js
Single Page Applications
WebRTC
AWS Certified Solutions Architect

Deutsche Bank

As a UI Prototyper embedded on a UX team, I built prototypes and design assets for engineering teams. In comparison to what I was doing previously, this role was 100% front-end. This allowed me to focus on Javascript, HTML and CSS — all of which were undergoing drastic changes at the time. It was here that I gained experience in agile software development and the software development lifecycle. I also began seriously developing my Javascript skills. While the engineering teams worked in Java/GWT, my team developed and tested components separately. We also developed style guides and bundled UI assets for engineering teams to use.

Agile Development
Backbone.js
Require.js
Single Page Applications
Data Visualization

North Carolina State University

I got my start at North Carolina State University as a business and technology applications analyst, before moving in 2010 to the university’s primary communications department, where I began building web applications full-time. I developed solutions primarily in the LAMP stack (Linux, Apache, MySQL, PHP) and deployed them onto university hosts, using frameworks like CodeIgniter and custom Wordpress themes for most of the work, and performed database normalization along the way. Our team built web templates for university departments so they had an easier time staying on brand. In addition, we championed Git workflows for web content editors and ran usability studies to understand how users interacted with our content.

Content Strategy
Usability Testing
PHP
MySQL
Wordpress

Education

East Carolina University

I received my undergraduate degree in Computer Science from East Carolina University. Initially, I began in the School of Art & Design and then changed majors to computer science as engineering was a better fit for me. I found that I really liked constructing programs through abstraction to solve problems. It was here I studied analysis of algorithms, object oriented design and software engineering using languages: C/C++ and Java. Although I no longer use those languages, I learned a lasting lesson in how to design software components — and in perseverance.

MITx

I also completed graduate-level coursework toward the MicroMasters® Program in Statistics and Data Science from MIT, developed by faculty at MIT’s Institute for Data, Systems, and Society (IDSS). These were not casual online classes — they were genuinely difficult, real MIT problem sets covering the foundations of data science, statistics and machine learning. Across the two courses I completed, I implemented solutions for clustering, classification, recommender systems and probabilistic modeling.

Machine Learning with PythonFrom Linear Models to Deep LearningView certificate
ProbabilityThe Science of Uncertainty and DataView certificate

HarvardX

I also worked through HarvardX’s Tiny Machine Learning (TinyML) series, which covers deploying machine learning models directly onto resource-constrained embedded devices. The Deploying TinyML course had me building and deploying models with TensorFlow (TensorFlow Lite for Microcontrollers), a departure from the cloud-scale infrastructure I usually work with.

Fundamentals of TinyMLHarvardXView certificate
Deploying TinyMLHarvardXView certificate