56,966 blogs · [ { "id": "01a0874c-9f80-7049-9c2f-38b9f112b782", "title": "Have less stuff", "url": "https://blog.julik.nl/2026/07/less-stuff", "published_at": "2026-07-23T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f15df153", "title": "Asset pipelines: just say no", "url": "https://blog.julik.nl/2026/05/just-say-no-to-asset-pipelines", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f16e6e21", "title": "On the way to step functions: geneva_drive", "url": "https://blog.julik.nl/2026/02/on-the-way-to-step-functions-part-4", "published_at": "2026-02-07T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f20a6d2c", "title": "We have to re-learn to walk alone", "url": "https://blog.julik.nl/2026/01/go-fast-and-go-alone", "published_at": "2026-01-23T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f2551386", "title": "On the way to step functions: the two worlds", "url": "https://blog.julik.nl/2026/01/on-the-way-to-step-functions-part-3", "published_at": "2026-01-20T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f34a6644", "title": "On the way to step functions: it is actually a DAG", "url": "https://blog.julik.nl/2026/01/on-the-way-to-step-functions-part-2", "published_at": "2026-01-17T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f400b73f", "title": "On the way to step functions: dreams of marshalable stacks", "url": "https://blog.julik.nl/2026/01/on-the-way-to-step-functions-part-1", "published_at": "2026-01-16T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f4bf7b72", "title": "Making Rails Global IDs safer", "url": "https://blog.julik.nl/2025/12/a-trap-with-global-ids", "published_at": "2025-12-10T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f5443961", "title": "What does “intuitive” even mean?", "url": "https://blog.julik.nl/2025/10/what-does-intuitive-even-mean", "published_at": "2025-10-31T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f62f30a1", "title": "Delete your old migrations, today", "url": "https://blog.julik.nl/2025/10/delete-your-old-migrations", "published_at": "2025-10-07T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f6dc6aa1", "title": "The little Random that could", "url": "https://blog.julik.nl/2025/10/the-little-random-that-could", "published_at": "2025-10-05T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f7ad7022", "title": "Actually doing things in user’s time zone", "url": "https://blog.julik.nl/2025/10/chronically-actioned", "published_at": "2025-10-01T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f7e11173", "title": "The boss of it all", "url": "https://blog.julik.nl/2025/09/the-boss-of-it-all", "published_at": "2025-09-28T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f85e79be", "title": "Scheduling things in user’s time zone", "url": "https://blog.julik.nl/2025/09/chronically-regular", "published_at": "2025-09-26T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f895c9db", "title": "Drive manually", "url": "https://blog.julik.nl/2025/09/driving-by-hand", "published_at": "2025-09-05T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f89b0b2d", "title": "Illegible perception", "url": "https://blog.julik.nl/2025/09/illegible-perception", "published_at": "2025-09-05T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9f96365c8", "title": "Turning your Apple Calendar into a time tracker", "url": "https://blog.julik.nl/2025/08/turning-apple-calendar-into-time-tracker", "published_at": "2025-08-22T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9fa57a0b8", "title": "If you need subdomains: just use subdomains", "url": "https://blog.julik.nl/2025/08/just-use-subdomains", "published_at": "2025-08-09T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9faf23adc", "title": "Carried datasets, SQLite and Gaelic heritage", "url": "https://blog.julik.nl/2025/08/litesets-and-gaelic-heritage", "published_at": "2025-08-01T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9fbd6e416", "title": "Hexatetrahedral Rails", "url": "https://blog.julik.nl/2025/07/hexatetrahedral-rails", "published_at": "2025-07-26T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9fc2b7cf9", "title": "Why can’t we just… send an HTML email", "url": "https://blog.julik.nl/2025/07/html-emails-the-hard-way", "published_at": "2025-07-22T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9fcd854a3", "title": "Data over time", "url": "https://blog.julik.nl/2025/07/data-over-time", "published_at": "2025-07-09T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9fdb7babd", "title": "GETting conditionally - the bare basics", "url": "https://blog.julik.nl/2025/06/getting-conditionally", "published_at": "2025-06-13T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9fdca3ee6", "title": "UI algorithms: a tiny promise queue", "url": "https://blog.julik.nl/2025/05/a-tiny-promise-queue", "published_at": "2025-05-20T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9fdd94da4", "title": "Streamlining web app development with Zeroconf", "url": "https://blog.julik.nl/2025/05/dev-subdomains-with-zeroconf", "published_at": "2025-05-15T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9feba14ef", "title": "A can of shardines: SQLite multitenancy with Rails", "url": "https://blog.julik.nl/2025/04/a-can-of-shardines", "published_at": "2025-04-25T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9fecd8fd9", "title": "Template-Scoped CSS in Rails", "url": "https://blog.julik.nl/2025/04/template-scoped-css-in-rails", "published_at": "2025-04-09T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9ff227022", "title": "A supermarket bag and a truckload of FOMO", "url": "https://blog.julik.nl/2025/03/a-little-adventure-in-modern-frontend", "published_at": "2025-03-26T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9ff363eae", "title": "UI algorithms: a tiny undo stack", "url": "https://blog.julik.nl/2025/03/a-tiny-undo-stack", "published_at": "2025-03-22T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38b9ff7d5235", "title": "Musings on module registration (and why it could be better in Rails)", "url": "https://blog.julik.nl/2025/02/on-module-registration", "published_at": "2025-02-17T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38ba006c5efd", "title": "The surcharge of big tech", "url": "https://blog.julik.nl/2025/02/the-surcharge-of-big-tech", "published_at": "2025-02-09T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38ba00f61090", "title": "Disownership, pull requests and de-facto architects", "url": "https://blog.julik.nl/2025/01/disownership-and-pull-request-reviews", "published_at": "2025-01-25T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38ba01c9bc27", "title": "Supercharge SQLite with Ruby functions", "url": "https://blog.julik.nl/2025/01/supercharge-sqlite-with-ruby-functions", "published_at": "2025-01-23T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38ba024b252d", "title": "Maximum speed SQLite inserts", "url": "https://blog.julik.nl/2025/01/maximum-speed-sqlite-inserts", "published_at": "2025-01-01T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38ba02700129", "title": "Joke accounts are a bitter necessity", "url": "https://blog.julik.nl/2024/04/joke-accounts-are-a-bitter-necessity", "published_at": "2024-04-20T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38ba02f853c0", "title": "Reviving zip_tricks as zip_kit", "url": "https://blog.julik.nl/2024/04/reviving-zip-tricks", "published_at": "2024-04-09T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38ba034122f7", "title": "Exploring batch caching of trees", "url": "https://blog.julik.nl/2024/04/batch-caching-of-trees", "published_at": "2024-04-02T00:00:00+00:00" }, { "id": "01a0874c-9f80-7049-9c2f-38ba04219ad9", "title": "Testing a thousand applications with Flipper", "url": "https://blog.julik.nl/2024/03/testing-a-thousand-applications", "published_at": "2024-03-20T00:00:00+00:00" }, { "id": "01a0874c-9f81-70d4-b3db-4d93ddcfb49a", "title": "Tool complexity might have a cure: those pesky people who say no", "url": "https://blog.julik.nl/2024/03/those-people-who-say-no", "published_at": "2024-03-19T00:00:00+00:00" }, { "id": "01a0874c-9f81-70d4-b3db-4d93ddef84f3", "title": "Your might be running a thousand applications", "url": "https://blog.julik.nl/2024/03/you-might-be-running-a-few-thousand-applications", "published_at": "2024-03-02T00:00:00+00:00" }, { "id": "01a0874c-9f81-70d4-b3db-4d93debd6dcb", "title": "Changing your mind is not my job", "url": "https://blog.julik.nl/2024/02/change-my-mind", "published_at": "2024-02-29T00:00:00+00:00" }, { "id": "01a0874c-9f81-70d4-b3db-4d93dfab0bc5", "title": "Versioned business logic with ActiveRecord", "url": "https://blog.julik.nl/2024/02/versioned-business-logic", "published_at": "2024-02-27T00:00:00+00:00" }, { "id": "01a0874c-9f81-70d4-b3db-4d93e05ec77a", "title": "On the value of interfaces (and when you need one)", "url": "https://blog.julik.nl/2024/02/interfaces-and-ddd-and-oh-my", "published_at": "2024-02-15T00:00:00+00:00" }, { "id": "01a0874c-9f81-70d4-b3db-4d93e14c7cfa", "title": "UI algorithms: drag-reordering", "url": "https://blog.julik.nl/2022/10/drag-reordering", "published_at": "2022-10-22T00:00:00+00:00" }, { "id": "01a0874c-9f81-70d4-b3db-4d93e21c7367", "title": "The unreasonable effectiveness of leaky buckets (and how to make one)", "url": "https://blog.julik.nl/2022/08/the-unreasonable-effectiveness-of-leaky-buckets", "published_at": "2022-08-23T00:00:00+00:00" }, { "id": "01a0874c-9f81-70d4-b3db-4d93e2db0ff9", "title": "Two other possible reasons juniors are having it tough on the job market", "url": "https://blog.julik.nl/2022/01/two-other-reasons-juniors-are-having-it-tough", "published_at": "2022-01-01T00:00:00+00:00" }, { "id": "01a0874c-9f81-70d4-b3db-4d93e319377f", "title": "Actually creating a gem for idempotency keys", "url": "https://blog.julik.nl/2021/12/actually-creating-an-idempotency-keys-gem", "published_at": "2021-12-25T00:00:00+00:00" }, { "id": "01a0874c-9f81-70d4-b3db-4d93e3bdc7f2", "title": "The value of not having to be right", "url": "https://blog.julik.nl/2021/12/the-value-of-not-having-to-be-right", "published_at": "2021-12-21T00:00:00+00:00" }, { "id": "01a0874c-9f81-70d4-b3db-4d93e420f2e0", "title": "Art, science, taste and “clean code”", "url": "https://blog.julik.nl/2021/11/art-science-taste-and-clean-code", "published_at": "2021-11-22T00:00:00+00:00" }, { "id": "01a0874c-9f81-70d4-b3db-4d93e4e6bdc1", "title": "Do the scariest thing first", "url": "https://blog.julik.nl/2021/11/do-the-scariest-thing-first", "published_at": "2021-11-11T00:00:00+00:00" } ] posts Claim your blog
Back to Julik Tarkhanov
Blog · corpus.blog/blogs/blog.julik.nl/posts

Julik Tarkhanov

blog.julik.nl

2026

2025

2024

2022

2021