Blog

Slack meets Bedrock: analytics, monitoring, and production

· 22 min read

Deploying an AI bot is the easy part. Knowing whether it's helping anyone, catching failures before users report them, and keeping costs under control is whe...

Slack meets Bedrock: knowledge bases, tools, and action groups

· 22 min read

A chatbot that only answers general questions is a worse Google. This post covers how to give a Bedrock Agent domain-specific intelligence through knowledge ...

Slack meets Bedrock: building the gateway

· 17 min read

AWS Bedrock Agents speak HTTP. Slack speaks WebSocket. This post covers how to build the gateway that bridges them: Socket Mode, session management, concurre...

How the agent loop and cron work together inside Autobot

· 17 min read

Building an AI agent that runs autonomously on a schedule requires more than just calling an LLM. This post explores how autobot, a Crystal-based AI agent fr...

Preview skills: visualizations for AI-assisted development

· 8 min read

Reviewing raw JSON, CSV, or Mermaid diagrams in the terminal is a cognitive burden. Preview skills solve this by rendering visual previews directly in the br...

Code quality skill for AI-assisted development

· 17 min read

How a code-quality skill transforms AI-generated code from functional to maintainable by enforcing SOLID principles, eliminating magic numbers, and keeping c...

Generative Zwift Workouts

· 22 min read

UX patterns for building an AI workout generator for Zwift, combining generative AI with direct manipulation and multi-layer validation.

Testing SES Emails in Local Development

· 17 min read

Learn how to effectively test AWS SES emails locally using LocalStack. Compare different email viewers including the built-in LocalStack UI, Mailpit, and a l...

Configuring AWS Bedrock

· 9 min read

Learn how to set up AWS Bedrock agents using CloudFormation. Master the three essential components—IAM roles, agents, and aliases—for building AI applications.

The learning loop

· 10 min read

Master the Learn → Practice → Share cycle that successful developers use to build skills. Discover why AI makes this loop faster and why Reflect is now the c...

Building an MCP Server for Claude Code

· 23 min read

Learn how to build a custom Model Context Protocol server for Claude Code. Master the fundamentals of MCP protocol, tool definitions, and argument handling u...

Building real-time chat with Hotwire

· 23 min read

Learn how to build a sophisticated real-time chat system using Hotwire. We'll create a complete implementation featuring instant message delivery, background...

Using React Components in Stimulus Controllers

· 20 min read

A simple tutorial explaining how to integrate existed React components into your modern Rails app powered by Hotwire.

AWS S3 replication across different accounts

· 12 min read

AWS S3 Bucket replication is an incredibly powerful and cost-effective way to ensure your data remains safe, secure, and accessible in the cloud. With S3 buc...

Avo custom fields

· 10 min read

Avo is a content management system for Ruby on Rails applications that has a lot of features out of the box. It is designed to be easy to use and extendable,...

Cross account Amazon ECR images

· 8 min read

Sharing Amazon ECR images across accounts is a common requirement, especially in scenarios where a CI/CD pipeline resides in one account and the production e...

Chartkick and turbo frames - elevating rails visuals

· 10 min read

In today’s digital landscape, delivering dynamic and interactive content is essential for engaging user experiences. Rails developers often leverage powerful...

Configuring MFA delete on S3 bucket

· 7 min read

MFA Delete adds an additional layer of security to your S3 buckets by requiring authentication via MFA before allowing the permanent deletion of objects. Thi...

How MySQL gap lock can lead to deadlock

· 14 min read

MySQL implements gap locks as a locking mechanism to control access to a table. A gap lock can be used in a SELECT statement with the FOR UPDATE or LOCK IN S...

Splitting Rails migration into smaller pieces

· 9 min read

ActiveRecord migration is a great abstraction over the database schema manipulation. It looks understandable and works pretty well, however, it can take a wh...

Joining polymorphic associations in ActiveRecord

· 9 min read

Short list of thoughts on how to join polymorphic associations in ActiveRecord and why it cannot be loaded eagerly.

Tracking PaperTrail versions while saving in batches

· 10 min read

Article explains how to efficiently group and query model versions with PaperTrail in Ruby on Rails application while saving multiple records in batches.

Writing Slack bot in Crystal programming language

· 16 min read

Small tutorial that shows how to quickly create a slack bot using Crystal programming language

Observer design pattern in Crystal language

· 9 min read

A post where I want to share my thoughts regarding an implementation of an Observer design pattern in Crystal language.

New Year countdown With FlipClock.js

Just a quick way to create awesome New Year Countdown.

Getting started with Unite.vim

· 3 min read

Initial configuration of Unite.vim after installation.

How to start using Neovim instead of Vim

· 5 min read

Step by step tutorial how to start using Neovim with Vim's config.

Speed up Rails 4 in development mode

· 2 min read

A quickest way to speed up your development with Rails 4.

How to Run Long Running Crystal Specs in Vim

Running long specs for your project within Vim? Then this short article is for you.

Benchmarking in Crystal? It rocks!

· 7 min read

Benchmarking in easy, benchmarking is existing, especially in Crystal! Checkout a quick overview with practical examples.

Methods tap and itself in Crystal

· 6 min read

After reading this post you will know why Object#tap and Object#itself methods are so useful in Crystal language and when to use them.

Make your own Shard in Crystal language

· 17 min read

An easy to use tutorial to create a new shard in Crystal language.

Should every Software Developer have a blog?

· 3 min read

A post where I want to describe what made me start blogging.