Pres Mihaylov's Avatar

Pres Mihaylov

@pmihaylov.bsky.social

eng at Plain, ex-Uber, building stuff with AI and claude code The stuff: - http://claudecontrol.com - http://tinyurl.com/ai-eng-with-go - http://vibegest.com

11 Followers  |  14 Following  |  129 Posts  |  Joined: 24.07.2023  |  1.9728

Latest posts by pmihaylov.bsky.social on Bluesky

That's definitely true, but also in the other direction!

A simple AI agent is often better than an overengineered SaaS. :)

24.10.2025 06:48 — šŸ‘ 1    šŸ” 0    šŸ’¬ 1    šŸ“Œ 0

Perhaps it needs some more work on the tooling and data access for the agent but it looks like some problems are still best solved by traditional SaaS.

21.10.2025 15:59 — šŸ‘ 1    šŸ” 0    šŸ’¬ 2    šŸ“Œ 0

I tried rebuilding Vibe Jest to be fully agentic, driven by Claude Code instead of any code at all. So far, I haven't had any luck in making it perform well. I managed to get it to a point where it can send me a newsletter email, but the data it curated is not good at all.

21.10.2025 15:59 — šŸ‘ 0    šŸ” 0    šŸ’¬ 1    šŸ“Œ 0

I'm really excited about the new Claude Skills release because it is a significant UX improvement in how agents are built. Suddenly, anyone who can speak English can build an agent. No coding required.

In fact, you can speak to your agent and let it build itself.

21.10.2025 14:59 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0
Post image

I stumbled upon a surprisingly good productivity hack. I set up an agent to run on a cron job, pick Linear tickets at random, and generate a PR for me while I sleep. In the morning, I review it and merge.

AI is literally writing code for me while I sleep

21.10.2025 13:56 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0

I had to do some evals on an AI agent I built, and turns out Claude Code is very good at running evals. I just told it to run itself with a prompt continuously, find any bugs or issues in the underlying tools which is preventing the agent from performing well, and fix them.

20.10.2025 15:57 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0

I've been playing with building AI agents off of various APIs.

What I found is that GraphQL performs significantly better than REST because GraphQL allows you to return the normalised data, whereas REST typically returns IDs and you need to enrich them separately.

20.10.2025 15:02 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0

Skills are way more effective than MCP tools because they don't bloat the agent's memory. They are persisted and loaded on demand and it seems Claude is fine-tuned to be very aware of them.

20.10.2025 13:57 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0
Post image

Claude skills made MCP obsolete for me. I was able to build a Linear project manager skill in ~10min by asking claude to browse their docs + claude skills docs and build a new skill for itself.

I no longer need to use the Linear MCP for that.

20.10.2025 13:57 — šŸ‘ 0    šŸ” 0    šŸ’¬ 1    šŸ“Œ 0
Post image

I just deployed a claude control agent on my server and it can now serve as my devops agent - anytime I need something done on my server, I can just ask it via Slack.

Eg here I wanted to stop a specific docker container for a couple mins and I didn't have to ssh to do it!

13.10.2025 14:03 — šŸ‘ 1    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0
Post image

Today I asked Claude Control to analyse the system I've deployed and summarise what it does. I couldn't have said it better

13.10.2025 12:56 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0
Post image

Maintaining docs is tedious and keeping CLAUDE md up to date is part of that. However, this is critical so your coding agent can improve over time for you and your whole team.

Fortunately, this is trivial to do when you can instruct claude to self-document its mistakes.

10.10.2025 13:03 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0
Post image

Small tip to ensure your claude kicks off a task with the right context - ask it to study the changes you're building on top of and ask it to summarise them for you.

It forces it to gather the necessary context to pick off from where it left off without too much context rot.

09.10.2025 16:04 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0
Post image

Claude Code has released a bunch of new features recently, but the one I'm most excited about is the ability to selectively enable/disable MCP servers.

This is a Big Deal because it enables you to have many MCP tools at stand-by without polluting your context

09.10.2025 15:00 — šŸ‘ 1    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0
Video thumbnail

