All of My Content
An explanation of how to frame the discussion so that the business sees value in reducing and preventing technical debt.
You accidentally deployed EC2 instances or RDS instances with un-encrypted storage. Now what?!
Tailwind's JIT compiler is awesome, but by default it won't inspect installed component libraries.
It's obvious once you see it. Not so obvious before that.
Some lessons have to be learned the hard way.
A quick reference on the current state of how to configure your Svelte project for TypeScript usage.
22 years after the original Joel Test was published, Ben and I dissect it and give it a glow-up.
There's a non-obvious benefit to the way that AWS implements lambda concurrency and it's worth considering.
A quick reference on how to browse the contents of a production docker image
My method doesn't use SNS or Lambda.
Semaphore is about to get its first major version bump, which means there's a breaking change. I wonder what it could be!
I've been with AlumnIQ since March 2nd 2012. It seems like most people these days would tell you that's a terrible idea.
What exactly does it mean to avoid premature optimization?
Google is shutting down free custom-domain accounts, even for grandfathered users, so it's time to do the thing we've all be putting off for too long.
Even if you were already aware of the spread operator, you may not have thought about this opportunity.
The first major stumble I had while learning TS was how to create useful anonymous types for massaged data. The answer turns out to be really simple and once you know the technique the error message is a useful reminder.
In a move that will shock exactly nobody, news outlets are sensationalizing the latest npm module drama.
First make the change easy, then make the easy change.
A (spoiler alert) fun novelisation of DevOps/Agile principles.
This was one of the first few problems I faced when learning SvelteKit, and the solution is surprisingly easy!
A bunch of stuff on my website has changed, and nobody will care, so I'll talk to myself about it.
It's popular to vehemently hate the proliferation of tiny npm utility modules. But is that a good thing?
It's not a common use case, but if you ever need it then this is a really handy trick.
On my journey to get better at testing I've been learning about TDD. But I'm starting to wonder if TDD is universally the 'best' design process.
Everything I had to research on my first day using Postgres, coming from MySQL
Most TDD tutorials assume it's your first day behind the keyboard
My thoughts, review, and notes on the Bible of TDD
After almost 4 years stable at version 3.2, there's a new version of Taffy available!
I no longer publish my open source software on ForgeBox.
How to get started with my custom feature flags engine for CFML
Want my book but not into eBooks? It's your lucky day! REST Assured is now available in paperback!
Using npm scripts to make an env-aware startup command
Moving slow and methodically can be really hard if you've been training for years to move fast and break stuff.
Sharing some of the articles I've been reading, and videos I've been watching, specific to testing.
Learning how to test well takes a lot of time and mental energy up front, but once you build up momentum it starts to pay off.
Let me save you some time. I spent hours debugging this and another 20 minutes writing up a draft Stack Overflow question before the answer came to me.
I was stuck on TDD because I wouldn't let myself do the obvious thing.
I'm stuck on a TDD JS issue, so here are the details.
Adam Tuttle shares what he has learned about how DAO's improve code testability
Tabs cost you nothing and give your team more options. They're the more accessible choice.
How can something be both deterministic and random?
DIY webhooks make hard things easy
I've created an open source, minimalistic, feature-flags rules engine for CFML.
Some solutions are too brilliant for their own good
Don't suppress your attention to detail. It's a symptom of professionalism.
What is the ideal tech stack in 2021? Thoughts on goals and options.
My thoughts on breaking rules
Hacking Makefiles to do things they were never meant to do...
A code snippet to enable jumping directly from error reports to the offending lines of code
It's not that hard to setup, and it matters.
Notes summarizing what I've learned about the core React hooks.
This is probably crazy and inadvisable. Which is part of what makes it fun!
What we did differently when the attacker came back after deploying our initial protections.
It amazes even me how much the framework has grown since it was created; and yet it's still surprisingly easy to go from zero-knowledge to competent in just a couple of hours.
I'm frankly astonished that a framework I wrote 10 years ago has survived the test of time. My heartfelt thanks go out to everyone who continues to use it!
It's time to release an update to my book, and that's given me some thoughts on other ways it can enrich your learning.
How we handled a bad actor attempting to use our application to verify stolen credit card information.
Instructions and automations to make it easier to help out with your spare CPU cycles.
The best way to meet your goals is to check your progress often. How have I been doing so far this year?
Today's adventure in the ways in which ORM in Lucee is a little off got started when I tried to use ORM to create a new record.
I built a Hackintosh over a year ago. How well has it been working for me? What's the good, the bad, and the ugly?
Documenting the struggles of replatforming.
Reflections on prioritization
AWS Fargate is amazing and easy to use, once you get to know it.
I used to change jobs every couple of years... until I found one that continually challenges me.
My SMART goals for 2020
What's a good way to share configuration between microservices and monoliths?
Taking time to move deliberately can save you from rash mistakes made when moving frantically.
In search of some decent note taking software
A different perspective on impostor syndrome.
Being able to work is just as important as working.
A collection of problems I ran into, and their solutions.
To be fair, Firefox has gotten a lot better since I wrote this article.
The answer is to use pm2-windows-service.
Feature Complete may not mean what you think it means...
An honor I didn't earn but I'm all too happy to display.
Building a Hackintosh isn't as hard as it used to be... I hope.
Death by 1,000 papercuts is an all too real phenomenon.
All of the things that were going on in my head after I finished the getting started tutorials.
Adam discovers an inadvisable approach to running one-off background tasks in CFML
In which Adam adds to his public system configuration notebook regarding SSH key passphrases and short term memory thereof.
Adam is raising money for the Children's Hospital of Pennsylvania again, and could really use your help!
Adam responds to a blog post about the half-life of career-knowledge
Adam shares a tale of playing programming games with his kids
Field notes from Adam's dive into the deep end, deploying containerized web applications in the cloud!
The West Wing teaches Adam a lesson about humanity in the face of divisive issues.
Adam's been playing with Docker and had some trouble figuring out a cert issue, so he's blogging the solution for future googlers.
Or, why my old website was offline for 230 hours
Adam Tuttle attempts to convince you to send yourself less email.
A collection of tools I use to customize my Mac, and be productive as a web developer on a day to day basis.
When you have a Windows + IIS server and you want to add Node.js support without disrupting the existing IIS websites
Step by step instructions and advice for a successful first pull request.