I hate ads. A lot of people do. What’s worse for me is I also work on ads.
The strength of my aversion can be easily measured by the number of ad blockers I’ve installed. I never tell people what I do until they ask. Even then, I have to shrug with an embarrassed smile and a qualification: “Ads, unfortunately.”
For context, my team designs ads formats—the UI that consumers see, not the tools that advertisers use. Most of the time, I don’t have to think about it that much when I am only concerning about the visual design of the format. Like how a badge on a card should look like or how videos should play. These are strictly design problems.
However, occasionally, there are moments that the tension becomes palpable.
Moments of Clash
The first moment happened not long after I joined. During a team meeting, a coworker presented a few explorations of ad load and placement for her surface on mobile. I frowned, when I saw an extreme proposal had a heavy ad load. Yes, it was merely a design exercise of plotting a spectrum of options. Yes, it was unlikely for us to end up there (we didn’t). But at that moment I simply had a knee jerk reaction: Adding so many ads into people’s feed? I would never forgive myself if I did that.
Another moment: when the team was celebrating the launch of ads in a new AI surface, I had a hard time resonating. I knew slapping existing formats in there was only a starting point, but at the same time I had this eerie feeling of watching a parasite sprawling onto everything it touches. For better or worse, the idealist in me likes purity: when a user serving experience is commercialized, I feel a little sad over the loss of innocence.
I know ads can be helpful. I just can’t shake off this negative sentiment and the shame associated with it. I respect that the team is trying to find the path to build a good business with users in mind. Frankly, how the ads experience should be in conversational interfaces is a new and hard problem. It could be exciting to many, just not to me.
The last story was about something smaller: an icon button. The icon used to be smaller and gray, same as the other similar icons on the page. Many experiments after, it was replaced by a shiny new design: bigger and blue. As a result—you guess it—more people interacted with the icon button. Of course they did. The icon was more prominent and screaming for attention.
It’s just ugly—visually and philosophically. Directing users’ attention to things that do not deserve it to drive engagement feels inauthentic and borderline manipulative. To me, all the similar efforts are asking the wrong question in the first place and optimizing for the wrong thing, a prime example of micro-optimization for local maxima and deferring the unmeasurable to metrics. There are things that we shouldn’t do regardless of how well they perform.
The Great Responsibility
In my previous job, I witnessed a talented friend and colleague spending nights and weekends on a project that was not his own only because he could not stand “shipping this to a billion people who would see this everyday”. I was moved by how he took the responsibility for the world upon himself. I learned to not treat designing for scale lightly. It became my belief that as designers, it’s our moral responsibility to make the world a little bit more beautiful than it would have been.
Plus, I’ve learned that not caring is as costly and exhausted as care being wasted. I thought mental detachment was the answer to value misalignment, but apathy hurts. A small bug left unattended taught me that turning a blind eye to visible wrongs was betraying what actually mattered to me. Since then, I decided to care. When I saw the blue icon button, I swore to myself I would not let that happen to the surface I worked on.
Yet it did. When the blue icon button launched on the main product, it also appeared on my surface somehow. You can imagine how mad I was when I saw it. I charged to the XFN group chat, whipped up a paragraph of attack on how it was doing a disservice to whole page coherence and organic partnership, and filed a (vehement) bug report.
I was ready to fight, but it was met with little resistance. None of engineers or PM opposed. While my case was strong, it’s mostly because it was indeed an accident and my surface wasn’t under as much pressure to optimize as the main product. A few months later, the fix went live with the original design restored.
It was a relief, but it wasn’t a hard won victory. In hindsight, I don’t know if I could do better if I were the designer who worked on the blue icon for the main product. Would I be able to resist the pressure and requests from PM and Eng leads? Would I have come up with a better solution? I am not sure, but I know I would try. At the end of the day, all I need is being able to rest my conscience at night and tell myself that I have tried my best to fight against the ugliness of the world.
Finding an Intersection
While my success reverting the blue icon wasn’t entirely earned, it still hinted at the room for defending what I truly care about. For so many times, I thought I would never be able to work on something I am proud of on this team. It’s partially true—while I am not proud of any of the money-making work (for many reasons), I do take pride in the work that helped improve the product’s UI quality.
One project I worked on was collaborating with engineers on a front-end infrastructure revamp. While engineers went through each component, I tagged along to help adopt design system tokens, identify opportunities for UI polish, and fix critical accessibility bugs. To my surprise, one accessibility improvement even had a meaningful revenue impact. It turned out that great things could happen from finding an overlap between the business goal and my own values—“things that are both beautiful and economical.”
The other efforts were more pervasive. After the “care incident”, I became the first to report bugs when I spotted one. I started a spreadsheet to track all the paper cuts. I worked horizontally to find paths for quality fixes in different projects. I was the most active designer in the issue tracker, surfacing longstanding bugs, detailing design specs, and suggesting CSS fixes. I tried to be as responsive and helpful as possible for my engineers so they were more likely to return the favor when I nudged them for polish.
Looking back, it’s safe to say that the product looks more clean, consistent, and intentional than when I joined. It feels like a contribution uniquely mine because of me caring about things nobody else cares, like misalignment by one pixel. It’s a proof that even working on something I hate, I can still channel my energy and effort to things that do align with my values. It might be tough, taxing, at times unrealistic, but it’s possible. And with every smallest act of insurrection comes a clarifying moment: values lived out through real life trade-offs.
That is my flavor of optimism.