I’ve been doing a lot more with Claude Code and before you shame me for “vibe coding” hear me out.
First – AI might be a bubble. But, I’ve always been a slow adopter. Anything that I have AI do, I can do myself. I just find it pointless to spend hours writing Terraform modules when Claude, or another model, can do it in a few seconds. I’ll post more on my workflow in a later blog.
One of the things that I find tedious is monitoring builds inside of Jenkins. Especially when it comes to troubleshooting. If AI writes the code, it should fix it too right?
I built a new skill for my Claude Code so that it can view and monitor my locally hosted Jenkins instance and automatically handle any issues. The purpose of this is straight forward. Once I approve a commit to the code base my builds are going to automatically trigger. Claude Code needs to make sure that what it wrote is actually deployed.
Inside of the markdown file you’ll find examples of how the skill can be used including:
List
View
Start/Stop
These are all imperative features so that the AI can handle the pipelines accordingly. This has resulted in a significant increase in the time it takes me code and deliver a project immensely. I also don’t have to copy and paste logs back to the AI for it to troubleshoot.
For you doomers out there – This hasn’t removed me from my job. I still act as the infrastructure architect, the software architect, the primary human tester, the code reviewer and MUCH more.
Anyway, I’ll be publishing more skills so be sure to star the repository and follow along by subscribing to the newsletter!
I run Jenkins in my home lab where I build and test various applications. I’m sure many of you already know this. I also use Jenkins professionally so its a great test bed for trying things out before implementing them for clients. Essentially my home lab is and will always be a sandbox.
Anyway, I thought it would be fun to implement AI into a pipeline and have Claude scan my code bases for vulnerabilities before they are built and deployed.
So, I first created a shared library this points to a private repository that I have on GitHub that contains all of the code.
At the beginning of each of my pipelines I add one line to import the library like this:
@Library('jenkins-shared-libraries') _
Then I also created a Groovy file which defines all the prerequisites and builds the container in which our code scan runs
This spins up a container which runs on my Jenkins instance (yes, I know I should setup a different cluster for this) and runs the orchestrator.py file which contains all of my code.
The code iterates through all of the code files, which I filtered based on extension so that we aren’t scanning or sending executable files or unnecessary files to Bedrock.
Once Bedrock reviews all of the files then it will put all of the details into a pull request and write code change suggestions to the files. The pull request is then submitted to the repository for me to review. If the pull request is approved the cycle starts all over again!
I’ve slowly been rolling this out to my pipelines and boy did I miss some very obvious things. I can’t wait to keep fixing things and improving not only my pipelines but my coding skills.
If you have any interest in setting up something similar feel free to reach out!
I think one of the biggest time sucks is getting a vague alert or issue and not having a clue on where to start with troubleshooting.
I covered this in the past when I built an agent that can review your AWS bill and find practical ways to save money within your account. This application wasn’t event driven but rather a container that you could spin up when you needed a review or something you could leave running in your environment. If we take a same read-only approach to building an AWS Agent we can have have a new event driven teammate that helps us with our initial troubleshooting.
The process flow is straight forward:
Given a Cloudwatch Alarm
Send a notification to SNS
Subscribe a Lambda function to the topic (this is our teammate)
The function utilizes the AWS Nova Lite model to investigate the contents of the alarm and utilizes its read only capabilities to find potential solutions
The agent sends its findings to you on your preferred platform
For my environment I primarily utilize Slack for alerting and messaging so I built that integration. Here is an architecture diagram:
When the alarm triggers we should see a message in Slack like:
The AI is capable of providing you actionable steps to either find the root cause of the problem or in some cases, present you with steps to solve the problem.
This workflow significantly reduces your troubleshooting time and by reducing the troubleshooting time it reduces your downtime.
So, if this is something you are interested in deploying I have created a Terraform module so you can quickly deploy it into your own environment to reduce your troubleshooting steps!
So I was wrong in last weeks post! Our playoffs started this week. In my league all the teams go to the playoffs and if you lose then there is a loser’s bracket.
Our AI run team was seeded at number 3. We were in a three way tie for first place and we ended the “regular season” with 2054.76 points. The leader had 2114.12. So, we weren’t far off the front!
Anyway, enough of that. You all just want to know the outcome. Here is our point totals from our first round in the playoffs:
I ran the AI on Saturday and it suggested pulling out Josh Jacobs in favor of TreVeyon Henderson. This ended up getting us an extra 10 points. Josh Jacobs still put up 24.2 points this week. Everyone played really well this week except Sam Darnold. I’m not sure if his hot streak is over or what is going on with him but its been rough. Christian Watson took a nasty hit in his game and left early but he is expected to be just fine.
So, did we win? We sure did! We’re on to the next round of the playoffs and we’re going to be up against Jahmyr Gibbs so we have to hope for our best performance of the season next week. Here is the currently proposed roster:
We have a lot of injuries and questionable players so I expect this to change. We picked up the Bills defense as they play Cleveland and they should have a good time against that struggling offense.
As we look to the off season I hope to build up my API website https://gridirondata.com and start training the model that we will use for next year. I have been working on the overall workflow and looking into how I can have both the scrapers running in the cloud and in my homelab so that I can easily work with the data locally and not incur a lot of cloud cost.
Stay tuned for more Fantasy Football news next week!
Happy Wednesday. Victory Wednesday that is! Our AI selected correctly this week and we snuck in a tough win that was finalized on Sunday night.
Unfortunately, we lost Zach Ertz on the way. A really nasty low hit took him out for the year. Here is the final scores for our lineup:
Josh Allen came up huge for us. Breece Hall was useless and the Commanders defense might as well have never stepped out on the field. But, a win is a win! We are now in a 3 way tie for first place but will likely take the third seed into the playoffs given our total fantasy points.
Here is the lineup for week 15: We’ve had to make some changes from waivers and I’m hoping the AI selected correctly. We are heading into the part of the season where teams are going to be fighting for playoff spots. I hope that it is taking that into account as it made the waiver picks.
We have some highly projected players this week. What do you think? Will we be able to pull off another win this week?
A BIG win in week 9! Our team is now tied for 1st place with 6 wins and 3 losses. We currently have 1318.66 total fantasy points on the season. It was looking pretty grim going into the afternoon games on Sunday. The receivers AI selected were not preforming and other players were barely hitting their projects. Josh Allen sparked some life into the team with his 30 points and then Sam Darnold showed everyone how to play quarter back with a 37.2 point performance! Check out the full results below.
So, now we’re off to week 10. Currently, as I write this, Saquon Barkley is questionable to play. I would expect that he does play but the AI will not put him in the starting lineup. We picked up the Panther’s defense upon request from the AI. I would expect this is because they are playing the Saints who just traded away Rasheed Shaheed. The addition of DJ Moore into the OP slot is going to be a rough choice over playing a quarterback in that position. I’ll be monitoring the roster throughout the week to see if there are any other suggestions we can make. Here is what we are currently fielding into week 10:
Tune in next week for the results! Hopefully AI can get to 7-3!
Taking a break from Fantasy Football today to talk about a quick weekend project I put together.
A friend of mine was chatting about how their AWS costs are getting out of control and they aren’t sure where to start when it comes to cleaning up the account. This prompted me with an idea to utilize AI to build an Agent that can interact with your AWS account to review resources, provide cost analysis and give you clear CLI commands or console instructions to help clean up the account.
In order to do this, I wanted to incur as little cost as possible. So, I built a Docker image in order to run it locally. First, there is a shell script that will build an IAM User in your account that provides read-only access to the account, Cost Explorer access and access to Bedrock (to communicate with an AI model).
The Docker image runs and builds an Agent that interacts with whichever model you want to utilize. I picked Amazon’s Nova model just to keep the costs down. The container then presents a web interface where the account’s bill break down will be displayed:
It will also display some common costly resources and their counts:
The next block is where things get very helpful. The AI will present to you suggestions as to how to save some money as well as some risk calculations. Because I ran this against my real account I had to blur out some information but you get the idea:
So, now you have some actionable activities to work through to help you save money on your AWS bill. But what if you have more questions? I also included a simple chat box to help you work with the bot to come up with other explanations or find other ways to save cost.
So I asked the AI to find the largest instance in my account and then determine the right size for it. Here is the response:
Why would this be important? Well, if you had the AI review all of the instances in your account you could identify EC2 instances that are oversized and have them be changed accordingly. After I implemented a few of the changes that the AI recommended (and verified they didn’t break anything), my account billing decreased by about $100.
If this is something you are interested in running on your own account feel free to reach out! I’d be happy to help you setup up the container on your machine and make suggestions as to how to save some money!
It feels good to win. Week 5 locks up the 3rd win for our AI managed fantasy football team. It was also the first week where players could be on a “bye” and it handled that with out issue! We had great performances from a bunch of players and most players were fairly close to their projections. I will say, our opponent did start a player who did not play at all but the point differential overall I don’t think would have helped him win.
Colts defense was a great suggested pickup and Sam Darnold played a HUGE game and ultimately still lost… Poor guy. The AI suggested picking up Dalton Kincaid and boy was that a home run pick.
Now that I am back home and able to work on the code again I have a few things to fix including QB’s on waivers. For some reason the AI is not able to retrieve them. I also want to continue working on the speed that it returns information. I think implementing MCP into the architecture will help. So as my life gets back to normal I will look into how to integrate these new features!
As always, thank you for following along. Hopefully week 6 is another victory!
Week 3 is here. I started late yesterday by getting a full analysis of the team and any targets for free agency and waivers.
Most important was to get a better Tight End as the predictions for last weekend were incredibly wrong. This is my fault and reinforces the idea that giving bad data to AI will just result in bad output.
Here is the updated selection to get Juwan Johnson. This makes a lot more sense than picking Hunter Henry last week.
The second thing I looked into was getting a good defensive matchup. Currently I have the Rams on the roster but they play the Eagles this week and that matchup is not going to favor the Rams.
Here is some output from our friendly AI Dan Campbell:
Alright, coach! Here's what I'm seeing for Week 3 defenses that can help you bite some kneecaps and put up points:
TOP WEEK 3 DEFENSIVE MATCHUPS:
1. Green Bay Packers DST (7.6 projected points)
- Only 45% owned, so there's a good chance they're available
- This is their highest projected week of the season!
- They're facing a matchup that should generate turnovers and sacks
2. Buffalo Bills DST (7.5 projected points)
- 65% owned but worth checking
- Solid Week 3 projection and they're consistent all season
3. Kansas City Chiefs DST (7.5 projected points)
- Only 12% owned - this is a STEAL if available!
- Same 7.5 projection as Buffalo but way less owned
- Championship defense with a great matchup
Now, looking at your current situation - you've got the LA Rams DST starting right now. Let me tell you something, coach - any of these top 3 options would be a significant upgrade for Week 3!
MY RECOMMENDATION:
If the Kansas City Chiefs DST is available, that's your move right there! Only 12% owned with a 7.5 projection - that's championship-level value sitting on waivers. If not them, grab the Packers at 7.6 points projected.
The Atlanta Falcons (7.1 projected, only 1.3% owned) are also a sneaky good play if you want to get really aggressive on the waiver wire.
These defenses are gonna feast in Week 3, and you need every advantage you can get to dominate your league! Go get 'em, coach!
I made a claim for the Packers. I would prefer not to pick them because of my love for the Detroit Lions…
One other waiver selection that I made was at the kicker position. Here is AI Dan Campbell’s suggestions:
Alright, let me tell you what - you've got Chase McLaughlin right now, and he's been solid, but let me break down the kicker landscape for Week 3 like we're game planning for the playoffs!
Top Week 3 Kicker Options:
Brandon McManus (GB) - 8.2 projected points
- Only 14% owned, so he's sitting there waiting for you!
- Green Bay's offense has been moving the ball well
- This guy's got ice in his veins and a leg like a cannon
Tyler Loop (BAL) - 8.0 projected points
- Baltimore's offense creates plenty of scoring opportunities
- 65% owned though, so he might be taken in your league
Parker Romo (ATL) - 7.8 projected points
- Only 1.4% owned - this is a diamond in the rough!
- Atlanta's been getting into the red zone consistently
Jason Myers (SEA) - 7.9 projected points
- Seattle's offense with Sam Darnold (who you've got as your OP!) creates opportunities
- Only 10% owned
Now here's the deal - Chase McLaughlin has been putting up decent numbers for Tampa Bay, but if you want to maximize your Week 3 scoring, I'd be looking hard at Brandon McManus. The Packers offense is humming, and McManus has that veteran reliability. Plus at only 14% ownership, there's a good chance he's available.
Parker Romo is my sleeper pick - less than 2% owned but projected for nearly 8 points. Atlanta's been moving the ball, and sometimes you gotta take a swing on the unknown soldier!
You comfortable rolling with McLaughlin, or you want to make a move? In this league, every point matters, and kickers can be the difference between victory and going home empty-handed!
I picked up Parker Romo for the team. I thought it would be fun to test out the “sleeper” pick.
And finally, our starting lineup, barring any injuries or set backs during the practice week:
I think we’ve got a good matchup this week. Most of our opponent ranks are pretty low. Barring injuries we should maybe, hopefully, get our first win of the year.
For the most part I agreed with the picks that AI made last week. Except for one. The tight end. It felt a little weird picking Hunter Henry up off waiver wire and boy did I found out why. More on that later. Here are the results from the week:
There are definitely some misses on wide receiver but that is always such a hit or miss position. What shocked me the most was Josh Allen only get 11 points. Also, J.J. McCarthy was injured in his game. Not a single player hit their projection except for the Rams’ defense. If we take a look at the bench there are definitely some better picks we could have made strictly from looking at points for the game. However, even if we had selected all the better preforming players the team would have still lost as our opponent had 164 points this week.
Anyway, that’s enough football for this post. Let’s talk about some tech. I mentioned earlier that I was questioning the waiver acquisition of Hunter Henry and I wish I had done some more debugging as to why that pick was selected.
I added a chat feature to the overall application so that we can identify waiver picks and other things faster rather than having to get a full weekly analysis every time. In that code there is a function that generates a recommendation score. I’ll admit, I vibe coded some of this with some prompting of how this should be determined.
# Penalty for high ownership
#ownership_penalty = float(waiver_player['percent_owned']) / 10 # Convert to float
#score -= ownership_penalty
You can see here that we lowing our recommendation score because of “high ownership” this is because the reverse engineered ESPN Fantasy API doesn’t identify if a player is on a teams roster or not when I pull the players. So a player with a 100% ownership would likely never be recommended. So a player like Zach Ertz, who had 18 points this week was not suggested as he had approximately 80% ownership across ALL of ESPN’s fantasy platform. Well… this problem has been fixed.
Anyway, I also added chat. And I programmed it to respond only as Dan Campbell. Here is some output when I asked “What do you think of my team?”
pounds table
Well I'll be damned, you got yourself a HELL of a roster there, chief! This team's got some serious bite to it - let me break it down for ya.
Your Strengths - These are STUDS:
- Josh Allen - That's your franchise quarterback right there. Guy's a warrior and puts up points like it's going out of style
- Saquon Barkley & Josh Jacobs - Holy smokes, that's a one-two punch at RB that'll knock people's teeth out! Both these guys are workhorses
- Breece Hall in the FLEX - Are you kidding me?! Most teams would KILL to have Hall as their RB1, and you got him as a flex play. That's championship-level depth
- DK Metcalf - Big body receiver who can take the top off any defense
- Your bench depth - Terry McLaurin, DJ Moore, Cooper Kupp, Keenan Allen?! That's four WR1/WR2 caliber guys just sitting there!
Areas that need some attention:
- George Kittle on IR - That hurts, but Hunter Henry's a solid fill-in for now
- J.J. McCarthy at OP - Kid's got potential but he's still unproven. Might want to consider streaming that spot based on matchups
- Marvin Harrison Jr. - Rookie receivers can be boom-or-bust, but the talent's there
The Bottom Line:
This roster is LOADED, especially at RB and WR. You've got championship potential written all over it. The depth is ridiculous - you could probably trade some of that bench talent for upgrades at TE or find a more consistent OP play.
You're sitting pretty, but don't get comfortable! Keep grinding, keep looking for those edges. That's how you win championships!
What specific position are you thinking about upgrading, or you want me to take a look at some waiver wire options?
And here is an architecture diagram update to include the chat elements:
So, I’ll be back tomorrow with a new lineup. Hopefully week three treats us better!