๐Ÿ‘“ What I read in 2025

Week 32, 2025

Week 31, 2025

  • Does AI Actually Boost Developer Productivity? (100k Devs Study) - Yegor Denisov-Blanch, Stanford

    • AI's Impact on Developer Productivity: AI increases developer productivity by roughly 15-20% on average, but this varies based on several factors.
    • Task Complexity Matters: AI is more effective for low-complexity tasks, with productivity gains of 30-40%, compared to 10-15% for high-complexity tasks.
    • Context Window Limitations: Even with larger context windows, AI performance decreases as the amount of context increases.
    • Methodology: The study used a model that automates the evaluation of code changes, making it scalable and affordable compared to manual expert evaluations.
    • Surveys are Ineffective: Self-reported surveys are poor predictors of developer productivity, with developers often misjudging their own productivity by about 30 percentile points.
  • Stop selling "unlimited", when you mean "until we change our minds" ๐Ÿคฅ

    That "5%" Drives Everything - Who actually gets hit by these limits: - Power users, Early adopters, Team influencers, $200/month Claude Max subscribers

    The real damage: You're not frustrating 5% of usersโ€”you're breaking trust with the exact people who drive growth and adoption.

    @dvyio on Twitter/X called this โ€œvibe limitingโ€

    • โ†” Anthropic never sold an unlimited plan

      The new Max plan delivers exactly that. With up to 20x higher usage limits โ€” Introducing the Max Plan

  • LLM Embeddings Explained: A Visual and Intuitive Guide

I swear if I see another "SEO" guy or some rando web dev who joined the workforce after Covid complaining about SPAs by misrepresenting it, I'm gonna explode.
As someone who's been developing web apps since the 2000s, let me tell you the origin of SPA has few things to do with the "false promise of SPAs" he listed, but largely due to companies in the late 2000/early 2010s wanting to go "mobile first". This usually meant they still had a desktop second somewhere, which implied they were architecting the entire system to completely separate the frontends and the backend.

Before, what web devs meant by frontend was essentially server-side rendered HTML templates with perhaps a little bit of jQuery running on the client-side. Now, since mobile and desktop web apps are to share some business logic and the database somehow, people had to rediscover REST by reading Roy Fielding's Phd dissertation that inspired the original HTTP. This meant now every company was moving to service-oriented architecture and started exposing their backend APIs onto the open internet so their mobile apps and SPAs running in the browser can share the same APIs. This was a cost saving measure.

This period also coincided with the steady decline of full-stack webapp frameworks like Ruby on Rails and Django because for a couple of years, these frameworks had no good ways to support an API only applications. Django hadn't even reached 1.0 back then. This was a time when NodeJS was really starting to pick up momentum. Once people had started being more comfortable with JS on the server-side, lots of people suddenly realized they could push a lot of business logic to increasing powerful desktop browsers and phones, application hosts people now call "edge devices".

This is the true impetus of SPA. How is CSS going to kill this need? โ€” wyuenho

Week 30, 2025

Week 29, 2025

  • Rocks, Pebbles, Sand: How to implement in practice
    • Prioritize by impact, not just size: The Rocks, Pebbles, Sand framework emphasizes prioritizing tasks based on their strategic impact rather than just their size or urgency.
    • Use a simple sprint-planning system: Prioritize tasks in this order: time-critical items, Rocks, Pebbles, and Sand. Adjust as needed based on capacity and the readiness of high-quality stories.
    • Avoid common mistakes: Don't let easy or urgent tasks (Sand) crowd out strategic tasks (Rocks). Also, don't assume that the size of a task determines its priority.
  • The sound of inevitability
    • Debating with a skilled opponent can be challenging, as they can control the conversation's framing, leading to a loss of momentum and confidence.
    • Framing a conversation in your terms is a powerful debating strategy.
    • This framing allows inevitabilists to dismiss opposing views and engage only with those who accept their premise.
  • How I build software quickly
  • At Least 13 People Died by Suicide Amid U.K. Post Office Scandal, Report Says

Week 28, 2025

Week 27, 2025

