maker://hans.anderson

I am a creator. I build websites/apps as a full-stack-senior-web-application-devops-engineer-blah-blah-you-name-it; I produce audio short stories; I create fun lego photos and animated videos; I make disc golf stats.

I am the creator of the tech-fantasy and fiction-crime podcasts series Dist1nc7ive Stories, and produce other audio short stories.

I'm a freelance full stack web geek, and I blog about it, including my favorite toys of late: automation with Playwright/Puppeteer, PHP Goutte, and I leave myself notes-to-self to remember.

I am a co-founder of StatMando, a disc golf side-project that helped revolutionize stats in disc golf.

I used to run goofiness.com, and currently have Mockumentary.com, HuckfaceDG and a few other, um, interesting side projects.

fullstack://

PHP framework experience includes Laravel, Yii, Symfony, WordPress, CodeIgniter, and custom PHP projects.
Have an old legacy PHP site that needs to be carefully updated? I have experience working with older codebases, updating both the code, and the systems they run on, carefully, while maintaining the important system. I've worked with Apache, Nginx, Internet Information Server, MySQL, PostgreSQL and MS-SQL.

discgolf://

Disc golf stats. In early 2021, a few of us were on twitter, bemoaning the lack of stats in disc golf. We decided to try to help. We met, we planned, we built. The result: StatMando.

producer://

I'm the creator of the tech-fantasy and fiction-crime podcasts series Distinctive Stories.
Visit site

Rufus & Anna are villains in "Computronium"

writer://

April 28, 2025

How to Intercept Sockets Using Playwright

Intercept sockets using playwright with dev console trick.

Read

April 28, 2025

Kubernetes CoreDNS Notes

Some notes to help me remember some Kubernetes items: Core DNS handles all of the DNS internally. If it's not in CoreDNS then it checks the external network. ClusterIP means it's only accessible...

Read

April 28, 2025

Run Owasp Zap in a Docker container

Run as daemon mode: Desktop UI: Then go to http://localhost:8080/zap. Use https://host.docker.internal to hit https://local..com Baseline scan: Full scan: Find container's IP: Use...

Read

April 23, 2025

Writing to stdout/stderr in Docker / Kubernetes

Recently I was testing some log aggregation, and I needed to write data to stdout/stderr so that the logging agent could send them to the aggregator. Here's a snippet of code to run that for awhile...

Read

April 23, 2025

Check Whether an AWS VPC is Being Used

If you need to check whether a VPC is being used -- you do not want to delete a VPC if it is being used, you can double-check it with this command:

Read

March 10, 2025

Ippsec's nmap command

YouTube star ippsec's favorite nmap for initial recon:

Read

March 10, 2025

Cloudflare API Example in bash/curl

Cloudflare API Example in bash/curl. This particular script was a proof-of-concept to disable a cache rule.

Read

February 3, 2025

Git Config Backup

Read

January 25, 2025

ARP in Networking

ARP (Address Resolution Protocol) is a fundamental networking protocol. It translates IP addresses into their corresponding MAC address. Find your network interface: ifconfig...

Read

January 19, 2025

Promises in Three Languages

Three ways to handle concurrent API requests that resolve when all are done, but can run concurrently. In other words, if you have three requests and takes 2 seconds, takes 1 second takes 2...

Read

January 19, 2025

Concurrency vs Parallelism

As always: This is for my own understanding. Please don't assume it is 100% correct. Concurrency is handling multiple tasks during the same time. Parallelism is actually doing tasks at the same...

Read

January 18, 2025

Things to Know About Concurrency

Things to know about Concurrency: Why it's important: Devops involves working with systems that might involve multiple processes, threads, or containers running concurrently. Understanding basic...

Read