The Evolution from Code Craftsmanship to Living Systems: A Conversation About the Future of Software Architecture

The Great Paradigm Shift We stand at a remarkable inflection point in software development. For decades, we’ve been craftsmen — carefully shaping code, debugging line by line, architecting systems through sheer intellectual force. But something profound is happening: we’re transitioning from writing code to conducting systems. The shift is from imperative (“do this step, then that step”) to declarative (“here’s the goal, you figure out the steps”) thinking. Instead of telling the computer how to solve problems, we describe what we want and let intelligent systems figure out the implementation. ...

August 23, 2025 · Tolic Kukul

How to Make Claude Code Actually Follow Your Rules: The 100-Line CLAUDE.md That Works

I had a problem. My CLAUDE.md file was 300+ lines of verbose documentation that Claude Code routinely ignored. Sound familiar? After researching what actually works in the community, I discovered the brutal truth: Claude Code doesn’t read novels. It needs bullet points and shortcuts. Here’s how I cut my documentation by 66% while making it infinitely more effective. The Problem: Verbose Documentation Gets Ignored My original CLAUDE.md looked like this: ...

June 15, 2025 · Tolic Kukul

Building Hybrid Declarative Systems: A Practical Architecture Guide

Yesterday I explored how proof trees and machine learning can work together. Today, let’s get practical: how do you actually build these hybrid declarative systems? Back in 2012, I built a proof of concept for medical software that tracked drug interactions, advised on dosage, and provided decision support that human doctors could review. It was a glimpse into what’s now becoming mainstream. Here’s how I’d build it now. The Four-Layer Architecture Think of a hybrid declarative system like a brain with specialized regions that collaborate: ...

January 20, 2025 · Tolic Kukul

What Happens When You Combine Proof Trees with Machine Learning

In my previous article, I explored proof trees: how declarative languages like Prolog break down questions into smaller steps until they can be answered with known facts. It’s structured, logical, and explainable. But it also has a weakness: proof trees need perfect information. If a fact is missing or noisy, the tree collapses. Machine learning has the opposite strengths and weaknesses. ML thrives in messy environments (images, speech, incomplete data), but its reasoning is often a black box. You get an answer, but not much of a “why.” ...

January 19, 2025 · Tolic Kukul

How Proof Trees Make Declarative Programming Work

Most programming feels like giving detailed instructions to a very literal assistant. You write if-else conditions, call functions in sequence, and manage state step by step. This is imperative programming — you tell the computer exactly how to solve your problem. By contrast, declarative programming is about stating what you want rather than how to do it. It’s like the difference between giving turn-by-turn directions versus simply stating your destination and letting the GPS choose the route. ...

December 22, 2024 · Tolic Kukul

Architecting for AI Agents: A New Way to Think About Software Design

What happens when you stop designing systems for developers and start designing for intelligent AI agents instead? A look into the future of software architecture.

November 12, 2024 · Tolic Kukul

Enterprise AI Architecture: Building Self-Healing, Autonomous Systems with Distributed Intelligence

As AI applications become more complex and mission-critical, we face a fundamental challenge: how do we build AI systems that are safe, reliable, and can adapt to changing requirements without human intervention? Traditional monolithic AI applications often struggle with maintainability, debugging complexity, and cascading failures when components need to evolve. This post explores a novel framework architecture that addresses these challenges through autonomous nodes, distributed intelligence, and self-healing mechanisms. Instead of relying on monolithic AI systems, this approach distributes responsibility across specialized, self-managing components that maintain their own code, adapt to changes, and recover from failures independently. ...

September 4, 2024 · Tolic Kukul

Prompt Engineering Yourself: Mental Reframing for Anxiety and Growth

We talk a lot about prompt engineering for AI, but what about prompt engineering ourselves? Our minds are constantly running on internal narratives — stories we tell ourselves about who we are, what we’re responsible for, and how the world works. What if we could rewrite these prompts? The Problem: Anxiety’s Feedback Loop Anxiety isn’t just a feeling — it’s a self-reinforcing system. We feel anxious, which changes our behavior, which creates situations that justify our anxiety, which makes us more anxious. ...

July 15, 2024 · Tolic Kukul

How AI Enables Just-in-Time Applications: The Future of Adaptive Software

The software landscape is undergoing a fundamental shift. Where we once built monolithic applications designed to handle every conceivable use case, AI is now enabling a new paradigm: just-in-time (JIT) applications that dynamically adapt, generate, and optimize themselves based on real-time context and user needs. What Are Just-in-Time Applications? Just-in-time applications represent a departure from traditional software architecture. Instead of pre-building every feature and workflow, these applications use AI to generate functionality, interfaces, and logic on-demand. Think of them as software that writes itself in response to specific situations, user requests, or environmental changes. ...

May 4, 2024 · Tolic Kukul

How to Build AI Employees That Run Parts of Your Company

You can now build AI assistants that act like employees — lawyers, marketers, accountants, and more. Here’s how to structure your business around autonomous agents using SOPs, LLMs, and automation tools.

February 21, 2024 · Tolic Kukul

From Code Writers to Solution Architects: How AI is Reshaping Software Development

The software development landscape is undergoing its most significant transformation since the shift from assembly language to high-level programming. As AI tools become increasingly sophisticated, we’re witnessing a fundamental change in how we approach building software — moving from writing detailed instructions to describing desired outcomes. The Great Paradigm Shift The traditional imperative approach required developers to think like this: Step 1: Create a loop Step 2: Check each item Step 3: Filter based on condition Step 4: Return results The emerging declarative approach looks more like: ...

October 3, 2023 · Tolics

Abstraction Is Hard: Why Wrong Abstractions Are Worse Than No Abstractions

Creating good abstractions is one of the hardest parts of software development. Here’s why getting them wrong is so expensive and how to think about them better.

September 28, 2023 · Tolic Kukul