Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]
61

2023 Letter with 10 Lessons

from Oykun Yilmaz [alt+shift+b] in design

Write I've been writing for years, however, I gave the focus it deserved in 2023 as I felt the urge to express my ideas more in words than colours and shapes. I didn’t resist the urge and I have seen amazing benefits. Articulating my ideas, feelings,
30th Dec 2023

Stay updated

Get a weekly newsletter with the top 5 articles worth reading every week.

More from Oykun Yilmaz

Easy steps to start investing in the stock market

Invest in long term, Diversify, Don't stress to time the market, Stay calm ... It is not that complicated.

16th Jun 2024 • 138 votes
Designers, charge more $$$ to help yourself and your clients.

Many designers shy away from increasing their rates, fearing it will scare clients away and put them under pressure to deliver higher-quality work. Understandable concerns with the common fixed mindset. However, if you want to grow as a Designer, you must be comfortable with losing the wrong type of clients who demand cheap and low-quality designs. You need to level up and attract the right kind of clients. Type of clients who value design value quality are easy to work with pay premium $$$ By charging higher rates, you are signalling to potential clients that you offer a level of expertise, professionalism and dedication that sets you apart from the competition. Important detail though; I'm not suggesting you charge more if your design doesn't deliver it. You need to master your skills first. After all, higher-value clients who pay premium $$$ will often come with a certain level of risk and expect higher quality work to lower that business risk. Don't let this stress you though. Since you are charging higher $$$ now, you can dedicate more time more focus more care more resources You will see how this approach influences the outcome of your work positively. By charging more, you are enabling yourself to deliver higher-quality work, as a positive consequence. By charging more, you are not helping only yourself with higher income, but your client with a higher quality of work. By charging more, you are attracting the right type of clients who value design and trust your advice. By charging more, you are becoming a better designer due to the environment it gives you. By charging more ... It is a win-win situation for you and your clients! Charge More $$$!

27th Apr 2024 • 1 votes
Designers, charge more $$$ to help yourself and your clients.

By charging more $$$, you are lifting up the quality of the outcome and satisfaction.

25th Mar 2024 • 140 votes
Practising distraction-free creativity

The design world is filled with exciting opportunities. We see Designers on X who are creating Framer templates, experimenting with 3D, writing newsletters, starting design subscription agencies, selling icon packs and many more. I know it’s tempting to chase them all. I’ve given in to that

21st Feb 2024 • 78 votes
2023 Letter with 10 Lessons

I’ve been writing my 2023 reflections for myself and I thought I’d share them with you. This is a bit of a long and personal one. Feel free to skip it if you like. OK, let’s get to it! Write I've been

18th Jan 2024 • 97 votes

More in design

Code review was never about the code

