Site down right now? Call or text, and I'll start the same day. (910) 338-4964
Randy Johnson

Broken?I'll find out why.

When something's broken on the web, the hard part is usually figuring out where. The developer says it's the server, the host says it's the code. I work across all of it, so I find the actual cause instead of guessing.

Same-day start on emergencies. US Eastern time, remote, clients anywhere.

I look at all four

  • Edge

    OpenResty, NGINX, Cloudflare "Must be a caching thing."
  • Server

    Rocky Linux, Tomcat, the JVM, PHP-FPM, PM2 "The developer says it's the server."
  • Database

    MySQL, Percona "Nobody's touched the database."
  • Code

    Node, Express, Lucee, ColdFusion, PHP, Laravel "The host says it's the code."

Nobody in that conversation is lying. Each of them can only see one layer. The bug is usually sitting between two of them.

One-hour fixes are welcome. So are the problems that have already beaten two other people.

Recent saves

Found. Fixed. Written up.

A few from the fleet I run day to day.

Edge → Server

Pages cut off halfway down

Long pages stopped partway through on one environment, with a 200 status.

The cause was NGINX workers running as a different user from the one that owned NGINX's temp directories. Any response too big for the memory buffers got cut off when NGINX tried to spool it to disk.

Read the write-up →

Server → JVM

Application servers freezing

JVMs across the fleet were freezing.

The cause was a pinned young-generation size in the G1 garbage collector settings. Pinning it takes away G1's ability to size the young generation to meet its pause-time goal.

Code → JVM

Slow first page load on every server

The first hit to a page was slow on every server in the fleet.

The cause was 9,933 orphaned object-pool MBeans left registered in JMX, leaking Metaspace. Tracked down and resolved fleet-wide.

Rates

How to hire me

Emergencies and troubleshooting

Site down, pages crawling, errors nobody can reproduce, a deploy that went sideways. Call or text and I start the same day. Most of these are found inside two hours.

$175/hrone hour minimum

Fixes and development

Bugs in Node, Lucee or PHP code, slow queries, upgrades off end-of-life versions, and the backlog of small things nobody has gotten around to.

$150/hr

Moving off ColdFusion

Porting a CFML application to PHP (Laravel or CodeIgniter) or Node, or onto a supported Lucee stack if a rewrite isn't worth it. Done in stages so the site keeps running while it moves.

$150/hror quoted per project

System review

A written assessment of your code, database, and servers: what's out of date, what's exposed, whether your backups actually restore, and what breaks first under load. You get a prioritized list with effort estimates, whether or not I do the work.

$1,500fixed fee

On-call retainer

You get my number before anything breaks, priority response when it does, plus monitoring, patching, backup checks and a standing block of hours. For teams that need someone to call without hiring for it.

from $450/mo

How I work

Straight answers. Clean handoffs.

I'll tell you when your system is fine. That conversation costs me the work, and I have it anyway, because I'd rather be the person you call next year than the one who billed you the most this month.

Changes come from version control, not an undocumented shell session. You get the code, the scripts, and documentation for everything I do, so the next person can run it without me.

I've been doing this for 25 years. Day to day I run 53 Rocky Linux servers serving more than 600 production sites, including the custom OpenResty/Lua firewall in front of them. I recently took a B2B marketplace from a legacy CFML codebase all the way to Node in production, and I write PHP in Laravel and CodeIgniter, so moving off ColdFusion is familiar ground. BS in Computer Science, MBA with an IT concentration. I write up the interesting failures on the blog.

Contact

Tell me what's broken

If something is down right now, call or text. Otherwise send the details and I'll get back to you the same day with what I'd do.

If it's down right now, a call or text gets to me faster than this form.

Direct

Call or text

Phone and text
(910) 338-4964
Email
randy@randyjohnson.me
Based in
Southeastern Pennsylvania, US Eastern
Working with
Clients anywhere, remote