I'm a software developer who's excited by the prospect of building tools that others find useful. I'm very interested in testing and Agile methodologies. I've written and iterated on automated tests for my personal projects, making several improvements as I've learned more.
A lifelist app for birders
Live Site
Gitlab Repo
We deliver a single-page application on the front end using React and a backend API using FastAPI. Data is managed by a PostgreSQL database. The Birddex repo contains several design diagrams and our project journals.I integrated Azure blob storage in order to allow users to upload their own images to the site.
Topics: Dynamic Rendering Web Page, User Authentication, API, SQL Database, Automated Testing, Heroku
A portal to your web-based teaching aid
Live Site
Gitlab Repo
Proficient is a portal to my available teaching aids. We have Pdiff and Calends with more to come! Proficient manages your login details accross all the apps, and keep an eye out for more functionality on the portal as well!Topics: Authentication, React, FastAPI, Rest, Automated Testing, CI/CD, SQL Database, CDN, DNS, Heroku
A syllabus-building utility for professors
Live Site
Github Repo
This project uses a React front end hosted on Azure Storage and Azure Functions to serve the backend API. The business logic involves scraping html for data, then building a dictionary containing dates that can be rendered in HTML as a table-style calendar.This project was originally using Django backend. I rebuilt the backend in FastAPi, and at the same time switched from a
create-react-app
front end toVite
. I then rebult the backend for Azure Functions.Topics: Web-scraping, Dynamic Rendering Web Page, API
A simple utility to calculate diff on PDFs
Live Site
Github Repo
Have you ever tried had to grade a second draft of a 15-page final? Only to find out the student only changed 3 words?! PDiF to the rescue! This app runs a Meyer's diffing algorithm on 2 pdfs and outputs the text of the pdf with removals highlighted in red, and additions highlighted in green.Topics: React, Azure Functions, API, Meyer's diff.
My cloud-hosted resume and portfolio page
Live Site
Github Repo
Following the Cloud Resume Challenge, I created my portfolio as a full stack app using Azure Storage hosting and Azure Functions. I used HTMX to build the single-page application with page updates served as strings from the Azure functions API.Topics: HTMX, Dynamic Rendering Web Page, API, Azure Function App
A sci-fi hero-drafting game using Go and Ebiten
Github Repo
A full-screen game app where players draft a team of characters to take on boss monsters.Topics: Go, Game Design
An instant messaging app for developers
Work in progress
Gitlab Repo
We built an API using Flask with a persistant database using MongoDB. In the next phase we will build a front end using React and websockets.I created unit tests for the database interface. In the first iteration, the tests were tightly coupled by mocking to the tested code. To fix this, I created Pytest fixtures that start an in-memory Mongo database for proper interations during test.
Topics: Flask, MongoDB, Data Design, Automated Testing
A system utility to keep the desktop clean
Github Repo
I wrote this script to keep my computer desktop clean. I wrote an install batch file that sets the target directory and the desktop locations, and I created a run batch file that starts the script as a background process.The running script moves all files off the desktop every two minutes.
Topics: File System Manipulation, Task Scheduling, Shell scripting
As a high school student, my fascination with software development sparked a lifelong passion for software development. Despite career detours, my affinity for problem solving has remained unwavering. I thrive on collaborative projects and effective project management, orchestrating cohesive workflows for optimal outcomes. Transitioning towards software development aligns with my pursuit of happiness and productivity, fueling my daily quest for discovery and problem-solving.
My approach to my work emphasizes practicality, prioritizing functionality while maintaining adherence to standards and best practices. Outside of software, my experiences as a sailor taught me valuable lessons in holistic thinking and adaptability, mirroring my approach to project management.
Looking ahead, I aspire to design impactful systems that aid people regardless of scale, aiming to be a reliable support figure and providing assistance when needed. In essence, I am driven by a relentless pursuit of knowledge, blending technical expertise with a collaborative spirit and a passion for crafting solutions that truly make a difference.