Featured Projects

Discover some of the projects I've been working on!

TikTokAPI Python Package

TikTokAPI Python Package 5/26/2023

With over a million downloads, used by over 250+ companies, cited in research papers by Yale, Northwestern, the United Nations (UNESCO), and more. This project has been my most successful so far. It holds great significance to me as I learned so much from creating this project mostly about web scraping, and due to its popularity I've had tons of great opportunities resulting from this project. Highlights Widespread Adoption 250+ companies are using TikTokAPI or a derivative of it 1M+ Downloads 3K+ GitHub stars Cited use by 10+ university-level research papers from: Yale, Northwestern, the United Nations (UNESCO), and more! Learned the following Web Scraping Forging API requests Avoiding Headless Browser Detection Maintaining An Open-Source Community Create Test Cases CI & CD And So Much More Why This Was Created On the surface this python package may seem fairly trivial to recreate as it just extracts information from the TikTok web app. Web scraping is a very common and (usually) ...

The Response Times

The Response Times 5/25/2023

My journey into security analysis started with YikYak, a social media app, exposing post GPS locations. I initially only was looking at YikYak to create a python package for interacting with their API but their API was exposing the locations of each post, allowing a potential bad actor to track the movements of users based on their posting activity. As much as I'm dissapointed in the lack of security around protecting user's data, I'm glad I discovered it because it made me start my security blog on The Response Times and help protect user data from malicious actors. Highlights YikYak Featured in Vice & The Verge YikYak were exposing precise GPS coordinates accurate to within 10-15ft to everyone Created a cool little anonymized heatmap YikYak implemented some changes that somewhat improved privacy, then they were bought out LINK.social Had a hugely insecure login flow that allowed anyone to login as any other account The API route took a user id and returned that user's authorizatio...

Portfolio Website

Portfolio Website 5/24/2023

Well you've already seen it, but I'll go into more detail about the: tech stack, my thought process, and more. The Concept I had a portfolio website before this one, but the home page was a little text heavy and quite cluttered. I wanted something that felt cleaner, I had the following in mind Live statistics, like the number of GitHub stars so I wouldn't have to manually update it A clean and text-light hero section Interactive elements from my old site like hovering over a post for it to grow in size A "chat" popup as a call to action Responsive Tech Stack React.js Astro TypeScript TailwindCSS DaisyUI Cloudflare Workers AWS S3 Live Statistics This was the main feature I wanted to have on this site. Whenever I've had to update my website or my resume it's always annoying to see how out of date the numbers are so I decided to make it live. It uses Cloudflare workers to web scrape these numbers in real-time, which is cached for about an hour. I spent a lot of time laying out the ...

Content Creation

Content Creation 9/5/2022

I've always been interested in content creation, in any media. I've always been creating things, these days that's usually in code, but I also enjoy creating videos. Recently, I've been shifting towards creating more educational and programming tutorial type content because I enjoy helping others learn in tech. The channels I create content on are David Teather (entertaining) David Teather Codes (technical) Favorite Project: Gesture Controlled Car Video Link I could go into a ton of detail about this, but I'll keep it brief. It's my favorite project I've made a video on at the time of writing this. First I gotta start off by saying do not do this, like ever. This project took me a summer while working full time, and basically I wanted to control the gas and breaks of my car with hand gestures. For the gesture detection I found Leap Motion Controller which worked pretty well. Next, for the motors I had to create my own linear actuators as the real ones were too expensive, for thi...

Everything Web Scraping

Everything Web Scraping 9/1/2022

I find creating educational resources to be very rewarding, partially because I've used so many great resources to learn over the years and giving back by creating some of these resources myself feels like the next logical step. I created everything web scraping to be the main educational resource for people who want to learn how to web scrape and all the related challenges that comes along with that. Some of the topics I'd like to cover are: storing data at scale, writing efficient SQL queries, and writing efficient jobs. If you'd like to checkout the topics currently covered view the course catalogue Why I Created It When I was learning, I used a ton of various different resources to learn how to web scrape at scale efficiently, however many of these resources were scattered across the internet in different formats and there wasn't an easy way to learn web scraping at the time. My goal with this project is to provide a free resource that passes along all the information that I've ...

Programmatic Video Creation

Programmatic Video Creation 9/5/2019

I've always been interested in automating things for fun and for a competitive advantage. In 2019 I saw a lot of YouTube videos that were just a text to speech voice over Reddit content. These videos were seemingly very easy to automate and were getting 100K+ views, so I decided to try to automate creating them. The project blended my interest in programming with video creation and it was a lot of fun. Highlights Gained 3K+ subscribers 20.5 years of watch time 1.4M views Sponsored Segments Used FFMpeg to create them Used AWS Polly (TTS engine) Generated 20-30 minute videos in ~10 minutes What It Did This project started off pretty simple, although there were many edge cases I had to figure out with FFmpeg. A few of these issues were: distorted audio, wrong framerate, and the wrong comment appearing at the wrong time. It used the PRAW python package to read data using an API from Reddit, generated images from the data using an HTML template, stitched the images together over the te...