Week 26, 2025

  • Navigating the unpredictability of everything
    • A robust strategy should include multiple pathways to success, reducing reliance on any single outcome and increasing resilience against unpredictability.
    • Companies should focus on what will not change in the future, such as customer desires and fundamental needs, rather than trying to predict specific changes.
    • Exploring a range of possible futures and simplifying complex plans can help organizations better manage unpredictability and respond effectively to changing circumstances.
  • Software Sprawl, The Golden Path, and Scaling Teams With Agency
    • The Golden Path should be fully supported by the organization, ensuring engineers understand that using non-standard components comes with the responsibility for their maintenance.
    • Emphasizing the need for friction when adding new components can help manage the support burden and prevent unnecessary complexity in the tech stack.
  • Am I unique?
  • Cover your tracks - See how trackers view your browser

Week 25, 2025

Week 24, 2025

  • Next.js 15.1+ is unusable outside of Vercel
  • Password policy recommendations for Microsoft 365 passwords > Some common approaches and their negative impacts
  • A receipt printer cured my procrastination
    • Video games are addictive due to their fast feedback loops, providing immediate reactions and rewards.
    • To combat procrastination, tasks should be broken down into smaller, manageable micro-tasks.
    • Using sticky notes for tasks adds a physical element that makes them harder to ignore and provides satisfying feedback when completed.
    • A thermal receipt printer can streamline the task management process by allowing users to print tasks quickly and efficiently.
    • I'll use 3M Flags, Tabs & Page Markers
  • Smart People Don't Chase Goals; They Create Limits

    The painter who begins with a blank canvas faces more paralysis than the one who starts with a frame and a palette. One person sets a goal: become a best-selling author. Another imposes a constraint: write every day, but never write what bores me.

    Wut? The constraints are what made it a hard problem, but the only reason they were able to hit this goal in an impossibly short timeline is the huge amount of resources that they put toward a very clear goal (which was, honestly, less "let man explore the heavens" than "beat the Soviets"). โ€” #

    • ๊ฒฐ์ ์„ ์•Œ๊ณ ๋„ ์ผ๋ถ€๋Ÿฌ ์ผ๋‹ค๋ฉด ์‚ฌ๊ธฐ์— ๊ฐ€๊นŒ์šด ์žฅ์‹œ๋…ผ๋ฆฌ. ์ผ๋ถ€์—๊ฒŒ๋งŒ ํŒ”๋ ค๋„ ์ด๋“์ด๋ผ๋Š” betting

    I agree with the author, but I would also say there is something above goals and constraints. Values. A set of things that, when comparing multiple options, make the choice clear. An example of some values I frequently use is "What will give me the most enjoyment the furthest into the future? "What will result in the world being a better place?" "What will make me become someone who resembles Jesus more?" They are different from constraints as they don't knock out any options by default. Instead, they make triaging when there are many different things I could be doing much easier, and circumvent my messy intuition which is based on hormones, hunger, weather, etc.
    I think values, goals, and constraints are all valuable, but it's a hierarchy. We should create constraints that help us become more aligned with our values. We should create shorter-term goals that make it easy to stay within our constraints. โ€” #

  • Tracking the performance of the various coding agents.
  • Pivot Points
    • Contextual Evaluation: Unlike traditional assessments that categorize traits as strengths or weaknesses, Pivot Points recognize that their value is context-dependent.
    • Embracing Constraints: Pivot Points are viewed as enabling constraints that, when embraced, can lead to more fulfilling personal and professional lives, allowing individuals and organizations to thrive by aligning actions with inherent strengths.
  • Deep in Mordor where the shadows lie: Dystopian tales of that time when I sold out to Google
  • A look at CloudFlareโ€™s AI-coded OAuth library

    Itโ€™s not bad, but I wouldnโ€™t really recommend it for use yet.

  • Falsehoods Programmers Believe About Aviation
  • Solo Performance Prompting (SPP)

Week 23, 2025

Week 22, 2025

  • The Recurring Cycle of 'Developer Replacement' Hype

    The pattern is becoming clear once again: the technology doesn't replace the skill, it elevates it to a higher level of abstraction.
    For agency work building disposable marketing sites, this doesn't matter. For systems that need to evolve over years, it's catastrophic.

    • The biggest asset of a developer is saying "no" to people. โ€” #
  • The Copilot Delusion

    Management has an AI shaped hammer and they're hitting everything to see if it's a nail. โ€” #

    This--all of this--seems exactly antithetical to computing/development/design/"engineering"/architecture/whatever-the-hell people call this profession as I understood it.
    Typically, I labored under the delusion that competent technical decision makers would integrate tooling or choose to use a language, "service", platform, whatever, if they saw benefits and if they could make a "case" for why something was the correct approach, i.e how it met some product's needs, addressed some shortcomings, made things more efficient. โ€” #

    My point of comparison of choice is overseas contractors, not pair programming.
    Copilot or Cursor or whatnot is basically a better experience because you do not have to get on Zoom calls (after Slack has failed) to ask why some chunk of your system that cares about root nodes has mysteriously gained a function called isChild (not hasChildren) that returns a boolean based on whether or not the node has children and not whether it has a parent. Or to figure out why a bunch a API parameters that used to accept arrays now don't. โ€” #

