Jeffrey Zeldman's Blog
September 25, 2025
How do you spell success?
Working in tech means being comfortable with change and uncertainty. Successfully working in tech means not letting change and uncertainty paralyze you.
Forge ahead on the best information you have, and be prepared to change direction as needed.
The post How do you spell success? appeared first on Jeffrey Zeldman Presents.
September 24, 2025
Behind every successful launch, there are 100 interesting failures.
We must stop thinking of failure as an end of something, and learn to see it as a natural part of progress. The first incarnation of a new idea may die, but the best ideas will find new lives. Behind every successful launch, there are 100 interesting failures.
The post Behind every successful launch, there are 100 interesting failures. appeared first on Jeffrey Zeldman Presents.
September 19, 2025
Everybody’s lost it, Part I
My beloved veterinarian’s office apparently moved to a new office location without informing customers. They also changed phone systems. The new phone system doesn’t work, and they didn’t leave a forwarding message on the old phone system. You call, leave a message, never hear back, and never learn what’s become of the business.
Our oldest cat, Snow White, who’s had failing kidneys for two years, is alive at 18 chiefly because we love her and we give her drip medication three times a week. We ran out of the medication last week and requested a refill, but never heard back, and nobody was at the office when we checked.
So for a week I’ve been calling them every morning and every afternoon, while also using their website (which, like the voicemail system, offered not a peep about their office relocation) to request the medicine our queen requires to keep living, and nobody called me back or responded to web messages or text messages, because they weren’t hearing or seeing them.
Today I received a boilerplate email saying that they had moved; the hurried communication included the *area* they moved to but not a street address.
The email also said that their new phone system doesn’t work. So they’ve been sitting in a new office with no customers, not getting their messages—not having thought to provide advance notice to their customers that any changes were afoot—and probably wondering what went wrong.
The email included a phone number we could use to send them a text message. So I did that, letting them know I’d been trying to reach them all week, repeating my request for the badly needed medication, and asking for the street address they’ve moved to.
Three times they texted back with the same information they’d already provided. Information that told the general area they’d moved to. With no street address.
I continued to respond, saying that’s nice but what’s the street address? And each time they replied by resending the same boilerplate that contains absolutely no street address information. You’d think, oh, he’s talking to a bot. But in fact I’m talking to people. People who are responding to messages they’re too frantic to actually read and reply to properly. Instead of answering once, correctly, they end up answering many times without actually, you know, answering.
I empathize with their freakout, I know their job is hard. I had service jobs myself all through my twenties—the benefit of an MFA in fiction writing is that it prepares you to take shit jobs that will later give you material to write about. And even much later in life, as a business owner, I’ve been guilty myself of responding too fast to queries I scanned instead of reading. But I learned better. I learned that it was actually more helpful to read and respond correctly to ten messages, than to scan and respond uselessly to 100.
I know this because one of my former employees would yell at me to slow down. As you may realize, nobody who worked for me ever feared me. Nor did I want them to. I’m happy about that. No boss should intimidate the people who work for them. I made lots of business mistakes—the cliche about creatives not being super-duper at business exists for a reason, and was true for me. But I never made the mistake of encouraging my employees to live in fear. And neither, apparently, does my veterinarian. Which is cool. He is, after all, a good person. The panic driving the thoughtless responses doesn’t come from him, but from the situation.
I’m not angry at anyone—not the brilliant veterinarian who founded the business, not his medical colleagues, and certainly not the folks who run the front desk. But damn. Don’t move without informing your customers. Don’t tell people approximately where you’ve moved to when you finally realize your customers have no idea what happened to your office and you should let them know where you’ve been hiding all week. And if a customer with fair-to-excellent diplomatic skills gently points out that they still need a street address, the thing to do is update your boilerplate to include the street address—not keep resending the useless boilerplate that asks people to treat their pets’ health as a scavenger hunt with exciting clues about where the veterinarian MIGHT be located.
I am an employee myself these days, and happy to be one. I like that everyone at my workplace is available for honest conversation—even the CEO. It’s an unusual and excellent part of our culture.
Dealing with bills and medications and doctors is something I squeeze into short breaks I take during my working day. Today I’m not only dealing with this during those breaks, I’m also trying to coax the staff of a brilliant and expensive gum surgeon I see (I’m old, I have health problems like everybody, and more than some) to send me the records of my many expensive visits there, which I have paid up front (as they required), so I can share those records with my insurance company and possibly get reimbursed. I spent ten days waiting for those records after they promised to send them to me right away. It used to be, doctors sent their bills to the insurer, and if there was any part the insurance company didn’t cover, they’d invoice you later, discreetly. But that hasn’t been The Way of medical treatment in NYC for years, now. I was polite and didn’t bother them about the missing documentation. I only asked twice. I finally got it and submitted it to the insurer. The insurer’s website entered a black hole after I submitted the invoice, because of course it did. So I submitted again. After which, there were two identical invoices in the queue, because of course there were.
So they’ll probably reject them both. As an added bonus, I discovered that the periodontist had sent me two (out of seven) of the bills that they then re-included in the new mega-bill. Which means the insurance company will think I’m fraudulently trying to double-bill them for my expenses. Because of course they will.
Solving writing problems, design problems, and music production problems brings me joy. Dealing with life on life’s terms, not always so much.
The world is on fire and we will see worse before some sense of justice or even normality returns—if it ever does. But me, I’m still worrying about medical bills and where on earth my cat’s lifesaving medical practice has moved to.
The post Everybody’s lost it, Part I appeared first on Jeffrey Zeldman Presents.
August 20, 2025
Too many meetings?
At Automattic, we know our time is finite and precious. Here are the questions we ask ourselves before agreeing to any meeting:
Am I investing time toward the things that are doing the most to help me grow and improve my ability to contribute?How much of my time is contributing to my team’s goals, and choosing the right ones?Is the work effective? Is it moving the needle? Can I describe it to a friend over dinner in a way that gets them excited? Can I blog about it?Are all my meetings so effective that you look forward to them? (Don’t laugh. It is possible.)“Sync Overload”—And How to Avoid It
The post Too many meetings? appeared first on Jeffrey Zeldman Presents.
August 5, 2025
Staying relevant
Or not.
My fears melted away. And in their place came acceptance. All this vast majesty of creation. It had to mean something. And then I meant something, too. Yes, smaller than the smallest, I meant something too. To God, there is no zero. I still exist. —
The Incredible Shrinking Man (1957)
AKA:
How I feel after not updating Designing With Web Standards or writing a new book since 2013.
AND:
And also how I feel now that there’s no longer a single, agreed-upon digital town square (and, further, now that the biggest one, where I once enjoyed a hefty following for some pixel pusher, has turned into a N*zi bar, where I no longer choose to spend time).
And since Covid killed the conference I co-founded, and I cut way back on travelling and giving conference talks and focused on paying off the debts we were left with.
And since financial reality forced us to kill our publishing company, too. So many nice things, all gone.
I had the world, or at least a wee piece of it, by the eyeballs, and, not entirely by my own choice, bit by bit, I let it go.
Kinda depressing, sure. But also, and mainly, pretty liberating.
I also learned something about people and friendship, and remembered something about the passing of all things.
The post Staying relevant appeared first on Jeffrey Zeldman Presents.
July 16, 2025
Project 2026
Starting today, file suits to prevent biased gerrymandering. Fight harder for the right to vote than the GOP has fought to suppress the votes of Americans MAGA dislikes. Craft a Democratic party platform focused on equal rights, equal justice, fair wages, and affordable housing. Win the Midterms, shifting the balance of power in congress. Upon gaining control of the House and Senate, do as many of the following as possible:
Restore and expand women’s rights.
Overturn laws and policies that were motivated by anti-Black or other racial animus. Take them one by one.
Restore queer and trans rights.
Dissolve ICE.
Immediately halt deportations, freeing all prisoners who were denied due process. Provide reparations to them and their families. Use ICE money to restore veterans services, children’s lunch programs, and other essential services that were cut to give billionaires an extra tax break.
Close and tear down Trump’s concentration camps. Educate the public about what happened in those camps, so it never happens again.
Restore the department of education and all other departments that were defunded during Trump’s moronic reign.
Take aggressive action to fight climate change. Lead on it.
Strongly and firmly support Ukraine with no strings attached.
Halt arms shipments to Israel while that country pursues its genocidal project in Gaza. Do whatever is possible to insist on peace and justice.
To the greatest extent possible, lay the groundwork for America to rejoin the family of nations after the Trump presidency.
Restore the “equal time” rules about TV news coverage.
Aggressively prosecute FOX “News” when it deliberately misleads the public.
Create affordable housing programs.
Revive FEMA and other essential services.
Restore Biden’s student loan forgiveness program.
Replace Trump’s hacks with professionals.
Arrest and aggressively prosecute Trump for all the crimes he has committed as president. Use a prosecutorial carrot and stick approach to encourage cooperation from White House staffers who can best roll over on their boss. Hold televised trials so Americans will see Trump and his minions testify to their crimes under oath.
Nullify the Supreme Court’s worst rulings, e.g. Donny’s crimes while president cannot be prosecuted; corporations are human beings; no limits on dark money, etc.
Expand the Supreme Court and impose term limits.
Impose term limits on congress itself.
Forbid senators and congresspeople from profiteering by buying and selling stocks based on inside knowledge. Arrest and prosecute as you would any other insider trader.
Increase the taxes billionaires pay and use those funds to pay down the national debt.
Do everything the legislative branch can do on its own to fix the economy, support small businesses, create jobs, and restore the rights and dignity of all Americans and make America a welcoming place for visitors from other lands.
Having built a strong Democratic party platform that most Americans can get behind, and proven that you mean it by doing as much of the above as you can achieve despite a hostile Executive branch, take back the presidency in 2028.
Immediately limit the power of the presidency so that no future would-be Caesar will seek that office again.
What have I omitted?
The post Project 2026 appeared first on Jeffrey Zeldman Presents.
July 11, 2025
The eye of God
My doctor sends me to Brooklyn for an abdominal aortic aneurysm screening. As instructed, I fast for six hours beforehand. I don’t even brush my teeth, for fear of swallowing toothpaste and screwing up the test. I wear a Covid-era face mask to avoid breathing on anyone.
The journey takes me to Boro Hall, a part of the city I’d not explored before. Judging by the style of pedestrian dress and the Hebrew lettering on some of the buildings, it appears to be an Orthodox Jewish neighborhood.
I enter an enormous, shabby waiting room—empty except for me, a receptionist, and a warehouse’s worth of old furniture. The couches are patched with duct tape. There are signs on the tables forbidding you to sit on them. The receptionist informs me that I can in fact drink water without spoiling the test results. She gives me a cup.
After some minutes, a technician comes for me. She’s soft-spoken and quietly friendly. Wears a pink headband and a long dress.
The examination room and the equipment inside it remind me of OB/GYN visits when my ex was pregnant. In those tests, we wanted to see something. In this test, I suppose, we do not. I lie on my back. The jelly is cold.
The exam takes 40 minutes. The only point of visual interest in the somehow-coffee-stained drop ceiling above me is a circular, flat light fixture composed of concentric glass rings. It is like the eye of God, peering down at me. Not a personal, loving God, mind you. Or maybe it’s more like the hard stare of a universe that, if it took note of our trivial human suffering, would be indifferent to it. I breathe in and out, as instructed.
The technician takes several dozen pictures. There’s sound, too. Occasionally I hear the roar my blood vessels make, chugging busily. My blood vessels don’t share my worries. They just do their work. Some of the sounds they make are rather rude. I suppose that’s good. I like to think the boys in the engine room are somewhat boisterous. The rudeness sounds like health.
It’s time to stop staring at the light, sit up, and wipe the goo off my belly. The technician gives me a large piece of special medical paper designed for this very task.
After I leave, a radiologist will review the pictures and send a report to my doctor.
I have a half-dozen other tests to take in the next few weeks. X-Rays, scans, even a lung screening. Ordinarily when a doctor recommends a half-dozen tests, I shove the paperwork in a corner of my desk and forget about it. But this time, I decided to be an adult and follow through. I may even balance my checkbook one day.
I exit the mostly empty medical facility, call a Lyft, and stand on the sidewalk a while, taking in Boro Hall. On the ride home, I let my gaze caress the changing neighborhoods. Somehow the whole city seems more interesting. Or maybe more alive. Like air after rain. Even the familiar landmarks as I near home strike me as beautiful and reassuring.
Home again, I wash my hands, clean last night’s dishes—the kid and her boyfriend cook late at night—pour my first espresso of the day, and knock it back with plenty of fresh, cold water.
I text my friend, to whom I’d complained earlier about the instructions against tooth brushing. He asks, “Did they give you a mint?” I respond with a “ha-ha” emoji.
Much as I enjoy my job, am grateful for my health insurance, and appreciate the wonders of modern medicine, I decide to take the rest of the day off. You know, for mental health.
The post The eye of God appeared first on Jeffrey Zeldman Presents.
May 28, 2025
Accessibility 101
A11y 101: How to test manually
The post Accessibility 101 appeared first on Jeffrey Zeldman Presents.
May 15, 2025
My Glamorous Life: broken by design.
Debt brought on by large, unexpected expenses caused me to lose access to my credit card. I’d put a close friend’s storage unit in my name and on my credit card while they relocated and job-hunted. So my payments on my friend’s behalf were no longer going through, and the storage company began texting me about the missed payments.
Sounds straightforward, ordinary, and boring. Turned out not to be.
Meanwhile, my friend—after moving house twice—has landed a terrific job, and is beginning to dig themselves out of their debt. But they can’t pay the full amount of their storage fee yet. Or transfer the unit from my name to theirs.
They tried to make a partial payment by telephone, but the company’s “partial payment” line didn’t work.
It didn’t work in a highly specific way.
Specifically, it let them waste ten minutes entering data by hitting their phone’s keypad and typing “1” after each step to confirm the correct completion of that step. Then it told them that the payment had not gone through—asked them to “wait to speak to a manager”—and then immediately disconnected them.
Every time they tried, they got to that stage and were immediately disconnected. With all the goodwill in the world, my friend could not pay their bill.
I had enough cash in the bank to make a full payment on my friend’s behalf; and since the unit was in my name anyway, I followed the company’s text message instructions—sent to me personally—to pay the full bill online on their behalf and set up automated payments for future bills. They’d pay me back when they could. Eventually we’d transfer ownership. Such was my naive hope.
The website let me enter my data step by step, including “new card” data. I removed the defunct credit card info and replaced it with my debit card data. Unlike a credit card, my debit card never lets me spend more money than I have in the bank. That is a good thing when you’re in debt. My debit card is with one of the largest banks in the world. I’ve had the account for over 30 years. In short, it’s a stable account with a long history.
The website allowed me to enter my data, a process that took about five minutes.
When I hit “Send,” the website announced that the payment had failed to go through because the bill was past due.
The system is designed to block payments after first encouraging you to try sending them.
There I am, working to send them my money. And their system refuses. Their system already knows who I am. It told me my name, my storage unit number, and the amount due. It knew me. It knew what I owed. It was ostensibly built to take my money. It is a special phone number with a special automated system designed to take payments from known customers. And it failed every time I tried to pay.
Two design choices are worth noting.
Is the software poorly designed? Was their QA process less than perfect? Did some sadist deliberately set up the system to punish folks who are struggling?
The answer, of course, is yes. To all three questions.
I really tried.I tried three times, even switching options. Like, the first time, I said NOT to use my debit card number to automatically pay my friend’s bills in the future. The next time, I said, OKAY, charge me forever. No matter what choice I made, the result was always: “The payment did not go through because the amount is past due.”
The more you owe, the more you’re not allowed to pay. Who chose those defaults? Elon Musk?
So I called the phone number they’d given me. Again, it was an automated line set up explicitly for existing cutomers to pay their bills.
The number was smart. It had been waiting for my call. It recognized my phone number and told me the storage unit’s account number. It remembered my old credit card number—the one it knows doesn’t work. It asked me if I wanted to pay with the card that doesn’t work. It allowed me to say “No.” It allowed me to enter the account number and other data for my “new” card—the debit card. It allowed me to type “1” each time I completed a step. It asked me to confirm that everything I’d entered was correct. I did. It asked me to hit “1” one final time to confirm making the payment. I did.
The automated phone voice then informed me that the payment had not gone through, instructed me to “hold the line to speak to a manager,” and immediately disconnected me.
Same as what had happened to my friend when they tried to pay.
I tried three times. Each time, the same. Enter a bunch of data. Say yes over and over. Hit the phone equivalent of Send. Get the same error message. Followed immediately by disconnection. (Why try three times? Why not two? Why not eleven? That’s a subject for another day.)
Clearly the payment line—like the website—was not working. So I looked up the company’s website to find their main number. Not the smart automated number that knew who I was and what I owed. A dumb number, but with a human being at the other end.
I figured I’d call the front desk and say that I’m trying to pay a bill and have an account number, unit number, and dollar amount ready to share. If the human being on the other end told me to use the “bill payment number,” I’d explain that the bill payment number wasn’t working at the moment, and ask them to please please pretty please ever so kindly allow me to send them my payment.
So I called and got a busy signal.
Hung up. Waited ten minutes, called again.
Busy signal.
I’d now wasted at least 30 minutes and it was a work day, so I turned my attention back to my job, and away from nut-grindingly pointless exercises in absolute futility.
After about an hour, I tried phoning the company’s main number once again. You know what I got: a busy signal.
Here’s what I think: I think if you’re late, this company’s systems stop working. Not because they don’t want your money—they do. But because they want you to suffer for being late. Before they’ll take your money, they want you to crawl. At one time, there was probably a Japanese news group dedicated to this kind of kink. And the beauty part, for the perverted, is that the pain is pointless and nonconsensual.
They want you to try paying them via the payment website till your eyes cross. They want you to dial the “payment” phone number and jump through your own anus until you tire of being disconnected. They want you to weep. They want you to curse. They want you to try dialing the main number one thousand skrillion times before you get through to a human being. They want you to break down in tears when you finally hear a human voice. Like you’ve been rescued from a desert island and forgotten the beautiful sound of human speech.
There’s probably a German word for the relief you feel after banging your head against the obtuseness of American business systems until you finally get a fraction of what should have been provided to you immediately. Like when the internet finally comes back on after an unexplained blackout. Or when the New York landlord finally fixes the water heater so you can stop washing your private parts in icewater. Or when your trainer finally says, “Good job, let’s go stretch.”
Making a payment should not be routine. It should be a privilege, forged in fire and earned in blood.
Mind you: I don’t know that there actually will be a human being at the end of the phone line if I spend all day Saturday trying to reach one, but, at the moment, that’s my plan. Try and try and try and try and try again and keep trying world without end ad infinitum until at some blessed hour, some stranger takes my money.
And here’s the point of all this:
I encounter broken systems like this almost every week.
As a UX person, it makes me nuts. Also as a human being. It’s not right. It’s not fair. And we all put up with it.
Even if you’re lucky enough to have a good job, and even if you live in a progressive city like New York, our increasingly automated business systems are not our friend. In short:
They want to take your job and replace you with a machine that doesn’t work.
The post My Glamorous Life: broken by design. appeared first on Jeffrey Zeldman Presents.
May 10, 2025
A morning’s tale
Editor’s Note || Our New York apartment is home to three humans and three cats: Snow White, Mango, and young Jasper.
Woke to pee 2:00 am. Entered bathroom. Narrowly avoided slipping on a small lake of Snow White’s urine. Beheld a giant fat shit she’d left on the stone bath mat. It was like the cinema sequence, underscored by dissonant trumpets, where the heroine realizes she’s entered a chamber of horrors.
Instead of screaming, I turned on the faucet so Snow White, who had followed me into the bathroom, could hop onto the sink and drink from the tap.
She’s 17, so by “hop” I mean climb at a moderate pace from floor to toilet seat to toilet tank to sink. (17 also explains why she has recently begun drinking exclusively from the bathroom taps, and excreting outside the litter box. And why I accept living with it. Acts of kindness are no guarantee of karmic reciprocity, but I can hope that when I’m Snow White’s equivalent age, someone will smilingly tolerate my dotty incontinence.)
By now, young Jasper had awoken and followed us in, so I spent a fast hand-waving minute guiding his sleek bullet-fast frame away from Snow White’s award winning turd, which had arrested his curiosity.
After Jasper skedaddled, and while Snow White was still busy sipping from the sink, I sprayed and mopped the floor.
Scooped up the giant shit.
Wiped down the place where it had been.
Washed my hands.
Finally, peed.
Washed my hands again.
Looked to see if the floor was dry. Semi. Good enough.
Laid a fresh dry giant wee wee pad on the damp but clean floor. Started to pick up the previously used wee wee pad, which one of the cats had folded into a sopping origami. As my fingers approached the wet paper, my skin somehow sensed how drenched it was. I left it where it lay.
Snow White, having sipped her fill, climbed down from the sink and glided away.
I left the damp origami to the side of the dry, newly laid wee wee pad and departed the chamber of secrets.
Somehow it had become 3:00 am. I heard the kids chatting in their room, so sent them a friendly middle of the night text: “Hi, fart heads.” Then I wiped my feet and climbed back into bed.
But sleep did not come. So I picked up my phone and pecked into it the words you’ve just read.
It is 3:52 am and I’m thinking I need to make an espresso and start the day. Good morning!
The post A morning’s tale appeared first on Jeffrey Zeldman Presents.