Emoji under the hood

Detailed look into all the machinery involved in rendering Emoji | Continue reading


@tonsky.me | 3 years ago

Phil Libin: Find a new way to ski

Brief transcript of What I Know podcast with Phil Libin on entrepreneurship | Continue reading


@tonsky.me | 3 years ago

DuckDuckGo logo redesign

Continue reading


@tonsky.me | 3 years ago

Macs and 4K 120Hz displays compatibility list

Macs/4K 120Hz displays compatibility list | Continue reading


@tonsky.me | 3 years ago

Graphics for JVM

Introducing Skija, Java bindings for Google graphics library, Skia | Continue reading


@tonsky.me | 3 years ago

People expect technology to suck because it actually sucks

I get at least 27 tech annoyances on a single day | Continue reading


@tonsky.me | 3 years ago

The most important feature of Sublime Text

is that it doesn’t change | Continue reading


@tonsky.me | 4 years ago

New service: UX Consulting

Continue reading


@tonsky.me | 4 years ago

Cognitect, please stop adding alpha to your namespaces

Why putting alpha in your project name does more harm than good | Continue reading


@tonsky.me | 4 years ago

Time to Upgrade Your Monitor

A non-comprehensive and opinionated guide to best monitor for programming | Continue reading


@tonsky.me | 4 years ago

Computers as I used to love them

File synchronization can be fun and painless if you don’t have to deal with corporate bullshit. | Continue reading


@tonsky.me | 4 years ago

Cleaning up the IntelliJ Idea form UI

Simple tips on fixing small details in UI | Continue reading


@tonsky.me | 4 years ago

Avoid catch-all utils namespace

Cleaning up and organizing single-file utils namespace | Continue reading


@tonsky.me | 4 years ago

Performance First

“Premature optimization being the root of all evil” is the root of all evil | Continue reading


@tonsky.me | 4 years ago

SwiftUI Defaults Considered Harmful

A few notes on SwiftUI and why UI frameworks should not try to be “smart” | Continue reading


@tonsky.me | 4 years ago

My web app died from performance bankruptcy

Chrome team breaks existing web to make Chrome perform better | Continue reading


@tonsky.me | 4 years ago

Good times create weak men

Software abstraction ladder becomes too tall and starts to fall | Continue reading


@tonsky.me | 4 years ago

Software Disenchantment

Everything is going to hell and nobody seems to care | Continue reading


@tonsky.me | 4 years ago

Medium is a poor choice for blogging

If you think about publishing an article, starting a blog or even just sharing a short rant on Medium, please consider what you’ll be putting your readers through. | Continue reading


@tonsky.me | 4 years ago

Grumpy chronicles: Pedestal and routing

Migrating a web app from Ring to Pedestal | Continue reading


@tonsky.me | 5 years ago

Grumpy chronicles: deps and uberdeps

Building uberjar from deps.edn | Continue reading


@tonsky.me | 5 years ago

The Web After Tomorrow (2015)

This post looks at what is missing from the current state-of-the-art web architectures, where they should be improved and what tools we have at hand for that. | Continue reading


@tonsky.me | 5 years ago

Acha Acha (Git Achievements Web App in Clojure)

Git Achievements application built around DataScript | Continue reading


@tonsky.me | 5 years ago

How NOT to hire a software engineer

A collection of anti-patterns seen in big IT companies regarding hiring practices | Continue reading


@tonsky.me | 5 years ago

How NOT to hire a software engineer

A collection of anti-patterns seen in big IT companies regarding hiring practices | Continue reading


@tonsky.me | 5 years ago

Redesigning Github repository page

Better design for Github repository page | Continue reading


@tonsky.me | 5 years ago

It is fast or it is wrong

Fast programs are always fast, slow programs are slow even on a most powerful computers. Knowing that fast solution exists makes slow one plain wrong. | Continue reading


@tonsky.me | 5 years ago

It is fast or it is wrong

Fast programs are always fast, slow programs are slow even on a most powerful computers. Knowing that fast solution exists makes slow one plain wrong. | Continue reading


@tonsky.me | 5 years ago

You need neither PWA nor AMP to make your website load fast

Good performance practices are still needed when developing fast web experience. | Continue reading


@tonsky.me | 5 years ago

Better clojure formatting

A Clojure formatting style good enough to be a default standard | Continue reading


@tonsky.me | 5 years ago

Better Clojure formatting

A Clojure formatting style good enough to be a default standard | Continue reading


@tonsky.me | 5 years ago

You don't need PWA or AMP to make your website load fast

Good performance practices are still needed when developing fast web experience. | Continue reading


@tonsky.me | 5 years ago

You need neither PWA nor AMP to make your website load fast

Good performance practices are still needed when developing fast web experience. | Continue reading


@tonsky.me | 5 years ago

Solve the problem at hand

Always prefer concrete code to abstract one. Don’t try to solve problems you don’t have. | Continue reading


@tonsky.me | 5 years ago

Apple Design Team vs the World

How iPad Pro redesign made it better and worse at the same time | Continue reading


@tonsky.me | 5 years ago

Address the root cause

Do not just fix symptoms. Find out the root cause and address it instead | Continue reading


@tonsky.me | 5 years ago

Address the root cause

Do not just fix symptoms. Find out the root cause and address it instead | Continue reading


@tonsky.me | 5 years ago

Software Disenchantment

Everything is going to hell and nobody seems to care | Continue reading


@tonsky.me | 6 years ago

Designing good DSL

A look at common mistakes in DSL designs and how to fix them | Continue reading


@tonsky.me | 6 years ago

Designing good DSL

A look at common mistakes in DSL designs and how to fix them | Continue reading


@tonsky.me | 6 years ago

Library focus

Why you shouldn’t write libraries as a part of a bigger software project | Continue reading


@tonsky.me | 6 years ago

The Web after Tomorrow (2015)

This post looks at what is missing from the current state-of-the-art web architectures, where they should be improved and what tools we have at hand for that. | Continue reading


@tonsky.me | 6 years ago

Speed is a feature

Continue reading


@tonsky.me | 6 years ago

Speed is a feature

When speed is a crucial UX factor | Continue reading


@tonsky.me | 6 years ago

JavaScript v. backward compatibility

For some unclear reason, many JS developers are opposed to the idea of backward compatibility | Continue reading


@tonsky.me | 6 years ago

Hiccup, Macros, API design, and magic

Small changes in usage conditions could require full library redesign | Continue reading


@tonsky.me | 6 years ago

Cursor keys belong at the center of your keyboard

Remap `CapsLock` + `IJKL` to act as cursor keys and teach yourself to use it | Continue reading


@tonsky.me | 6 years ago

You don’t want many options

Don’t get excited about libraries that offer many options | Continue reading


@tonsky.me | 7 years ago