Quick tip for all the vim nerds using claude code - Press Ctrl+G to write the prompt in vim!

09.10.2025 14:00 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0
Socket.IO

In a nutshell, web sockets are hard. Even after using something like socket.io which automates a lot of the lifecycle management. There were times where I was considering just re-writing everything to use an HTTP API and polling for jobs.

But very happy with where I landed eventually!

09.10.2025 13:01 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0

- I modified the backend to not unassign any jobs when an agent disconnects. Instead, jobs like that will temporarily stay in the database and a background job will periodically check if they've been stale for too long, at which point they're cleaned up.

09.10.2025 13:01 — šŸ‘ 0    šŸ” 0    šŸ’¬ 1    šŸ“Œ 0

- I added a persistent identifier for the agent so that the backend can re-identify the agent for a job even after server restarts. It's passed as a header upon establishing the web socket connection.

09.10.2025 13:01 — šŸ‘ 0    šŸ” 0    šŸ’¬ 1    šŸ“Œ 0
Socket.IO

- I added backoff and retry mechanisms for the socket.io client on the agent to re-establish the connection in case it tears down. Turns out the out of the box "reconnectAutomatically" option doesn't work well on the Go SDK so had to roll up my sleeves and ship my own reconnection flow.

09.10.2025 13:01 — šŸ‘ 0    šŸ” 0    šŸ’¬ 1    šŸ“Œ 0

- I made a sidecar container responsible for refreshing auth tokens and dynamically updating the ccagent's environment.

Also added some code to dynamically fetch the environment periodically from within the running app because the env is hardcoded at startup, despite it changing on the outside!

09.10.2025 13:01 — šŸ‘ 0    šŸ” 0    šŸ’¬ 1    šŸ“Œ 0
Post image

Claude Control is now far more reliable than it used to be - it can continue an ongoing session more than 24h since it started.

Making this work was surprisingly challenging!

09.10.2025 13:01 — šŸ‘ 0    šŸ” 0    šŸ’¬ 1    šŸ“Œ 0

Checking in all your claude artifacts like CLAUDE md, subagents, etc into the repo turned out to not just help me because claude can reuse these tools out of the box.

Turns out it helped a random contributor make a meaningful change from scratch without any setup!

08.10.2025 16:03 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0
Post image

When I'm coding manually, I like to name my variables in a bit more cryptic way as a human watermark so they all know a human was here

08.10.2025 15:01 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0

Today I had to deal with a very nasty, intricate bug which required manual coding and intervention.

This happens quite rarely with claude code these days as most of the mundane work I've automated, which leaves my attention for these more challenging tasks instead.

08.10.2025 13:56 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0
Post image

Very cool quality of life improvement for Claude Control I recently shipped - the agent is now made quite reliable to the point where it can continue working on a job even 24h later!

08.10.2025 13:04 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0
Post image

Quick quality of life improvement for Claude Control - you can now start new jobs off of finished ones in the middle of a slack/discord thread šŸ‘Œ

06.10.2025 16:04 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0

Looks like Anthropic starts counting the 5h window when you first use claude vs it being a constant fixed & rolling window.

So a tip to maximise usage is to trigger something quick like "hey Claude" the moment you wake up so the clock starts ticking during your morning downtime

06.10.2025 15:02 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0

This is my usage and I managed to squeeze in a final background job.
I doubt I was lucky to hit the 100% mark just in time.

06.10.2025 13:58 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0
Post image

One really nice thing about how Anthropic handles usage is that it doesn't cut you off halfway through a running session. This is great when you run background agents which are long-running by design.

06.10.2025 13:58 — šŸ‘ 0    šŸ” 0    šŸ’¬ 1    šŸ“Œ 0
Post image

You can now deploy multiple claude code containers, effectively enabling you to have different repos routed to different discord/slack channels.

Now I have one channel for claudecontrol repo and one for ccagent

06.10.2025 13:01 — šŸ‘ 0    šŸ” 0    šŸ’¬ 0    šŸ“Œ 0

@pmihaylov is following 13 prominent accounts