Sam VonBergen
banner
samthedev.bsky.social
Sam VonBergen
@samthedev.bsky.social
Full stack senior software engineer spreading knowledge and supporting female developers.

samthedev.com
Pinned
LinkedIn really doesn't feel like the place to post about everyday dev stuff: problems, solutions, advice, tid-bits, opinions. BlueSky though...it's a whole new world out here.

This is my developer account! I'll strive to share a piece of dev life daily for the community to interact with. ✌️
I'll continue to monitor, work on addressing those slow queries (a few JOINS are involved), and ask if the kiosks have noticed an improvement after about a week.
I'm thrilled I could educate myself enough to figure this out alone and that I can continue to serve this small local coffee business. ♥️
January 17, 2026 at 4:02 PM
So I waited till nightfall, upgraded the instance which took Digital Ocean 5 minutes, and went to bed.
During investigation I had set up alarms for the Load stat to email me when it was above 1.
I'd been getting daily notifications that it exceeded that threshold.
I didn't get any this morning 🙌
January 17, 2026 at 3:59 PM
Our total disk usage was 3% and our storage size was 10GB, so we must be using 3GB of data.
As long as I could get our RAM up to 3GB and add another vCPU, the problem should solve itself.
I went up 2 tiers to 2vCPUs | 4GB RAM | 60GB memory for roughly $45 more per month.
The client agreed.
January 17, 2026 at 3:56 PM
At this point I knew I needed to upgrade, but how much?
Stack Overflow suggested to me that MySQL should have at least as much RAM as the size of your total data.
This is because in-memory computation is faster, so ideally your whole data set can fit in RAM.
Well our RAM was 1GB lol
January 17, 2026 at 3:52 PM
Digital Ocean has a basic Query log section, but you can't even sort it.
So I found our slowest queries that were also called fairly often.
They were not queries that are executed on the page the complaints came from, but they could used some tuning/indexing.
I checked no queries used SELECT *.
January 17, 2026 at 3:48 PM
I don't manage servers on the daily, so I spent 2 hours coming through the documentation to educate myself.
The Load was definitely a problem.
Could I alleviate that somehow without upgrading the DB?
I confirmed we were using pooled connections correctly in both the App and the API.
January 17, 2026 at 3:45 PM
Now comes the Load Average stat. The 1, 5, and 15-minute stats were spiking once a day to 3.5 - 4.
I know my clients do most of their activity in the early mornings, from 3am - 6am.
That's when the load was spiking, with concurrent connections topping out at 7, matching their number of kiosks.
January 17, 2026 at 3:40 PM
I investigated the stats on Digital Ocean. The API's CPU usage was fine at 3% with spikes to 13%. The memory was fine hovering around 18%.

Ok, odd, what about the MySQL Database? It's always kept memory around 70% and it's CPU hovered around 4% with spikes to 80%.

Those spikes seemed...large.
January 17, 2026 at 3:36 PM
I've had a production software out in the world for a coffee kiosk company for 5 years now.

Recently they noted that sometimes they have to refresh the page several times and it still doesn't update.

I took this as queries were taking too long to return so the API must be overloaded.

🧵
January 17, 2026 at 3:23 PM
Nothing quite like taking the day off to art. I have a Bob Ross beginners painting class in the afternoon, I'm working on creating portraits of family members in Procreate, and I'll likely work on a web project to cap the night off. What a nice day.
October 6, 2025 at 2:54 PM
aw, man.
I did notice the documentation I followed to set up my newest NextJS project was vastly different than what I remembered setting up for my portfolio site. Oddly enough, this manifested itself as simply not displaying my new Images on local dev.
It’s going to be one of THOSE Saturdays 🫠 ☕
October 4, 2025 at 5:15 PM
Add a badge to your human-made content! I'll be adding it to all my dev projects and my digital art.
Not By AI — Add the Badge to Your Human-Created Content
Download and add the Not By AI badge to showcase your AI-free & human-first approach to content creation (writings, art, photos, paintings, videos, and music)
notbyai.fyi
October 2, 2025 at 1:17 PM
I moved off Vercel the minute their founder put his support behind Donald Trump. Unsurprised he's also backing Netanyahu.

Your dollars are power, spend them with great thought.

If you're migrating off Vercel, Netlify is a good option that has a free-tier.
September 30, 2025 at 12:20 PM
Then I went back and finished the game on my laptop, that’s how cute it is.
September 28, 2025 at 2:40 PM
I played this on my mobile for at least 15 minutes. What a simple, beautiful game.
September 28, 2025 at 2:02 PM
Here’s the front-end repo for anyone who wants to create something similar for themselves.
GitHub - Sammantha/vonbergen-position-search-automation: A NextJS front-end to display scraped open positions and provide CRUD methods to the user
A NextJS front-end to display scraped open positions and provide CRUD methods to the user - Sammantha/vonbergen-position-search-automation
github.com
September 28, 2025 at 1:40 PM
My part of the project: a NextJS SPA hosted on CloudFlare that is bound to a D1 CloudFlare SQLite database. Because of how small/simple the view is I chose vanilla CSS and a DB created in the CloudFlare dashboard instead of via migrations and seed scripts. We only have 2 tables: users & listings.
September 28, 2025 at 1:37 PM
We had one of those "wouldn't it be nice if" moments where we realized we were spending a lot of time scrolling through sites with poor search options instead of applying that effort toward the application process. And then it dawned on me that my husband knows Python and how to web scrape 😄
September 28, 2025 at 1:31 PM
The project is just for our benefit, it scrapes specific sites we both use for job hunting with specific filters and search strings for what we're currently looking for. The front-end only displays the job title & url and allows soft-deletion for jobs of no interest. They'll be grouped by user.
September 28, 2025 at 1:28 PM
My husband and I are creating a project together - we're both CS degree holders. He's scraping job websites with Python, filtering them, and placing them into an SQLite DB. I'm displaying them with a front-end and creating a REST API.
It will cut down job hunting effort and time by at least half!
September 28, 2025 at 1:24 PM
Killing it on Udemy this week.
5 active days and over 3 hours of videos watched (excluding what I'll watch today).
I'm hoping to take my AWS Solutions Architect - Associate exam in October while also juggling a LONG (93 hours) in-depth AI/LLM course.
September 26, 2025 at 3:32 PM
No such luck. Chartjs-node-canvas required a ChartJS version above the version that removed the property we use. So I had to take the property out and alter the chart so it would look mostly the same, but not perfect. I may open an issue with that library asking why they chose to remove it.
September 26, 2025 at 2:10 PM
So I dig into the release notes and migration directions and found solutions to 95% of the issues. I located the PR that removed the last property we depended on without a replacement...so I attempted to find a balance in dependency versions that would allow me to keep that property a little longer.
September 26, 2025 at 2:06 PM
Wednesday afternoon I started a ticket to upgrade a ChartJS Lambda Layer and pacakages we use so we could upgrade the Node version those Lambdas were running.
Ran into TS compiler issues and realized the packages must have breaking changes.
Luckily this library is well documented!
September 26, 2025 at 2:04 PM
Now how many clients see that report? 🤷‍♀️ Does it save anybody time or money? 🤷‍♀️
Should I probably find out? Yeah, probably!
September 24, 2025 at 11:15 PM