Writing

Posts and field notes.

2026 16 posts

Porting Nomi from SwiftUI to Jetpack Compose in under two hours

An AI coding agent turned a 10,500-line SwiftUI app into a fully native Android app — same backend, same UX, Material Design throughout. Here is what the port decided, what it deliberately did not port, and the two bugs a real user found.

Where human sleep went wrong

Nautilus has a great interview with David Samson, author of The Sleepless Ape. His claim: we are the shortest-sleeping primate on the planet, our sleep is mostly fine, and the eight-hour rule was never biology — it was a labor negotiation.

Creatine: reality vs hype

Creatine is the most-studied supplement on the shelf and the internet has decided it is also a nootropic. The evidence says something narrower and more interesting: it works when your brain is under stress, and mostly does nothing when it isn't.

Running a 397B parameter model on my M5 MacBook Pro

A 397 billion parameter mixture-of-experts model does not fit in RAM. It turns out it does not need to. Flash-MoE streams experts off the SSD four at a time, and on an M5 Max it runs at twice the speed the authors reported.

Strict enough that AI cannot drift

AI generates interfaces now. That makes your design system the most important thing in your codebase. But only if it is strict. A loose design system is an invitation for the model to improvise, and it will accept that invitation every single time.

Green eyes are not green

Roughly 2% of people have green eyes — and not a single one of them has any green pigment in their iris.

On Csikszentmihalyi and flow state

Hungarian-American psychologist who spent his life answering one question: what makes a life feel worth living, from the inside? He answered it with one word. Flow.

AI will put AI out of business

The frontier labs are racing to build the smartest models. But the open models are catching up. And the on-device ones are catching up too. The endgame isn't who wins the race. It's that the race stops mattering.

Figma broke web design

Figma won by being the easiest design tool of its generation, but its canvas-first architecture has quietly held the web back for over a decade. The handoff isn't a workflow, it's a bug. And a whole generation of designers is now siloed inside a tool that drifted away from the medium it was supposed to design for.

On taste

Imagine thinking you can sing. You love it, practice constantly, even audition. Then one day you record yourself and realize you're terrible. The scary part isn't being bad. It's having been completely blind to it. That's the core fear: what if your taste itself is broken, and you can't even tell?

2025 9 posts

I miss being called an idiot

It's all about feedback. And feedback has to be direct and honest and also not intentionally harmful.

The unemployable genius (engineer)

There is a fascinating archetype in the modern workplace: the genius that cannot and will not fit into traditional employment structures. These are the people companies desperately need but can rarely keep.

Large phone problems

Every few years, I buy a new phone. I am typically an iPhone user, so last year I bought the 16 Pro Max. Overall, great experience, but I also bumped into a few unforseen issues.

MIT study: state of AI in business 2025

A recent study from MIT concluded that despite enterprises pouring $30-40 into generative AI initiatives, 95% of these projects yield no measurable impact. Adoption is widespread—many organizations are experimenting with AI tools—but only about 5 % of pilots reach production with meaningful results.

What is good web design, and bad web design?

In this insightful article by Remy Sharp, a web professional since 1999, he explores the various factors that contribute to good and bad web design, drawing from his extensive experience attending design, user experience, and developer conferences for over 15 years.

AI isn’t going to replace you (if you’re good)

This article discusses how AI, while capable of handling basic tasks, cannot replace skilled professionals who focus on quality, craftsmanship, and meaningful experiences. It emphasizes that AI is better suited as a tool to augment skilled workers rather than replace them, particularly in areas requiring expertise, creativity, and human understanding.

2024 6 posts

Steve Jobs’ vision about the future

In his 1983 talk at the International Design Conference in Aspen, Steve Jobs articulated a powerful vision for the future of personal computing. He saw the computer not just as a tool, but as a new medium of communication, on par with the book, the telephone, and the television. Just as each of these mediums had shaped the way we communicate, Jobs believed that the personal computer would profoundly transform our lives.

How to ship Go apps with Kamal

I have been shiping most of my Go apps with Kamal for a while now. I am sharing the main config files I am using, with two different apps: this blog and a object storage service.

Towards modern development of cloud applications

The paper, mentioned in the title, addresses the inherent challenges of the widely adopted microservices architecture in cloud computing, including performance bottlenecks, versioning issues, and increased complexity in application management. While microservices offer scalability, fault tolerance, and agile deployment, they also introduce significant overheads, making applications difficult to manage, reason about, and evolve.

Detailed example of web components usage

I have been using web components instead of other libraries and their components for about an year now. They have a few key features, like built-in hydration, use of Shadow DOM or not, depending on your preference, that are indispensable in the UIs that I build.

I found a post today that shows in detail what their potential is and how exactly they are being used to build an actual product.

Launching naina

Even though it's only January, this year has already been very interesting for me. And since most of these interesting things are products on the web, and me being unhappy with design tooling for web products, I decided to build something different, something that fills in my needs primarily, but perhaps is able to help others as well.

Still in very early stage, today I am putting it partially out there for interested folks to provide feedback or even subscribe to progress notifications.

But first, let me tell you what it is.

2023 12 posts
Style external links differently

Let’s add a different color to the styles of external links, regardless if they open in a new tab or not:

a[href^="http"]::after {
  color: var(--color-secondary-1);
}

The one web layout that rules them all

I have a bold claim: there is a responsive CSS Grid / Flexbox combo layout that can be used to build almost any web layout. At least I haven’t found any layout I wanted to build and couldn’t.

Component hydration with no dependencies

Client component hydration has been a trendy topic these days. Some frameworks like Next, Astro and others are already doing it.

It is not common knowledge that we can achieve a very similar result with pure SSR and declarative shadow DOM.

Typeface ligatures everywhere—like fi

All typefaces have been instructed to display their ligatures, by default, like this:

body {
  font-variant-ligatures: normal;
  font-feature-settings: "liga" 1, "dlig" 1, "hlig" 1, "clig" 1, "calt" 1;
}

HTML details

On occasion we need to present a summary of content while allowing the user to deep dive if they want to. The details element is a great way to do this, with good browser support as well. Let's see how.

HTML dialog, occasionally modal

Many times we need to show a modal to the user, to ask for confirmation, or to show some additional information in a manner which covers the rest of the page user interface. The dialog element is a great way to do this, and it is supported by all major browsers.

Custom a hover states

All a elements on this page have a customised hover effect. Here's how to achive that:

a:hover {
  text-decoration: underline;
  text-decoration-thickness: .1em;
  text-underline-offset: .15em;
  text-decoration-color: var(--color-secondary-1);
}

Better end to end design systems

Implementing a consistent brand across various devices and channels has never been easy. The diversity of connected devices and their screen sizes is also not helping simplify the process.

Let's take a stab at how we could improve this.

Under-engineer

The last several years of web development have been going into a direction of needlessly over-engineering even simplest tasks.

Maybe it's time to get back to the basics, to use simple solutions for simple tasks. Let's touch on how I think we should be approaching initial web product development.

The CSS has() selector

In my first not post I mentioned and example of something I find quite interesting in the recent CSS features,that is the has() selector. And while I was preparing to write something about it, which I mightstill do, here's a great article on Smashing Magazine written by Stephanie Eckles about this exact topic.

2022 1 post

I have decided to not blog

I have recently been reading a lot given that I had a lot of time on my hands. Many of my readings have been about my work, what I'm passionate about in my work — how to build amazing experiences on the web and native platforms.

So I have quickly put together this not blog to share not posts here. Read along if you're curious what this crazy idea is about.