josh yap.

I make things.

photo of josh holding a camera

about me

My name is Josh and I enjoy creating things that live on the internet. I became interested in web and software development when I had an idea for a business, but couldn't stand the idea of letting someone else build it. Even though that business is a highlight of my life, my biggest takeaway was finding my passion for code.

I have since worked at various startups and companies in increasingly technical roles. Although most of my formal experience is in data engineering and support engineering, working on the frontend is what I enjoy the most. I thrive on the quick and tangible feedback that comes along with frontend work. Also, I love knowing my work will be felt by end users directly.

Beyond code, I am very interested in personal finance. I have recently launched a blog at that I am using to document my journey to financial independence. I love learning and talking about personal finance because I think people can do their best work when they can have the right motivations behind their efforts. I will be launching an accompanying youtube channel sometime in the near future.

When I break away from the screens though, I love playing basketball and tennis, cycling, hiking, and traveling. I also tend to enjoy the finer things in life, like miniature tabletop wargaming, euro boardgames, vintage video games, and cryptocurrencies.


voluntold application


After graduating from the University of Texas Coding Bootcamp, I eventually decided to serve as a teaching assistant. There were so many things I wish someone had told me when I was first learning to code and trying to break into tech. Each teaching assistant is generally assigned a small subset of students from a cohort. This lets students work in smaller groups and we get to know one another much better. Students are still often nervous though, especially towards the beginning of the bootcamp. I made this quick randomizer to make picking a random student volunteer quicker. It also utilizes the plotly library to display a bar chart showing the distribution of selections so that we can easily see if someone is particularly unlucky.

ercot web scraper screenshot

ERCOT Web Scraper

What better way to pass the time during a snow day than build a web scraper? This node app scrapes the ERCOT real time system conditions page to get a quick snapshot of whether or not the power grid is able to meet current demand and loads a gif accordingly. I wrote this as a fun weekend project during the Texas winter storm of 2022, after a brutal 2021 storm.


made by ja agency homepage

Made by JA

It started as an idea with my wife, grew into a fun weekend project, and is now a real LLC! Made by JA (Josh and Annie) is a project run by my wife and I. We offer affordable web development, hosting, and design services for local small businesses.

twitter bot screenshot

Yapsays Twitter Bot

I wanted to give myself some motivaton so I made a twitter bot that tweets out a daily quote from a list of favorite quotes that I curated over the years. It was built in python using the tweepy library. Instead of a cronjob, there is an AWS CloudWatch trigger that runs every 4 hours. This was set up using AWS free tier account constraints and was a fun little hobby project.


voowols app screenshot


Some coworkers and I came up with a slack channel in which we have to follow a special rule for messaging. For every letter in a word, every vowel is replaced with an "o" and every "o" is replaced with "oo". It is written in javascript, users a bit of bootstrap for styling, and utilizes the Speech Synthesis Web API to read converted text in a variety of voices, accents, pitches, and languages.

cert formatter screenshot

X509 Certificate Formatter

This CLI program was written in python in order to make a common task in my day job much easier and quicker. The program takes an input string and formats it as an certificate so that you do not need to manually manipulate or check its validitiy.


workday scheduler app screenshot

Day Scheduler

This workday scheduling application utilizes local storage to save user input for every hour block of the day. The hour blocks are color coded to indiciate past, present, and future states relative to the current time and are updated on a timer. The next iteration of this app will replace local storage with database functionality and additional options for personalization.

password generator screenshot

Password Generator

This password generator generates a randomized password based on user selected contraints for length, lowercase/uppercase, special characters, and numbers.