In Development

Art Wars
Digital Humanities

Art Wars is a simulated art market game; players buy and sell artworks and are subject to restitution, market fluctuation, insurance, appraisals, the financial effects of forgeries, and loopholes provided by tax havens and freeports. The website is developed with React.

Archaeological Survey Mobile App
Mobile App

Updating and modernizing an Android app first built in 2018 that is used to record archeological surveys with high-precision GPS, locate potential dig sites, and collect data about initial finds. The application will be ported from Java to Kotlin and updated for the latest version of Android.

Recent Projects

Digital Humanities

Puzzlee uses public domain images of artwork to offer a daily guessing game. Players reveal one square each turn and try to guess the name of the artist. The game is deployed via a web application written in Python using the Django framework. Data is stored in a PostgreSQL database.

AR Memory DC
Augmented and Virtual Reality

AR Memory DC is an augmented reality application compatible with iOS and Android which provides an alternative history for the National Mall in Washington, DC. Users can view virtual historical markers in AR and select them to learn more. They can also see an overview of all the markers on a map. Developed with React Native using the React Viro library for augmented reality.

Roadside Photography
Digital Humanities

Roadside Photography uses the 11,710 photographs within the John Margolies Roadside America Photograph Archive at the Library of Congress to map (both chronologically and geographically) the travels of architectural critic and photographer John Margolies. Public domain data scraped from Library of Congress website with a Python script. The website uses the Next.js Javascript Framework and the Leaflet.js mapping library.

Expensive Taste
Digital Humanities

Expensive Taste transforms historic art auction data into a “this or that” game; players are tasked with choosing the object that fetches the higher hammer price. Data was collected with web scraping scripts written in Python. Website developed with Python and the Django Web Framework. Data is stored in a PostgreSQL database.

Digital Humanities

AskRedditButAI is a website and AI Reddit and Twitter personality comprising 84,781 questions generated by a GPT-2 model trained on over 7,000 AskReddit posts. It presents 25 questions/day; users upvote or downvote each question. Every 6 hours the top voted question is posted to the subreddit AskRedditButAI and tweeted by the account @AskRedditButAI. The website is written with Python using Django Framework; questions are stored in PostgreSQL database. A cron job runs a script to automatically update the website daily.

Archaeological Data Collection Mobile App
Mobile App

This Android mobile application was developed for archaeological researchers for use in the field to record photographs and data about finds and survey activities. Data is saved to a remote server via a custom-built REST API. Developed for Android with React Native.

Archaeological Data REST API backend
Web Application

This private web application facilitates communication between a central PostgreSQL database hosted on a Windows server and a variety of mobile and desktop applications used in the field. Users upload data and images for later analysis. Developed with Python and Django Rest Framework.

No Nonsense Recipes
Web Application

No Nonsense Recipes offers users a clean and ad-free experience. It presents recipes with no pop-ups, SEO optimizations, or tracking scripts. Developed with Python, Django, PostgreSQL, and Bootstrap frontend.

Dr. Monica Steinberg
Dynamic CV

Professional website of Dr. Monica Steinberg, Assistant Professor, School of Modern Languages and Cultures (American Studies), The University of Hong Kong. The website is an online, dynamic CV. It is developed with the Wagtail Content Management System.

Dr. Erika Doss
Dynamic CV

Professional website of Dr. Erika Doss, the Distinguished Chair Professor at The Edith O’Donnell Institute of Art History at The University of Texas at Dallas. The website is an online, dynamic CV. It is developed with the Wagtail Content Management System.

GSA Spreadsheet Consolidation
Business Automation

The project entailed streamlining the client's process of gathering information from multiple sub-consultants. Scripted Excel to combine data from multiple spreadsheets and to calculate totals in the format required to successfully bid on government contracts.

AutoCAD Scripting (AutoLisp)
Business Automation

The project entailed developing numerous scripts using the AutoLisp language to automate repetitive tasks in AutoCAD such as placing and relocating objects and extracting data to populate Excel spreadsheets.


Innovative Geography
Data Analysis and Visualization

Searchable database (160GB of data) of over 7 million patents from the United States Patent and Trademark Office (USPTO) and 172 million scholarly papers from Microsoft Academic Graph. It visualized the geographic connections among collaborators and helped identify geographic trends in different fields using an interactive webapp format. Full-text search is achieved with an Elasticsearch index and presented via a React based website. Python and SQL were used for the data analysis.

Web Application

This was an online marketplace/network and requirements-gathering application for Architecture and Engineering consulting work. Built using Gatsby, React, AWS Amplify.

Web Application

This was a predictive modeling application that used machine learning and natural language processing to determine fees for new MEP and Architecture proposals based on past projects. Built using Django, Python, scikit-learn, and pandas.

Web Application

A now-retired (in 2014) social news website using the Django web framework. Responsible for all aspects of implementation from MySQL database to frontend HTML, CSS, and Javascript interface. The site used the jQuery Javascript framework and AJAX where appropriate to provide a (then) modern interactive experience.