Blog RSS
Posts about software development, design, management, and similar topics.
2024
2023
- Migrated Site to SvelteKit
- Explicit Software Design. Preliminary Conclusions
- Part 9. Decoupling Features with Events
- Part 8. Adding New Feature
- Part 7. Cross-Cutting Concerns and Extendable Infrastructure ⭑
- Part 6. App Composition without Hooks
- Part 5. App Composition ⭑
- Part 4. Ports, Adapters, and Infrastructure
- Part 3. Ports, Adapters, and UI
- Part 2. Application Core Design ⭑
- Part 1. Domain Modelling ⭑
- Explicit Software Design Series
2022
2021
- Text Generation with Markov Chains ⭑
- My Contribution to Doka
- Clean Architecture on Frontend ⭑
- Finishing Up the Binary Adder in the Game of Life
- Implementing Logic Gates in the Game of Life
- Let's Create a Binary Adder in the Game of Life! ⭑
- TDD: What, How, and Why ⭑
- My Week at @jsunderhood
- Generating Trees Images, Part 3. From Fractal to a Real Tree
- Generating Trees Images, Part 2. Geometry, Graphics and DOM
- Generating Trees Images on Canvas Using L-Systems, TypeScript and OOP ⭑
- My Workshop on Testing React Apps is Out ⭑
- Code. Part 2
- Code by Charles Petzold ⭑
2020
2019
- Marking Emails as Read Automatically
- Jedi Techniques by Maxim Dorofeev
- Tzlvt. “Black Screen of Death” Post-Mortem
- Tzlvt. Why Rewrite in TypeScript
- Make Error Messages Great Again
- Patterns for Fault Tolerant Software. Part 2 ⭑
- Patterns for Fault Tolerant Software by Robert S. Hanmer ⭑
- Process of Creating MRKT. Part 2
- Influence: Science and Practice by Robert B. Cialdini
- Starting at DRIVE2
- Process of Creating MRKT. Part 1
- When Consistency is More Important than Correctness
- What I've Learned From Failure by Reg Braithwaite
- MRKT Release
- Sapiens by Yuval N. Harari
- Missing Abstraction ⭑
2018
- Morse Code Translator and Player in JavaScript
- Don't Push Yourself
- No More Mr. Nice Guy by Robert A. Glover
- From Redux to Hooks? ⭑
- Dirty Architecture
- Click Me! Written with RxJS
- How I Divide My Work Time
- Command-Query Separation ⭑
- Red Pill by Andrey Kurpatov
- The Clean Architecture. Part 3
- The Clean Architecture. Part 2
- There's Always Time to Read Books—2
- The Clean Architecture by Robert C. Martin
- Copypaste in Code ⭑
- The Tao of Physics by Fritjof Capra
- Application State Management with Finite State Machines ⭑
- Tzlvt Update!
- Debug It! Part 2
- Debug It! by Paul Butcher
- What I've Learned in a Year and a Half of Teaching ⭑
- C0in Е2Е Testing with Cypress ⭑
- How to Write Helpful Documentation
- Error Handling in Asynchronous Functions ⭑
- Working Effectively with Legacy Code. Part 3
- Working Effectively with Legacy Code. Part 2
- Working Effectively with Legacy Code by Michael C. Feathers
- The Subtle Art of Not Giving a F*ck by Mark Manson ⭑
- How We Launched “Frontend without Pain!”
2017
- Deep Survival by Laurence Gonzales
- Clean Code. Part 3
- Clean Code. Part 2
- Clean Code by Robert C. Martin
- Cure for Broken Backwards Compatibility ⭑
- How I Redesigned My Site
- Using Web Workers to Boost Performance ⭑
- How the Body Knows Its Mind by Sian Beilock
- Driven to Distraction by Edward M. Hallowell
- How to Describe Bugs ⭑
- How We Launched iBike Ufa
- The Art of Readable Code. Part 3
- Scroller Upgrade
- The Art of Readable Code. Part 2
- The Art of Readable Code by D. Bowsell, T. Foucher
- Taskman Release
- How to Become Solid
- Kursovik
2016
- Decoded. The Science behind Why We Buy by Phil Barden
- Process of Making New Request.ru
- Release of New Request.ru
- Notes from “Frontend Fellows” Conference
- Release of CRM for Request.ru
- First Lecture at Netology
- How I Improved My Daily Routine and Why ⭑
- Dates and Timestamps
- Tzlvt. Native vs Web
- Tzlvt Release ⭑
- Tzlvt. How Design Principles Affect Development
- Unsubscribe From Annoying Email Once You Get Them ⭑