My name is Annie Cushing, and I’m passionate about all things data. Below is a summary of some of my work.
Table of Contents
Custom Apps
AI App Code Samples (Python)
Machine Learning Code Samples (Python)
Automation Projects
Data Viz Samples (Tableau & Python)
SQL Samples
dbt Demo
Presentations
Competitive Analysis
Making Data Sexy book
Tips
- Some portfolios contain videos as well as images. If it’s a video, there will be a play button in the lower-left corner.
- I recommend viewing both images and videos in full screen by selecting it from the lower-right corner.
Tip: Videos in the portfolios are best viewed by setting both the portfolio and the embedded video to full screen, as I demonstrate below.
- Move your mouse away from the video to view annotations, which I use to tell the story of a project.
- Press the esc key to exit full-screen mode.
Custom Apps
As I’ve gotten more comfortable with building ad hoc apps (with a fondness for lightweight Flask apps with Python-powered engines and JavaScript-powered interactivity), I’ve found that creating custom apps to aid in project management has been a crowd favorite. In one project that had a lot of moving parts and involved multiple teams I replaced the analog PowerPoint decks and spreadsheets with a single source of truth that everyone on the project could reference to help meet client expectations.
The first three examples are public-facing apps I built to help flatten the AI learning curve, the next is a search app that serves as a prototype for how to use Natural Language Processing to augment search capabilities in apps and dashboards, and the fifth is an example of an app I created in a week to replace a cache of decks and spreadsheets.
AI Timeline App
I maintain a comprehensive timeline of AI news and developments that dates back to 2019. Each event has extensive notes for quick reference, with citations for additional research. I built it using Flask, Python, jQuery, JavaScript, and a PostgreSQL database. You can learn how to use it in my announcement post.
Take me thereAI Strategy App
I also built an app for AI practitioners to be able to strategically pick models for their AI projects. I built it using Flask, Python, JavaScript, and a massive json object I built from scratch. I regularly maintain it when new leaderboards are published. You can learn how to use it in my announcement post.

Machine Learning Model Picker
To wrap up the trifecta of free apps for data scientists and AI practitioners, I created an app that walks users through the process of picking the best machine learning model for a particular task, using an interactive flowchart. I built it using Flask, Python, jQuery, JavaScript, and a massive json object I built from scratch.

Daybell Case App
I built a search app for a criminal case I’ve reported on since 2020 using Flask, Python, JavaScript, and a PostgreSQL database I built from transcripts of the three trials that have transpired since 2023. I use natural language processing to provide stemming, lemmatization, and a custom dictionary I built using the lexicon that’s unique to case to bolster matches. The article pages provide a highly interactive way to navigate matches by highlighting matches and auto-scrolling to the first match, with the option to use your left and right arrow keys to cycle through matches.
Project Management
A common issue I see in projects I participate in is there’s no single source of truth to guide the project. Project requirements are typically in MSA and or SOW agreements not accessible to the team, as well as disparate decks and spreadsheets that get lost in the shuffle. I will create lightweight apps that I make accessible to the team working on the project as well as key stakeholders to maintain transparency and alignment. Below is a redacted example of a Flask app that was an interactive network graph that helped organize a complex project with a lot of moving parts.

