Simo Virokannas

Writings and ramblings

  • The Coming Age of Understanding

    The Coming Age of Understanding

    Senior software developers face pressure to rely on AI for coding, risking the erosion of vital programming skills. While AI can generate code,…

  • The End of the Infinite Internet

    The End of the Infinite Internet

    The AI industry’s scaling strategy has two hidden assumptions: that useful human information is effectively infinite, and that producing information faster is equivalent…

  • The Illusion of Productivity

    The Illusion of Productivity

    The article discusses the placebo effect of AI adoption, highlighting behavioral changes rather than genuine productivity improvements in organizations.

  • Desire Paths and the Myth of the Imaginary User

    Desire Paths and the Myth of the Imaginary User

    Most users will never fully learn your system, read your documentation, or internalize your intended workflow. They will instead discover whatever path minimizes…

  • Healthy Systems Have Empty Queues

    Healthy Systems Have Empty Queues

    There is something deeply satisfying about a system that simply answers immediately. You click a button, something happens.You ask for data, it gives…

  • The Shape of Growing Systems

    The Shape of Growing Systems

    Software systems continuously evolve and absorb new requirements, which can lead to chaotic behavior (entropy). To maintain coherence, intentional design, containment strategies, and…

  • The Coming Dark Age of Programming

    The Coming Dark Age of Programming

    There is a quiet shift happening in programming. It’s the subtle thinning of craftsmanship. Tools are more powerful than ever, the barriers to…

  • Spreadsheets and LLMs: from Prototyping to Archaeology

    Spreadsheets and LLMs: from Prototyping to Archaeology

    Spreadsheets are among the most productive tools ever created. You can take a vague idea, and within minutes have something that resembles a…

  • The Illusion of Concurrency

    The Illusion of Concurrency

    For the past two decades, the software industry has been marching in two directions at the same time. Hardware gravitated toward parallelism. We hit…

  • Planning: Mandatory

    Planning: Mandatory

    Planning is the deliberate act of deciding what matters, what comes first, and what can wait. Most failed software projects do not fail…

  • What Happened to Flowcharts?

    What Happened to Flowcharts?

    Flowcharts matter now more than ever before.

  • All Roads Lead to Latency: The Microservices Illusion

    All Roads Lead to Latency: The Microservices Illusion

    Microservices are often presented as an inevitable evolution of software architecture. The rationale goes something like this: once your codebase reaches a certain…

  • The Illusion of Intelligence at the Cutting Edge

    The Illusion of Intelligence at the Cutting Edge

    Artificial intelligence, particularly large language models (LLMs), is routinely described as cutting edge technology. The term is used so often that it has almost…

  • Memories

    Memories

    There was a time when software respected the machine it ran on. Developers measured memory in kilobytes, not because they were nostalgic minimalists,…

  • Swipe to Skip Learning

    Swipe to Skip Learning

    For aspiring developers and juniors entering the field, this moment in time is pivotal. You’re being told you can build apps faster than…

  • Swipe for Technical Debt

    Swipe for Technical Debt

    AI coding tools are spreading through software companies faster than any previous technology. Startups are embracing them for “productivity”, teams are embedding them…

  • Software project management method obituaries considered harmful

    Software project management method obituaries considered harmful

    I’ve noticed a recent increase in project management method “obituaries” – Agile is dead, waterfall is dead, scrum is dead. I believe this…

  • End of File

    End of File

    Since the dawn of modern computing, files have been an integral concept in organizing and storing data. Today each device keeps internally track…

  • A Monolith, Perhaps?

    A Monolith, Perhaps?

    In the context of this article, the word “monolith” is used to represent monolithic development: a software or environment that lives in one…

  • Just some pointers

    Just some pointers

    The book “Machine Code for Beginners” (by Usborne, 1983) likened computer memory to a shelf or a cabinet with lots of tiny little…

  • The Information Problem

    The Information Problem

    There’s a lot of information available for software developers. On one frequently updated list of free programming books on GitHub, there are several…

  • The Three-Axis Problem

    The Three-Axis Problem

    Generation X, Gen-Y (or millennials), Gen-Z. These are terms we use in everyday language to categorize the last three generations that form the…

  • What is Software Salvage

    What is Software Salvage

    Summary This article describes the method for software rewrites when the original source code is unavailable – or unstable, of questionable quality or…

  • Numeric Value of (nothing) Is Zero

    Numeric Value of (nothing) Is Zero

    Background Part of what I do is software salvage. I’ve had the joy of working on bringing life back to abandoned codebases, extend…

  • Transference of Complexity

    Transference of Complexity

    Summary Programming languages have evolved in accessibility, complexity and readability in the past six decades. The overall internal complexity of a single software…

  • Google site-kit plugin for WordPress update mayhem

    I recently did a blanket update for all plug-ins for a WordPress site (good idea security-wise, bad idea, turns out, otherwise). This revealed…

  • Compiling Pixar’s USD natively on Windows 11 / VS 2022

    If you’ve tried it, you’ve probably run into the endless catch-22 that is getting everything to behave when trying to compile the Universal…

  • Out of the Box Software site is up

    The completely-renewed OOTB site is now up. You can find it either by clicking on a link in the sidebar (statement that might…

  • Gitlab-runner, MacOS 12

    If you’ve tried setting up a gitlab-runner on MacOS 12 you may have run into the same problem I did – even when…

  • Totally Arcade Controller

    With the A500 Mini finally out, it revealed a screaming void no one seems to be filling: a proper controller. Almost everyone I…