If you work in software (as a designer, developer, PM, or any adjacent role), you’re probably aware of just how much AI has changed the way code is created. And if you’re an engineer, you’re definitely feeling the downstream impacts of AI’s speed. Way, way more code is being written. But the way we review code hasn’t changed that much. But if you’re not familiar, code review is a step in the software development process where developers look at code before it gets shipped. It’s been a cornerstone of engineering teams’ workflows for almost as long as there have been engineering teams. AI coding has turned code review into a bottleneck; a human can only look at so much code, so reviews have started taking longer, and each engineer’s review backlog is growing exponentially.1 AI code review tools have stepped into the breach, eliciting an earnest grumble from developers: AI reviewing AI-written code is like a student grading their own test. Execs don’t have much sympathy, though. We can move faster, so we should. So teams are stuck in a traffic jam, trying to figure out how to review code faster, without sacrificing quality. I’d like to argue that the source of this problem is more fundamental than speed vs. quality. We’re in this situation because somewhere along the way we swapped one question for another. Code review was always meant as a verification step: does the code produce the outcome we want? But it’s a hard question to answer, so we started asking an easier one instead: is this good code? Let’s go back to the original question. Code review should get better at verifying outcomes — faster, yes, but more accurately, and for the system as a whole, not just single lines of code. What is code worth? The premise of code review is that code can be good or bad, and that bad code can be turned into good code, and that good code is important. This is a sound premise. Bugs are obviously bad for business. But we’ve made an attribute substitution: we decide whether code looks good as a stand-in for whether the software works. Engineers use mental shortcuts to determine the goodness or badness of code. They range from very well-documented patterns (use guard clauses to return early, use pure functions where possible) to vibe-based ‘code smells’ (magic numbers, deep nesting). But these aren’t written in stone. They are debated and re-evaluated constantly. Even if there are inviolable definitions of good code, writing good code isn’t guaranteed to result in valuable software products. Sometimes, it works out that way; before Facebook bought it, WhatsApp kept its codebase lean enough that 35 engineers could serve 450 million users.2 But there are far, far more examples of software succeeding despite being written poorly: Undertale would never have passed a single code review (almost all of its dialog was one giant switch statement), but became one of the most beloved games of the past decade. Good code does not strictly equal good software. Code itself has no intrinsic value. So what are we actually reviewing when we review code? Verifying There’s just no substitute for actually running the code and verifying that it does its job well. I don’t mean unit tests, or even integration tests, but running the code in total, a full end-to-end test. Doing this at scale for large applications is difficult. At an org with hundreds of AI-enabled engineers, you likely have thousands of pull requests a day. Spinning up and breaking down complete copies of your entire application (likely, application cluster) is time- and resource-intensive. Even if you do manage it, verifying under realistic conditions may be completely infeasible (imagine simulating the activity that Stripe handles — 1.75% of global GDP). Which is to say that you won’t know if your code works or not until it’s in users’ hands. Traditional code review has two outcomes: You are confident enough that the code works well enough to ship it You are not confident enough that the code works well enough to ship it Verifying your code under the most realistic scenario possible (i.e., yolo, straight to production) has three: You are sure the code works, and it’s already shipped. Good job! You are sure the code doesn’t work, so you improve the code until it works You don’t know because the system failed in an interesting way. Instead of confidence, you have information, and can use it to improve the system. Verifying a major change by shipping it is risky, but the closer you can get to it, the more your review is actually worth. Feature flags, canary releases, observability and CI/CD — the stuff of modern devops — have all been commoditized to the point where it’s cheap to build in the safeguards that make the yolo approach tractable (even at Stripe scale). Stop reviewing code3 You’re probably doing code review for the wrong reasons. Let AI do the work of making code better: tracing code paths, finding, and fixing obvious issues. And if it’s a student grading their own test, so what? AI can make the code better. People can check if it works. Invest in the tools to verify your code in realistic conditions, deploying it directly to users if possible. Use your own eyes and brain to see it working, or see it not working. Learn from the difference, share what you learn with your team, and build feedback loops that improve the system the more it fails. And eventually the failures will become rare and incredibly interesting. Footnotes & References GitHub saw 1 billion commits in all of 2025; by April 2026 it was seeing 275 million a week. ↩︎ Cade Metz, “Why WhatsApp Only Needs 50 Engineers for Its 900M Users,” Wired, September 15, 2015. ↩︎ Of course, there are situations where safety means protecting human lives or massive economic outcomes, and reviewing code is the only safe option. The IRS shouldn’t ship updates to the code it uses to disburse tax refunds without reviewing the code. Waymo shouldn’t ship updates to its self-driving cars’ algorithms without reviewing the code. But you probably aren’t working for the IRS or Waymo. And if you are, get in touch ;) ↩︎

22 hours ago • 1 votes
The new age of software

If you think about it, there is *a lot* of software that hasn’t been built across hundreds of industries because our best paid designers and engineers were occupied with building social networks and ad networks. "The best minds of my generation are thinking about how to make

a week ago • 2 votes
Prompting as self-portrait

Weekly curated resources for designers — thinkers and makers.

2 weeks ago • 1 votes
Another Saturday, Another Song.

“Side Two” LP in progress. At 14 songs, it is nearly complete. I expect to release it before the year’s end. The post Another Saturday, Another Song. appeared first on Jeffrey Zeldman Presents.

3 weeks ago • 1 votes
UX Roundup: Vigilance Fatigue | Adaptive Authoring | UI Clutter | Scenarios vs. Surveys for User Preferences | Measure Outcomes | Satisfaction vs. Expectations | Spotlight Features | Allow Paste

Asking users to watch AI carefully is doomed to failure | Adaptive authoring of content that changes depending on the reader | A cluttered experience kills user focus | To predict patients’ treatment preferences, discussing medical dilemmas beat both survey responses and the patients’ own spouses | Measure outcomes, not vanity metrics | User satisfaction depends on expectations | Spotlight the main features and keep specialized options backstage | Allow users to paste passwords | Ambient AI works in the background to proactively surface relevant information during meetings | Writers don’t know what to ask, so AI should speak first, softly | Information pollution: cheap to publish, expensive to read | Give users bigger images when they want to zoom to see details | Past work must have a name so it can be found

3 weeks ago • 1 votes
📚 BoredReading

You seem to be enjoying this.

Join free to unlock everything.

Create free account

Already have an account? Sign in