RSSAmplifier

Blog

Anatolii Kmetiuk’s Homepage

This is my homepage.

anatoliikmt.meRSS feed ↗20 posts

Latest posts

Attention Allocation Models for Agentic Development

Modern agentic engineering seems to be converging on a theme of agents being exceptionally great at taking care of boilerplate and navigating large search spaces, pursuing an objective function over long time horizons. They are much less great at decision-making and architecture design. The net effect is a speed-up of the software engineering projects with humans still being essential parts of the…

Bureaucratic way of efficient AI-assisted development

The key to an effective AI software engineering flow is bureaucracy. Everything needs to be indexed, named, and organized.

Ongoing Development Flow of Internal React Apps with Cursor and Linear

As I wrote in the previous article, the developments with Cursor gave rise to an opportunity to replace spreadsheets with React apps, while saving on time and brainpower. In this article, I’ll share more tips on what happens after the app is developed. Inevitably, you will discover bugs and room for improvement for it to match your vision precisely.

Replacing Spreadsheets with React Apps

Recent developments in Cursor AI-powered IDE have effectively made it so that it takes less time and effort for me to develop a React app for my administrative needs rather than turn to a spreadsheet. This post describes the technique I use to do so.

Effective Webapp Flow - 25h Sprint Retrospective

Programming is easy and effortless when things go right. This happy path is where AI shines. There are sandboxed environments of development, coheasive ecosystems of tools, frameworks, libraries, which play well together to achieve a certain goal. There are also generally accepted patterns and ways of doing things. While you’re working within such a sandbox, exactly following the purposes it was…

Learning Japanese in Japan

Two months ago I moved to Japan to pursue something I’ve always wanted to do. I’ve been a fan of Japanese culture for a long time, and always wanted to understand the language - so now I’m studying at a language school in Tokyo.

Healthy News Consumption in the Era of Web 2

Being exposed to unbiased, relevant, high-quality news can open the door to professional opportunities, learning, quality personal time. How do we consume news and other content in this day and age? It is mainly via personalized feeds of social networks and notifications they send us.

Techniques to gain basic insights into ML Models

I recently went through two remarkable tutorials on Kaggle: Feature Engineering and Model Explainability. They presented a bunch of different techniques to understand your data and models, which I’m going to summarise and connect in this article.

Personal Financial Projection Tool

One can find enough software for personal finance on the Internet. Typically, this software focuses on reviewing and categorization of your past expenses. Often, there are features like automatic categorization, integration with bank apps, and reminders to pay recurring expenses. This software typically focuses on the past and present financial situation. I did not find anything that would allow…

Vulkan Drawing Loop: The First Triangle

At the core of every game is its render loop – the loop that renders each frame that is then displayed to the player. The API Vulkan exposes is vast, which means there is no single right way to implement a render loop in Vulkan. In this article, I’ll describe the loop presented in the Drawing section of the Vulkan tutorial. This is the third article in the series where I share my impressions after…

Vulkan Graphics Pipeline

In this article, I’d like to summarize and share my impressions after going through the Vulkan tutorial’s Presentation and Graphics pipeline basics sections. This is the second article in the series where I share my impressions after following the Vulkan’s tutorial using Scala 3 – here is the first article. For every chapter, I implement an example in a separate file. The examples repository is…

Vulkan setup in Scala

Vulkan is a modern API to access graphics cards and use them for rendering and other purposes. An OpenGL successor, it is an essential component driving many modern games.

Context Function for DSL Design in Scala

A strong side of Scala is its DSL capability. DSLs, or domain-specific languages, are programming languages designed for convenient expression of operations in a certain domain. An example of such a DSL is the one I designed for Simple Rockets 2 – SR2 Compiler. That DSL can be used to program a rocket in the game.

Launching Rockets with Scala

If you’re an aerospace hobbyist, there’s a good chance that you’ll have a ton of fun with Simple Rockets 2.

Following Causal Chains in Dotty Codebase

You can deal with a problem in two ways. First, the intuitive way: go at it and follow your common sense. In process, however, you’ll discover recurring patterns. Some sub-problem that pops up constantly or a technique you apply time after time. Hence the second way is to frame the problem. Give the recurring patterns names, describe how they relate to each other. This way, you develop the domain…

Debugging Complex Scala Code: Tried and True Approaches

11 months ago, I wrote an article about how I was fixing a Dotty bug. Back then, working under the processes I used, I produced a 60 pages long PDF document over the course of 10 days which documented the bug hunting workflow. The premise of the article was that if you adopt the right processes, the efficiency of the task in question increases dramatically. Back then, logging each step in a…

Hacking on Dotty: The Diary

Recently I was working on the solution to this bug in the Dotty compiler. While doing so, I was also testing an approach inspired by the Theory of Constraints (see my previous blog posts about the models) when applied to working with large code bases.

Effect Extensions Pattern

When programming in a purely functional style, we aim to reify side effects into data structures called effect types. An effect type you are using should be the same throughout the entire application so that different parts of the application are composable.

Models for Life

Our mind continuously builds models for the future. This way, you know exactly what you will be doing tomorrow morning. And you know whether you have enough money to make it to the end of the month. If you don’t, you know it, and you start to feel uneasy.

Strategic Problem-Solving

In this article, I’d like to describe an approach in problem-solving I started to practice about a year ago. An approach I call Strategic problem-solving.