Week 21, 2025

Week 20, 2025

Week 19, 2025

  • The real potential of tools like Suno isnโ€™t in cranking out radio-ready hits. Itโ€™s in creating music that doesn't have commercial incentives to exist. Case in point: Functional Music. โ€” kelseyfrog
  • Unityโ€™s Open-Source Double Standard: the ban of VLC
  • On The Death of Daydreaming
    • ๐Ÿฅฑ -> ๐Ÿค”๐Ÿ’ก๐ŸŒฑ (Boredom -> Reflection, Creativity, Growth)
    • Smartphones eliminate boredom and dullness, but as a result, creativity and empathy are being impaired.
    • Interstitial time, which used to be moments for meditation, daydreaming, and observationโ€”human activitiesโ€”has now mostly been replaced by digital consumption.
    • The habit of avoiding waiting and boredom leads to the weakening of our attention, patience, and imagination.
    • With access to an iPad or a smartphone, children in the twenty-first century never had to be bored;

Week 18, 2025

Week 17, 2025

  • AI Horseless Carriages

    Their app is a little bit of AI jammed into an interface designed for mundane human labor rather than an interface designed for automating mundane labor. โ€œHorseless carriageโ€ refers to the early motor car designs that borrowed heavily from the horse-drawn carriages that preceded them.

  • Botnet Part 2: The Web is Broken

    Certain companies recruit app developers to create botnets by injecting โ€œnetwork sharingโ€ SDKs into their apps. These botnets then use the network bandwidth of unsuspecting users of said apps to crawl the web, brute-force mail servers and other nasty things.

  • Why LLM-Powered Programming is More Mech Suit Than Artificial Human - โ€œCentaur chessโ€ pairs humans with AI chess engines, creating teams that outperform both solo humans and solo AI systems playing on their own.
  • Vibe Coding is not an excuse for low-quality work - AI ๊ธฐ๋ฐ˜ ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ์€ ํ˜์‹ ์ ์ด์ง€๋งŒ, ํ’ˆ์งˆ ์—†๋Š” ์†๋„๋Š” ์œ„ํ—˜ํ•˜๋‹ค๋Š” ๊ฒฝ๊ณ ์˜ ๊ธ€
    • ํ’ˆ์งˆ์€ ์ž๋™์œผ๋กœ ๋”ฐ๋ผ์˜ค์ง€ ์•Š์Œ
    • ์†๋„๋Š” ํ’ˆ์งˆ ์—†์ด๋Š” ๋ฌด์˜๋ฏธํ•จ
    • AI๋Š” ๋Œ€์ฒด์ž๊ฐ€ ์•„๋‹ˆ๋ผ ์ธํ„ด์ž…๋‹ˆ๋‹ค (์‚ฌ๋žŒ์ด ๋ฃจํ”„ ์•ˆ์— ์žˆ์–ด์•ผ ํ•จ)
  • Cozy comfort - New research backs up what gamers have thought for years: video games can be an antidote to stress and anxiety.
  • How to pack ternary numbers in 8-bit bytes

    log(3) / log(2) bits per ternary digit

  • Some features that every JavaScript developer should know in 2025
    arr
      .values()
      .drop(10)
      .take(10)
      .filter((el) => el < 10)
      .map((el) => el + 5)
      .toArray()
    

Week 16, 2025

Week 15, 2025

Week 14, 2025

Week 13, 2025

Week 12, 2025

Week 11, 2025

Week 10, 2025

Week 9, 2025

Week 8, 2025

Week 7, 2025

Week 6, 2025

Week 5, 2025

Week 4, 2025

Week 3, 2025

Week 2, 2025

Week 1, 2025


Backlinks