# Vlad Sabev > Essays on software, freelancing, and AI This site is a static blog. Posts and pages are available as Markdown at the same slug with a `.md` extension (`/example-post/` ↔ `/example-post.md`). The post index is `/index.md`; tag listings are `/tags/.md`. ## Posts - [Smoothing the Path with AI](https://vdsabev.github.io/smoothing-the-path-with-ai.md) (2026-07-28; tags: ai, testing, software development; author: Vlad Sabev): My favorite use of AI - not vibe-coding toy apps, but smoothing over the path - like driving a car down the highway instead of going on a cross-country hike. - [The Economics of Self-Hosting AI](https://vdsabev.github.io/the-economics-of-self-hosting-ai.md) (2026-07-28; tags: ai, self-hosting, freelancing; author: Vlad Sabev): Enthusiasts want to self-host models but can't justify the hardware. Marketplaces for spare compute could enable the economics for individuals, while privacy already makes it a no-brainer for companies. - [cmless: Seamless Blogging with GitHub Issues](https://vdsabev.github.io/cmless-seamless-blogging-with-github-issues.md) (2026-07-23; tags: blogging, software development; author: Vlad Sabev): I've tried to maintain a blog for years, but every tool had too much friction. So I made cmless: turn a GitHub repo into a blog with Issues as the CMS and GitHub Pages for hosting. - [The AI Casino](https://vdsabev.github.io/the-ai-casino.md) (2026-02-17; tags: ai, psychology, self-hosting; author: Vlad Sabev): How variable rewards and prompt routing could be turning LLMs into digital slot machines - [The Spiritual Cost of the Nanny State](https://vdsabev.github.io/the-spiritual-cost-of-the-nanny-state.md) (2026-02-07; tags: eu, parenting, personal responsibility, technology; author: Vlad Sabev): The shift from personal responsibility toward government paternalism and human self-domestication. - [Overtherapizing Men's Mental Health](https://vdsabev.github.io/overtherapizing-mens-mental-health.md) (2026-02-02; tags: culture, family, psychology; author: Vlad Sabev): Talking about emotions isn't enough for men's mental health - finding meaning through Function, Family, and Faith offers a better path. - [Rich Storytelling with AI World Models](https://vdsabev.github.io/rich-storytelling-with-ai-world-models.md) (2026-02-02; tags: ai, game development, storytelling; author: Vlad Sabev): How AI world models like Genie 3 could revolutionize storytelling, democratize game development, and let creators build immersive worlds from imagination. - [Effective Code Reviews](https://vdsabev.github.io/effective-code-reviews.md) (2023-09-26; tags: code review, software development, teamwork; author: Vlad Sabev): How to foster a culture of learning through code review. - [On Alphabetically Ordering CSS Properties](https://vdsabev.github.io/on-alphabetically-ordering-css-properties.md) (2020-12-02; tags: css, software development; author: Vlad Sabev): And other properties, really - [Writing Reliable Unit Tests for Our Components](https://vdsabev.github.io/writing-reliable-unit-tests-for-our-components.md) (2020-11-08; tags: software development, testing, vue; author: Vlad Sabev): Three common pitfalls when writing component unit tests and how to write more reliable tests that focus on the component's public interface. - [Simple Naming Tips for Event Handlers](https://vdsabev.github.io/simple-naming-tips-for-event-handlers.md) (2018-12-23; tags: javascript, react, software development; author: Vlad Sabev): Helping our team (and ourselves) write more meaningful and robust code. - [Learning Form Management in React](https://vdsabev.github.io/learning-form-management-in-react.md) (2018-10-08; tags: forms, javascript, react, software development; author: Vlad Sabev): By building our own reusable component from first principles. - [Using Angular's Dependency Injection Sparingly](https://vdsabev.github.io/using-angulars-dependency-injection-sparingly.md) (2018-10-01; tags: angular, dependency injection, software development, testing; author: Vlad Sabev): How excessive abstraction slowed down our unit tests to a crawl. - [Giving Credit and Taking Responsibility in a Team](https://vdsabev.github.io/giving-credit-and-taking-responsibility-in-a-team.md) (2018-09-12; tags: personal responsibility, psychology, teamwork; author: Vlad Sabev): Whether we succeed or fail, it helps to know how to best represent our team in front of upper management or clients. - [React: Injecting Component Props with ES7 Decorators](https://vdsabev.github.io/react-injecting-component-props-with-es7-decorators.md) (2018-08-20; tags: javascript, react, software development; author: Vlad Sabev): Experimenting with decorators to make writing and maintaining React components more ergonomic (subjectively). - [Dribbble Designs in Code (part 2 — Editorial Exploration)](https://vdsabev.github.io/dribbble-designs-in-code-part-2-editorial-exploration.md) (2018-06-28; tags: css, design, software development; author: Vlad Sabev): This is the second in a series of posts on coding designs from Dribbble. - [Dribbble Designs in Code (part 1 — Venue Landing Page)](https://vdsabev.github.io/dribbble-designs-in-code-part-1-venue-landing-page.md) (2018-06-14; tags: css, design, software development; author: Vlad Sabev): This is the first in a series of posts on coding designs from Dribbble. - [How I (Foolishly) Gave Up My Google Account Password](https://vdsabev.github.io/how-i-foolishly-gave-up-my-google-account-password.md) (2018-04-06; tags: security; author: Vlad Sabev): I received a convincing phishing attack on my personal email and gave up my Google password. Here's how it happened, and how to be more careful about it. - [The Simple Difference Between RxJS switchMap and mergeMap](https://vdsabev.github.io/the-simple-difference-between-rxjs-switchmap-and-mergemap.md) (2018-03-19; tags: angular, rxjs, software development; author: Vlad Sabev): Trying to figure out whether to use switchMap or mergeMap for a simple HTTP request? I only understood the difference once I tried it out for myself. - [Preparing a Freelance Offer: From 0 to 100%](https://vdsabev.github.io/preparing-a-freelance-offer-from-0-to-100.md) (2017-10-23; tags: freelancing, software development, talk; author: Vlad Sabev): A step-by-step guide to preparing a professional freelance offer - from initial client conversations and market research through feature estimation, pricing packages, and presenting the final document. - [Exploring Unidirectional Components in Mithril (part 2 — Redux)](https://vdsabev.github.io/exploring-unidirectional-components-in-mithril-part-2-redux.md) (2017-10-09; tags: hyperapp, javascript, mithril, redux, software development; author: Vlad Sabev): Continuing the experiment from part 1, this time using Redux and the reducer pattern for unidirectional data flow in Mithril, and comparing it to Hyperapp. - [Simplify Your Layout (And Your Life) With CSS Grid](https://vdsabev.github.io/simplify-your-layout-and-your-life-with-css-grid.md) (2017-08-31; tags: css, software development; author: Vlad Sabev): Doing layout in CSS is really hard. After years of fighting it, here's how CSS Grid changed the way I approach design and made layouts far simpler. - [Exploring Unidirectional Components in Mithril (part 1 — Hyperapp)](https://vdsabev.github.io/exploring-unidirectional-components-in-mithril-part-1-hyperapp.md) (2017-08-18; tags: hyperapp, javascript, mithril, software development; author: Vlad Sabev): An experiment in writing Mithril components with a unidirectional data flow, borrowing ideas from Hyperapp instead of the usual component classes. - [How to Price Your Time and Work as a Freelancer](https://vdsabev.github.io/how-to-price-your-time-and-work-as-a-freelancer.md) (2017-07-24; tags: freelancing, software development, talk; author: Vlad Sabev): A practical guide to pricing freelance services — moving beyond hourly billing toward value-based pricing. ## Pages - [About me](https://vdsabev.github.io/about.md) (2026-07-12; author: Vlad Sabev): I'm Vlad - a web developer who cares about why we build things the way we do rather than which framework we're using this week. ## Tags - [#ai](https://vdsabev.github.io/tags/ai.md): 4 posts - [#angular](https://vdsabev.github.io/tags/angular.md): 2 posts - [#blogging](https://vdsabev.github.io/tags/blogging.md): 1 post - [#code review](https://vdsabev.github.io/tags/code%20review.md): 1 post - [#css](https://vdsabev.github.io/tags/css.md): 4 posts - [#culture](https://vdsabev.github.io/tags/culture.md): 1 post - [#dependency injection](https://vdsabev.github.io/tags/dependency%20injection.md): 1 post - [#design](https://vdsabev.github.io/tags/design.md): 2 posts - [#eu](https://vdsabev.github.io/tags/eu.md): 1 post - [#family](https://vdsabev.github.io/tags/family.md): 1 post - [#forms](https://vdsabev.github.io/tags/forms.md): 1 post - [#freelancing](https://vdsabev.github.io/tags/freelancing.md): 3 posts - [#game development](https://vdsabev.github.io/tags/game%20development.md): 1 post - [#hyperapp](https://vdsabev.github.io/tags/hyperapp.md): 2 posts - [#javascript](https://vdsabev.github.io/tags/javascript.md): 5 posts - [#mithril](https://vdsabev.github.io/tags/mithril.md): 2 posts - [#parenting](https://vdsabev.github.io/tags/parenting.md): 1 post - [#personal responsibility](https://vdsabev.github.io/tags/personal%20responsibility.md): 2 posts - [#psychology](https://vdsabev.github.io/tags/psychology.md): 3 posts - [#react](https://vdsabev.github.io/tags/react.md): 3 posts - [#redux](https://vdsabev.github.io/tags/redux.md): 1 post - [#rxjs](https://vdsabev.github.io/tags/rxjs.md): 1 post - [#security](https://vdsabev.github.io/tags/security.md): 1 post - [#self-hosting](https://vdsabev.github.io/tags/self-hosting.md): 2 posts - [#software development](https://vdsabev.github.io/tags/software%20development.md): 17 posts - [#storytelling](https://vdsabev.github.io/tags/storytelling.md): 1 post - [#talk](https://vdsabev.github.io/tags/talk.md): 2 posts - [#teamwork](https://vdsabev.github.io/tags/teamwork.md): 2 posts - [#technology](https://vdsabev.github.io/tags/technology.md): 1 post - [#testing](https://vdsabev.github.io/tags/testing.md): 3 posts - [#vue](https://vdsabev.github.io/tags/vue.md): 1 post ## Feeds - [RSS](https://vdsabev.github.io/rss.xml): Published posts - [Sitemap](https://vdsabev.github.io/sitemap.xml): HTML and Markdown URLs - [Post index (Markdown)](https://vdsabev.github.io/index.md) - [Full text (llms-full.txt)](https://vdsabev.github.io/llms-full.txt): Complete Markdown sources for posts and pages