AI Apps (4)
4 samples
I’m only including AI apps if I either built them from scratch solo or if I built a component of the app so as to not take credit for anyone else’s work.
I’ve also built out user journey maps for AI apps, after doing extensive research into offerings that are typically scattered throughout a client’s website and supplementary material.
Machine Learning (7)
7 samples
I’ve worked with linear and logistic regression, k-means clustering, Naive Bayes classifiers, support vector machines, Random Forest, ridge regression, Gaussian mixture, and neural network models to date.
Automation Projects (3)
3 samples
These projects use a combination of Google Apps Script, Google Functions, Python, JavaScript, SQL, and Tableau. Whatever is necessary to automate tasks for clients and myself.
Data Visualization (34)
34 samples
Tableau (17)
17 samples
Although all dashboard tools are variations on a theme, my personal favorite is Tableau because of its ability to create highly dynamic dashboards. Below are some samples of my work.
Python
17 samples
Although Matplotlib is the de facto standard and I’ve worked with it, Plotly is my favorite Python graphing library because it’s interactive visualizations are very elegant. I’ve customized them so much, I have an 86-page document with notes, screenshots, and example files so that I can easily rinse and repeat.
SQL (12)
12 samples
Query Samples
I think SQL might be my fave programming language because of how rewarding it is to clean, transform, and massage data before it even hits the dashboard tool du jour. I especially enjoy creating segments on the fly that I can later use as an additional dimension in a chart and/or filter in a dashboard. Below are a few samples of some of the SQL queries I’ve written over the years.
Note: I normally comment out my code like it’s my job, but Tableau chokes on SQL code with comments and then flips on its back and wants a belly rub. ? I now spawn off tables that I set to refresh on a regular cadence and reference the table in my dashboards to avoid this issue, but I still need to go back and clean up my old code.
dbt Demo (1)
1 sample
Because of the sheer number of redactions that would be required to share my dbt work with clients, I created a demo project using publicly available data in BigQuery. I demonstrate:
- A data source YAML file that dictates the tests (i.e., constraints) to run on select columns to ensure data integrity.
- Multiple models of varying complexity (i.e., staging, intermediate, and mart).
- The inclusion of a seed file to pull in country names (the data sources just had ID and who knew the country code for Austria was AT).
- Macros to merge and sum 20 columns using Pythonic logic in a Jinja template.
- The creation of dbt’s sexy lineage graph to visualize your data pipeline.
Presentation Samples (2)
PowerPoint
1 sample
Because I can’t include client decks for obvious reasons, I’m including a PowerPoint deck I created for the last conference I spoke at. I created a quick demo of the presentation to showcase the interactivity, which provided an elegant fluidity that kept the audience engaged. You can download the presentation and fire it up in presentation mode if you are so inclined.
Python
1 sample
I’ve built out a custom workflow using a combination of five Python libraries (all free) and Jupyter Notebook extensions to create presentations with interactive charts that can be saved as an HTML file. Clients love this option because they can continue to dig into their data after I’ve presented it. For persistent data needs, I build out Tableau dashboards, but I do almost all ad hoc analyses in Python. I can’t share presentations I’ve created for clients, but below is an example presentation I did with The New Yorker‘s data because they weren’t a client.
Competitive Analysis
With every app I provide strategy for—whether that’s the data or AI strategy—I start with a comprehensive deep dive into competitor offerings in the same vertical. I sign up for apps, if they’re publicly available, take copious screenshots, compile them into some kind of visualization (e.g., Miro board) or spreadsheet (e.g., Airtable over Excel/Sheets because you can embed a lightbox for images and/or video into a cell). I categorize features and compare the approaches as well as provide analysis on features that are under-baked.
Then I take a deep dive into reviews for each competitor’s app to see if there are issues that engender negative reviews. As you can see in the demo below, some decisions (like moving a feature that was at one time free behind a paywall) evoke outrage. These insights serve as cautionary tales for clients because those initial reviews can make the difference between an app that rises to the top of searches or one that’s suppressed in app stores or search results.
Making Data Sexy Sample Chapter
44 pages
I published two versions of Making Data Sexy: one for Mac and one for Windows. It provides tutorials as well as tips for visualizations that aren’t built in to Excel. Since those processes oftentimes vary significantly between Mac and Windows, it warranted two different books.
Download this sample chapter here.
AI-Powered Redirect Concierge
My AI-powered 404 No More service uses AI to identify and resolve broken links efficiently. The service includes an interactive dashboard that highlights patterns and trends across a site’s broken pages, helping clients prioritize fixes strategically. Although this app isn’t publicly available (because there are human-in-the-middle requirements to the process), it is my most powerful app to date. I built is using Flask, Python, jQuery, JavaScript, and a PostgreSQL database.
See it in action in the demo video below.
AI Apps (4)
4 samples
I’m only including AI apps if I either built them from scratch solo or if I built a component of the app so as to not take credit for anyone else’s work.
I’ve also built out user journey maps for AI apps, after doing extensive research into offerings that are typically scattered throughout a client’s website and supplementary material.
Machine Learning (7)
7 samples
I’ve worked with linear and logistic regression, k-means clustering, Naive Bayes classifiers, support vector machines, Random Forest, ridge regression, Gaussian mixture, and neural network models to date.
Automation Projects (3)
3 samples
These projects use a combination of Google Apps Script, Google Functions, Python, JavaScript, SQL, and Tableau. Whatever is necessary to automate tasks for clients and myself.
Data Visualization (34)
34 samples
Tableau (17)
17 samples
Although all dashboard tools are variations on a theme, my personal favorite is Tableau because of its ability to create highly dynamic dashboards. Below are some samples of my work.
Python
17 samples
Although Matplotlib is the de facto standard and I’ve worked with it, Plotly is my favorite Python graphing library because it’s interactive visualizations are very elegant. I’ve customized them so much, I have an 86-page document with notes, screenshots, and example files so that I can easily rinse and repeat.
SQL (12)
12 samples
Query Samples
I think SQL might be my fave programming language because of how rewarding it is to clean, transform, and massage data before it even hits the dashboard tool du jour. I especially enjoy creating segments on the fly that I can later use as an additional dimension in a chart and/or filter in a dashboard. Below are a few samples of some of the SQL queries I’ve written over the years.
Note: I normally comment out my code like it’s my job, but Tableau chokes on SQL code with comments and then flips on its back and wants a belly rub. ? I now spawn off tables that I set to refresh on a regular cadence and reference the table in my dashboards to avoid this issue, but I still need to go back and clean up my old code.
dbt Demo (1)
1 sample
Because of the sheer number of redactions that would be required to share my dbt work with clients, I created a demo project using publicly available data in BigQuery. I demonstrate:
- A data source YAML file that dictates the tests (i.e., constraints) to run on select columns to ensure data integrity.
- Multiple models of varying complexity (i.e., staging, intermediate, and mart).
- The inclusion of a seed file to pull in country names (the data sources just had ID and who knew the country code for Austria was AT).
- Macros to merge and sum 20 columns using Pythonic logic in a Jinja template.
- The creation of dbt’s sexy lineage graph to visualize your data pipeline.
Python Presentation Sample (1)
1 sample
I’ve built out a custom workflow using a combination of five Python libraries (all free) and Jupyter Notebook extensions to create presentations with interactive charts that can be saved as an HTML file. Clients love this option because they can continue to dig into their data after I’ve presented it. For persistent data needs, I build out Tableau dashboards, but I do almost all ad hoc analyses in Python. I can’t share presentations I’ve created for clients, but below is an example presentation I did with The New Yorker‘s data because they weren’t a client.
Competitive Analysis
With every app I provide strategy for—whether that’s the data or AI strategy—I start with a comprehensive deep dive into competitor offerings in the same vertical. I sign up for apps, if they’re publicly available, take copious screenshots, compile them into some kind of visualization (e.g., Miro board) or spreadsheet (e.g., Airtable over Excel/Sheets because you can embed a lightbox for images and/or video into a cell). I categorize features and compare the approaches as well as provide analysis on features that are under-baked.
Then I take a deep dive into reviews for each competitor’s app to see if there are issues that engender negative reviews. As you can see in the demo below, some decisions (like moving a feature that was at one time free behind a paywall) evoke outrage. These insights serve as cautionary tales for clients because those initial reviews can make the difference between an app that rises to the top of searches or one that’s suppressed in app stores or search results.
Making Data Sexy Sample Chapter
44 pages
I published two versions of Making Data Sexy: one for Mac and one for Windows. It provides tutorials as well as tips for visualizations that aren’t built in to Excel. Since those processes oftentimes vary significantly between Mac and Windows, it warranted two different books.
Download this sample chapter here.