Hey, I'm Yuri.
I'm a software engineer from Ukraine, specializing in full-stack, API, and test-driven development of web-based applications. I am currently focusing on creating automations using generative AI.
I was raised in Tokyo, graduated from a university in New York, and currently reside in Singapore.
I am a regular contributor to open source. You can find my work on Github under yurikoval.
Want to get in touch? Shoot me an e-mail at hello@yurikoval.com.
Take a look at some of my recent blog posts:
- Manage Your Claude Code Config with Dotfiles and GNU Stow
- Claude Code settings, skills, hooks, and MCP servers add up to a small codebase. Version-control ~/.claude in a dotfiles repo with git and GNU Stow to roll back broken skills and rebuild your setup on any machine.
- Lyra Prompt: A Simple Way to Write Better AI Prompts
- The Lyra prompt turns ChatGPT or Claude into a prompt optimizer that interviews you, then rewrites your request. An easy way to write better AI prompts.
- Monitor Claude Code Token Usage & Cost in the Status Line (Before the AI Bubble Pops)
- Monitor Claude Code's token usage, rate limits, and cost right in your terminal status line — using a custom statusline script and ccusage.
- How to Generate Same AI Images with JSON Context Profiles
- How to consistently generate images with exact same style, format, subjects, and placement of subjects using AI. This new technique involves just 2 simple steps.
- Automatically Convert Ecto Atom to String
- Skip manual Atom.to_string/1 calls in your Elixir code by building a custom Ecto.Type that converts atoms to strings transparently on cast.