Kyler Middleton
letsdodevops.com
Kyler Middleton
@letsdodevops.com
Cloud Security Chick | LetsDoDevOps.com | Microsoft MVP (DevOps) | AWS Community Builder x3 (AI Engineering)| Day Two DevOps Podcast Host | Former Hashi Ambassador | Open Source Zealot
New article is live! It's about how I migrated my Agentic Strands-based bot to use the new first-class MCP Tool interface that Strands just shipped.

It lets the bot register all MCPs concurrently and saves about 10 seconds on each response with lots of MCPs.

buff.ly/HVuRfSP
December 18, 2025 at 3:02 PM
Oh hey, that's pretty cool. Thanks ya'll :D <3
December 17, 2025 at 3:01 PM
Didn't make it in to #RSA this coming year. I had the best time at RSA previous years. Congratulations to all the folks that did make it in! I'll have to come up with another excuse to see everyone next year :D
December 10, 2025 at 5:01 PM
I published a new article about building an agentic Slack bot using Strands and AWS Bedrock. It walks through how the bot calls tools, retrieves data from internal systems, and returns useful results to users.
🔥Building an Enterprise Slack Bot with Agentic AI: A Complete AWS Architecture Guide🔥
aka, find outages in PagerDuty, identify changes in GitHub, find tickets in Jira, tie em all together
buff.ly
December 9, 2025 at 4:38 PM
New post: building audit logging for multi platform AI bots with Python and CloudWatch. Bedrock logs were not enough for real audit needs, so we built our own system with consistent usernames and session level correlation across Slack and Teams.

www.letsdodevops.com/p/building-a...
November 25, 2025 at 4:48 PM
New post: building audit logging for multi platform AI bots with Python and CloudWatch. Bedrock logs were not enough for real audit needs, so we built our own system with consistent usernames and session level correlation across Slack and Teams.

www.letsdodevops.com/p/building-a...
🔥Building Audit Logging for Multi-Platform AI Bots with Python, AWS Cloudwatch🔥
aka, who is actually using our bots today?
www.letsdodevops.com
November 25, 2025 at 4:46 PM
I don't sell Vera, but if I did, this is the type of feedback I'd use to do so :D

All code is public so you can deploy it yourself (for free)

buff.ly/WRCWuaR
November 20, 2025 at 3:39 PM
New post: AWS Strands + MCP, super simple real-world examples.
Strands makes agentic workflows easy — multi-step actions, tool use, and open-source.
I’m sharing small examples as I build them out.

buff.ly/cFQZ2VI
November 18, 2025 at 3:30 PM
Teaching Strands Agents to assume cross-account IAM roles and read AWS resources!
I wired the AWS Labs CLI MCP server into a Lambda-based agent so it can query across dev, staging, and prod — all with profile-based role assumption.

Want multi-account AI agents, read this.

buff.ly/kZxKLCn
November 13, 2025 at 3:30 PM
All six parts of the Let’s Do DevOps “Building a Teams AI Bot” series are now free to read.

This series walks through every step of creating a Microsoft Teams bot with real AI capabilities—from registration and OAuth, to message handling, to AWS integration with Bedrock and Lambda.
🔥Building a Teams Bot with AI Capabilities - Part 6 - Reading Teams Attachments🔥
aka, file location and permissions aren't reliable, and are critically important. Great.
buff.ly
November 4, 2025 at 4:21 PM
How are ya'll smart folks correlating the conversations agentic bots have with AI services to a particular conversation or user request? How do you do request tracing?
November 3, 2025 at 3:04 PM
You know how AI-generated photos have a yellow pallor? Attached photo for reference.

There's an idea that the models were trained on older photos that were scanned into computers, and the photos had yellowed with age.

Tech is weird.
October 30, 2025 at 3:02 PM
No one gets to tell you what you mean when you write LGTM on a PR.

I personally mean Lets Go To the Moon

What about you?
October 29, 2025 at 3:05 PM
In Part 5 of my “Building a Teams Bot with AI Capabilities” series, we dive into the fun stuff: how the bot actually reads conversations, grabs context, and posts AI-generated responses back into Teams.

Full article’s free to read, link in image

#DevOps #TeamsBot #AWS #AIIntegration #LetsDoDevOps
October 28, 2025 at 3:03 PM
If you've wondered how to REALLY use MCPs in your bots, me too. So as I've been experimenting and adding things to my Strands bot at work, I've been publishing all the code, including the MCPs which so far includes:
* Atlassian
* AWS
* Azure
* GitHub
* PagerDuty
Find it here: buff.ly/3sRrT5V
October 27, 2025 at 3:41 PM
MinIO has stopped publishing their namesake object-store docker file, now requiring customers to build from source. This, with no notice, over 1B (billion) downloads from dockerhub, and just after a critical CVE was dropped.

Have your teams check if they're using this image from dockerhub.
October 23, 2025 at 4:00 PM
Do you know who subscribes to LetsDoDevOps[.]com?

Turns out folks from:
- Amazon
- Intel
- Hashicorp
- Boeing
- GitHub
- SAP
- Fortinet
- Sandia National Laboratories
- ZScaler
- Anduril

Please go subscribe, there's a free tier (but paid helps me buy caffeine to keep generating the content haha)
October 22, 2025 at 2:31 PM
When you interact with Bedrock services, your logs get put into a cloudwatch log group. That sounds great, right? Except ALL bot interactions get put into the SAME log group, making differentiating all those logs a pain.

FireHose can solve this with some custom lambda. Link in the image :D
October 21, 2025 at 2:04 PM
Strands has now released my change, which permits Strands bots to utilize the github MCP to read file contents in your repos. Please upgrade to version v1.12.0+ to get the functionality :D

#Strands #GitHub #AI
October 20, 2025 at 2:05 PM
A coworker just said "... since we're in Q4 of the year" and I am still shocked and offended by this language.
October 14, 2025 at 2:03 PM
Strands, for everyone in the world, will be able to read the contents of GitHub files next week when they publish the new version of the Strands agent.

I'm proud of this change. Will be published next week to pypi!
Add EmbeddedResource support to mcp (read GitHub file contents blocker) by KyMidd · Pull Request #726 · strands-agents/sdk-python
Description Hey team! Utilizing strands locally to connect to (remote github MCP), and saw that it was unable to download particular files using github MCP tool get_file_contents. When I'd at...
buff.ly
October 13, 2025 at 2:03 PM
I had a lovely time, #TechFutures. Met some wonderful people, made a room laugh at my AI jokes, and helped a small room of folks deploy a genAI bot into their slack. It's been a pretty good time.
October 10, 2025 at 2:31 PM
Hey all!

Parts 3 and 4 of the Teams AI Bot series on Let’s Do DevOps are now FREE FOREVER!

Part 3: Building the Teams Bot AI Backend - buff.ly/hXo4RHJ
Part 4: Deploying Your Serverless AI Bot - buff.ly/tAai7SN

Subscribe to support more articles <3
🔥Building a Teams Bot with AI Capabilities - Part 3 - Delegated Permissions and Making Lambda Stateful for Oauth2🔥
aka, "do you remember me?"
buff.ly
October 8, 2025 at 2:01 PM
If you're in NY this week for Tech Futures conference, let me know! I'm teaching a workshop where folks will leave with a functional private AI bot!
October 7, 2025 at 2:03 PM
When you invoke an AI model in Bedrock, it writes the conversation to a single CloudTrail log group. Disambiguating the logs is left as homework for the admins (read: It work bad.).

I implemented a firehose to harvest cloudtrail logs, extract the information we care about in Splunk events.
October 2, 2025 at 2:05 PM