Explore the Python Network Tester on GitHub and Docker

Building My Python Network Tester

Over the past couple of months, I’ve been tinkering with a side project: a Python Network Tester. The idea came directly from my time troubleshooting EKS and ECS solutions, where I often walked customers through a familiar set of network checks. While the tool may feel basic, it reflects the common gauntlet of tests I relied on whenever network concerns came up.

What I noticed in those scenarios was that, more often than not, the “network issue” wasn’t really the network at all. Instead, it was a misunderstanding of how networks behave—or how much application performance itself can influence perceived network performance. Sometimes, the simplest visibility into the basics is all someone needs to figure out their next step.

After plenty of tweaking, debugging, and refactoring, I’ve reached a point where I’m ready to share the project publicly.


Using AI as a Programming Partner

One thing that helped me along the way was experimenting with Amazon’s Kiro Agentic AI. I often struggle with getting projects off the ground and into the right mindset, so I leaned on Kiro to help me draft code. But I made sure to carefully read every single line it suggested. That way, I understood exactly what the code was doing, which made refactoring and debugging much easier when things didn’t behave as expected.

In short, Kiro became a surprisingly good programming buddy. Beyond code, it was especially helpful for writing comments and documentation—an area I’ve always wrestled with, unsure if I’m writing too little or too much. Having that support gave me confidence to keep the docs clear and useful.


Try It Out

If you’d like to explore the project yourself:

Feedback, recommendations, or issues are welcome—please report them in the GitHub Issues tab. I plan to keep iterating on this project to see what features make the most sense and where it can provide the most value.

Build a Python Network Troubleshooting Tool

While settling into my new job, I’ve also been tinkering with some side projects. One of them was inspired by the countless network connectivity and latency issues I used to troubleshoot as a Cloud Support Engineer.

I’ll admit — networking has always been one of my weaker areas in IT. I can get around it well enough, but shifting back into the “network mindset” is always a bit of a slog. There are so many different tests to remember, each useful for diagnosing a different type of issue.

So, just for fun, I decided to build a comprehensive network troubleshooting tool that bundles together the tests I ran most often. I chose Python for the project, partly to refresh my skills with the language.

As an extra experiment, I’ve been trying out AWS’s new IDE, Kiro, and giving “vibe coding” a spin. That said, I’m not blindly trusting whatever the GenAI assistant spits out. I’m reviewing every line of code to make sure I understand it, confirm it makes sense, and check for any security concerns.

Right now, the tool can run DNS resolution, ping, and TCP connectivity tests. You can feed it a URL or IP, specify which port to test, and set how many ping attempts to run. Since I mostly supported containerized solutions at AWS, I also built a container image so the tool can run in that environment. As a bonus, I’m bundling in the most common network testing CLI tools, so you can run one-off checks directly inside the container.

It’s still a work in progress, but I’m happy with how it’s shaping up. Once I feel confident enough, I might even push it to a public repo. And while I don’t recommend relying on “vibe coding” as a strategy, it can be handy for breaking through roadblocks. At the end of the day, though, I’d rather refactor the code myself so it works exactly the way I want.

2025, New Year, New Plans

It’s been a while. Not something I’m particularly happy about, but life doesn’t always go as planned. Our minds also have an amazing ability to complicate our lives, both intentionally and unintentionally. Over the past couple years, I’ve been working on a lot of self-discovery and self-reflections to better understand myself.

With some much needed therapy, I’ve come to better understand how my mind works. Therapy has helped explain why I keep producing all these plans about what I want to do. I start them all but never finish them. Confirmed it isn’t ADHD, but I’ve had complications in my life that have effected my executive functions. TLDR, I love to start new things and overwhelm myself to the point I’m not capable of focusing on anything. Now that I’m working on myself, it’s time to start rethinking my approaches to my own personal development.

So yeah, I have a lot of projects I’d love to work on. I need to start limiting myself and focus on fewer projects/tasks at a time. Seems obvious, but that’s now how my brain wanted to work all this time. With that, I’m going to focus on one professional and one personal goal.

My current professional goal, finally get an AWS Certified Solutions Architect Professional certificate. Going to focus on fine tuning my skills to be an AWS Solutions Architect.

My current personal goal, learn Godot and finally start making some video games as a hobby.

Additionally, I will document hurdles I come across while working on these tasks. For example, I will document learning how to setup SSH with GitHub. There is no end of online guides, and I always find myself needing to reference several guides. They all seem to miss something important. Dual intention with this, record the steps for my future reference and share them for other in case it helps. This will be a continuing goal, so it will be a long term goal.

With that, time to get started!

Getting Started with Containers

For a while now, I’ve been wanting to know and learn more about containers. Nothing like a new job that specializes in containers to jump start that process.

If anyone is wondering where a good starting point is for learning what containers are, might I recommend the Docker tutorial container getting-started.

$ docker run -d -p 80:80 docker/getting-started

This is a simple image that includes a tutorial website that takes you through the basics of using Docker. Goes through how to pull an image, build an image with code, update an image, and deploy all with using the CLI. Doesn’t really get into orchestration but does bring it up near the end. However, an added benefit in my book, it’s a fully functioning image that includes a multi-page website. Perfect for running quick container tests.

It may not be what you intend to do with a container, but it is very nice baseline. So much so, I’ve started using it to play around with the container services in AWS. Started off by deploying a copy of it to an ECR repo. From there, I’ve used it to test out different scenarios in ECS and EKS. Testing out EC2 vs Fargate instance types; testing out multiple deployments behind a load balancer; and testing a multi-container task. Perfect for helping me know I’m deploying my containers correctly and they work. I know I can build my own container and test it locally, but I haven’t gotten to that point yet.

I do have a couple of my own ideas to try testing out as well. Just need to build the images. Current plans include my Discord bot, a V Rising game server, and some of my own website builds. The bot will be interesting as I haven’t yet tested .NET Core in Linux and want to give that a try. The V Rising server is Windows only, so that will be nice experience with a Windows container. The websites will likely be Blazor/.NET Core, so Windows is a given; but Linux is an unknown. Similar to my Discord bot currently. Either way, I’ll be learning along the way.