Komodor is a Kubernetes management platform that empowers everyone from Platform engineers to Developers to stop firefighting, simplify operations and proactively improve the health of their workloads and infrastructure.
Proactively detect & remediate issues in your clusters & workloads.
Easily operate & manage K8s clusters at scale.
Reduce costs without compromising on performance.
Empower developers with self-service K8s troubleshooting.
Simplify and accelerate K8s migration for everyone.
Fix things fast with AI-powered root cause analysis.
Explore our K8s guides, e-books and webinars.
Learn about K8s trends & best practices from our experts.
Listen to K8s adoption stories from seasoned industry veterans.
The missing UI for Helm – a simplified way of working with Helm.
Visualize Crossplane resources and speed up troubleshooting.
Validate, clean & secure your K8s YAMLs.
Navigate the community-driven K8s ecosystem map.
Kubernetes 101: A comprehensive guide
Expert tips for debugging Kubernetes
Tools and best practices
Kubernetes monitoring best practices
Understand Kubernetes & Container exit codes in simple terms
Exploring the building blocks of Kubernetes
Cost factors, challenges and solutions
Kubectl commands at your fingertips
Understanding K8s versions & getting the latest version
Rancher overview, tutorial and alternatives
Kubernetes management tools: Lens vs alternatives
Troubleshooting and fixing 5xx server errors
Solving common Git errors and issues
Who we are, and our promise for the future of K8s.
Have a question for us? Write us.
Come aboard the K8s ship – we’re hiring!
Hear’s what they’re saying about Komodor in the news.
As software developers, we always want to improve ourselves continuously. It can be through writing cleaner and more efficient code, using new design patterns, expanding our stack, or deep-diving into a specific technology.
We strive to improve; we’re encouraged to do post-mortems with action items and to keep asking what went right and what went wrong. We’re also encouraged to have sprint retros so we’ll do better next time. We always ask for feedback, either through code reviews or as part of a 1:1 with our team lead.
If you feel like you’ve reached a plateau, and you’re not learning anything new sprint over sprint, you should take a proactive approach and do a post-mortem on yourself (sorry for the grim analogy)! Meaning, find your weak spots and optimizing where possible to deliver more value faster.
What I want to focus on in this article is dev velocity and efficiency – two areas where any developer can always improve. When I say velocity I am not only talking about your speed of typing (but if you really want to, you’re welcome to see how you measure on a typing speed test) but rather the speed at which you push new code to prod and the amount of time it takes to debug.
Before jumping into my methods I want to emphasize that the main guideline that should be your northern star is – to use anything that makes you faster! Even if it is not “mainstream” or considered “noob-like”.
For example, most developers only use Git CLI and are hesitant to use the Git UI out of fear of being labeled as “unprofessional”. I can say with confidence that for many use cases, the UI is much faster than using the CLI.
How come? I’m glad you asked! When commenting only on specific files/lines, resolving conflicts, viewing the changes, and cherry-picking, I combine both UI and CLI. For each scenario, I ask myself – What’s faster right now?
There are great Git tools such as GitKraken, Sourcetree, and my personal favorite – GitHub Desktop. Using them interchangeably makes my life easier and my work much more efficient.
So, what else can be done to improve your velocity? Keep reading.
It sounds like a cliche out of a corporate motivational poster, but many devs start writing the code before they solved the problem.
Many times we jump right into the technical nitty-gritty, despite the fact that most of the time, all we need is a simple solution. Every great architect’s design is very complex in the beginning and has many moving parts until the architect gets a design review. After the review, the architect shrinks to only necessary, simple, and small bits of components.
We are also masters of doing the unnecessary. A great example of that is the congestion of E2E tests. E2E tests are very expensive to write and maintain, while for most use cases a simple unit/component/integration test would provide the same value, and in other cases, it’s completely redundant.
Devs can act like a Roomba sometimes – getting stuck in front of a rug, instead of going around it. In our world, this is akin to finding a bug and immediately jumping on it, relentlessly trying to round the square.
Over the years Roomba’s tech improved drastically. Don’t be like a 2003 model that keeps crashing into the wall repeatedly. Become a 2030 model that knows how to see the full picture, adapt, improvise, and get things done in the most efficient manner.
Devs tend to start coding before they think. As I said earlier, we’re eager to tackle the problem. However, it should be the other way around! Before you start anything, try to take 5 minutes in order to sketch a few diagrams of what you are planning to do. I promise you that those 5 minutes will pay off many times over. If the thinking process is accurate – it will lead to minimal and quick solutions, as well as faster error detection.
Picture a chess grandmaster. They can draw a mental image of the board for the next 30 steps, and take their next step based on that image. If we become more like professional chess players we could predict deadlocks, race conditions, wasted code, and much more.
IDEs and tools differ from developer to developer, even within the same team. But remember – Do whatever makes you faster! Always try to explore new tools, maybe they are better for you and can save you precious time. On the other hand, try to avoid redundant tools and disruptions. Now that you’ve compiled your ideal toolbox it’s time to master them. And by that, I mean that you should know all of their:
Furthermore, you need to master your local environment. From my experience, developers spend a lot of time troubleshooting their local env and can get frustrated very quickly. You should feel comfortable within your own castle when you’re able to:
As developers, we need to aim to keep our hands off the mouse but never off the keyboard. And when we’re on the keyboard we must know the shortest way to go from A to B. Go from the beginning of the line to the end, from the browser to the terminal, from taking a screenshot and sending it to your colleagues over Slack.
What shortcuts should you learn? Learning shortcuts is a never-ending race, there is basically a shortcut for anything, so where to stop? The answer is simple, if your hands are mostly on the keyboard it’s a sign you have room for improvement.
There are 3 main areas where knowing shortcuts pays off the most:
Whenever I switch to a new IDE I follow the following steps:
All of that shouldn’t take me more than a few minutes to do, and I’ll earn back that time every day from now on.
Every day we do repetitive tasks. Sometimes, you’re basically running a manual playbook. We use Git repetitively, our IDEs, terminal, files manager, OS, and so on. I encourage you to add aliases and shortcuts to your terminal. Each alias is supposed to be 1-6 letters max.
Common alias I would add:
My favorite alias is (open pull request for a single commit):
gpp='f() { ga . && gc -m $1 && gpsup && sleep 1 && gh pr create --fill };f'
It relies on you to download the GitHub CLI tool (gh) and configure it, to be able to add other aliases:
ga='git add' gc='git commit' gpsup='git push --set-upstream origin $(git_current_branch)'
gpp "Do all the work for me"
The vast majority of applications we spend our time on are in the IDE, terminal, or browser so this is why it is so important to optimize our work in all of them.
One important thing to note is to configure your IDE debugger properly. Many times devs tend to get lazy and only print logs. I agree that on-session debugging will be effective, but not in many other cases.
I recommend searching the internet for the extensions that best suit your needs. Here are the extensions that I’m using:
VScode:
Zsh ( zsh allow you to put extensions, I also recommend using iTerm as your terminal of choice)
You’ve probably heard of, and already used ChatGPT or something similar. I was really skeptical at first about how much AI tools will actually help me. One such tool that I liked a lot is GitHub Co-Pilot. The reason I love it is that it doesn’t force me to do anything rather than press the TAB button. Very easy to install and doesn’t cost too much. I am sure that your manager will approve the budget for it (my manager was the one who introduced me to the tool!) I found it extremely useful for tests, naming, boilerplates, short functions, etc.
Share:
How useful was this post?
Click on a star to rate it!
Average rating 5 / 5. Vote count: 6
No votes so far! Be the first to rate this post.
and start using Komodor in seconds!