I'm David Teather 👋

Engineer @ CrowdStrike

Ever evolving as a software engineer

Popular Repos's Logo

Popular Repos

stars

YouTube Tutorials's Logo

YouTube Tutorials

views

LinkedIn Courses's Logo

LinkedIn Courses

learners

Recent Blog Posts

Adding Mermaid Diagrams to Rehype in Astro (With rehype-mermaid-cli)

Adding Mermaid Diagrams to Rehype in Astro (With rehype-mermaid-cli)8/25/2025

I just recently updated how I render UML diagrams in my blog. Originally, I used rehype-mermaid (original blog post), which works by running Mermaid inside a playwright instance at build time. That generally was working fine for me, but I noticed that old diagrams started to render incorrectly, and I was facing issues in particular with the sequenceDiagram type and it started throwing this error Error: svg element not in render tree. So, I decided to switch over to mermaid-cli in my build time. This approach still uses puppeteer but has been more reliable for me so far, although it's still early days of the approach. Here's an example graph with just text But I also wanted to support images, which I did cover in the previous blog post but will re-cover here as well. Why Use mermaid-cli? Benefits of mermaid-cli: Official CLI maintained by the Mermaid team (so less chance of regressions when Mermaid itself updates or dependencies). More out of the box control over the output (the...

How to Add Live Stats To Your Site

How to Add Live Stats To Your Site8/22/2025

When building this website, I wanted to automatically pull live stats from a variety of sources. The landing page now shows constantly updating statistics from GitHub, LinkedIn, and YouTube. !Landing page hero with stats In this article, I’ll show you how to do the same for free on your own site. I’ll keep the code light and framework-agnostic, so you may need to tweak a few things depending on your setup, but the concepts should be easy to apply anywhere. If you run into any issues with the web scraping part, check out everything web scraping for more tips and tricks. Public Unauthenticated API (GitHub) The first source I wanted to pull stats from was GitHub. This turned out to be pretty easy, they have a public facing api. It also doesn't require you to log in which is perfect, as we wouldn't want to store secrets on the website as it would allow anyone to read it. It does have a rate limit of 60 per hour, but we only need the client to make one request so this isn't a concern....

Reflections A Year Into My Career

Reflections A Year Into My Career8/21/2025

I graduated from college about a year ago and started working as a software engineer, primarily on go microservices. This post is a mix of advice, realizations, and me yelling into the internet void. It’s not super organized—more of a brain dump from my first year in tech. Take what’s useful, ignore the rest. Time Flies "The days are long the years are short" has never felt so real. Work Hard But Not Too Hard I've had this mentality for a few years now but it mostly comes from 1. Preserving yourself and preventing burn out 2. I think on average the RoI of work work is lower than learning for fun on the side. Do Good Work Don't take the previous point as being lazy. Do good work, learn, push yourself, and don't be lazy, but your salary is set. Don't Let Work Become Your Life CS Competitions & Events Just Don't Really Exist Outside of School I participated in a lot of these during university, including organizing a hackathon, MIT battlecode contest, IMC prosperity contest, org...

Recent Projects

TikTokAPI Python Package

TikTokAPI Python Package5/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 Times5/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 Website5/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 ...

My Recent Career

CrowdStrike

CrowdStrike6/1/2023

This summer at CrowdStrike, I got my hands dirty with some serious coding and problem-solving. As a Software Engineering Intern, I dove into Go, AWS, CI/CD practices, microservices, and Docker. Here’s what I did: Highlights LQL Parser, Lexer, and VM: Tackled the challenging task of developing a parser and lexer for the LogScale Query Language (LQL). My goal was to translate LQL statements into a custom, efficient bytecode, enhancing the speed and efficiency of event manipulation. I also built a Go-based virtual machine (VM) to execute the bytecode, ensuring that LQL queries ran smoothly and reliably in our cloud microservices. Linter Tool for Code Integrity: Designed a linter tool from scratch. The aim was to catch bugs early and ensure the integrity of our codebase before anything went live to clients. This tool became a crucial part of our development cycle, saving countless hours of debugging and fixing post-deployment issues. Custom Testing Framework for LQL: Created a testing fr...

LinkedIn Learning

LinkedIn Learning5/23/2023

In spring 2023, I had the opportunity to work with LinkedIn Learning to create a course on GitHub Codespaces for students! Despite designing the course with school and work, I throughly enjoyed it and I solidified a lot of my skills in content design along the way. Get 24 hours of free access to the short course on my LinkedIn post Highlights Upskilled 1.6K+ learners interested in GitHub Codespaces Designed engaging and practical real-world projects and examples Created a universally applicable cirriculum for all students Conclusion This experience only further solidifed how much I love creating content and teaching others. I'm excited to continue creating content and teaching others in the future!

Collab

Collab6/1/2022

I joined Collab and began working on adding a second data source to the recently acquired TrendPop's platform. As a somewhat of a content creator myself, it's been really exciting to have worked so closely to the creator economy. Highlights Analyzed the most efficient way to extract data from YouTube Used Golang to write an efficient abstraction for forging YouTube's unofficial API Designed and implemented scalable jobs with Apache Spark to track and discover new entities Extracted and stored over 1 billion total records including: videos, channels, playlists, and comments Automatic reporting of metrics associated with the code sent to Grafana Internship Overview My internship consisted of 3 main parts: creating an engineering proposal plan, implementation, and finally a presentation open to the entire company which included some execs. Engineering Proposal Plan (~4 weeks) The goal of creating this proposal was to align the entire team with what I would be doing over the summer a...