It’s been more than 15 years doing IT by now and today I got a great question. What’s the thing you’ve done that you’re the most proud of. It’s a quite standard question, but it’s been such a long time since I considered such things. I couldn’t really find a good answer. I started searching for things that I’ve done in my most recent positions, but honestly that’s mostly been about iterating on products. After thinking for a while I’ve come up with some things though.
More Useful Shortcuts
There’s always more to learn and especially with coding your IDE is like an infinite swiss army knife. Recently I’ve found the shortcut
F2 to jump to the next compile error useful. It saves you a lot of clicking when you’re doing refactoring to jump to, and to be able to correct, all of the errors that happen because of the changes that you are doing.
Unit Tests as a Limitation
I believe it was Uncle Bob that in a beautiful take on explaining the paradigms of Procedural, ObjectOriented and Functional Programming explained that these paradigms are defined not by things they add but by the things they forbid. Without any paradigm you are free to solve your software problems by filling your code with
GOTO statements. It’s the paradigms you chose to follow that add the desirable limitations that prevent you.
Pod Specific Request in Kubernetes
Usually when you want to send a request to a service in kubernetes you use a
Service resource. This resource has a name that is registered in the DNS and makes sure to forward your request to an appropriate pod based on a selector. Sometimes you might want to send a request to a specific pod though. In my case I want to do it because the data I want to download is quite big and it’s being saved in a distributed cache. It’s fully possible for the distributed cache to stream the data through whatever pod you are sending your request to, but it’s more efficient if you are able to send a request directly to a pod that already has the data.
Nikhil Basu Trivedi writes an article where he argues that the future may well see power of decisions move from Venture Capital firms to employees. He starts his post by highlighting a tweet made by Jack Altman that states that more power moving to employees is a natural continuation of a current trend that can already be seen where power is moving from Venture Capital to founders.
Shortcuts of the Day
One aspect of working as a professional programmer that I think sometimes is overlooked is being proficient with your tools. Because our work is so focused on thinking it’s easy to miss that intermixed with all of this thinking you also perform typing and browsing of the code. Optimizing this, more practical, aspect of the work not only saves you time, it primarily saves you mental energy for the thinking part. That’s why I think it’s worth while for anyone that is or want to be a professional programmer to learn touch typing and to invest time and effort in learning shortcuts for whatever IDE you hppen to be using. It’s not a one of effort, it’s a continuous process where it makes sense to learn and integrate new tools that become available into your workflow.
Embedded Infinispan in Quarkus
Embedding the infinispan cache into your service is a cool idea. Instead of having to rely on a managed external service you can create your own in memory grid by using the infinispan library. Now the embedded cache used to be supported by Quarkus, but at some point they dropped the support. The artifact used to be called
quarkus-infinispan-embedded but it got the boot somewhere around mid 2020.
Kotlin Annotation Processing
When Kotlin was created it had the advantage compared to Java that it didn’t need to support all of the legacy syntax. This advantage, I believe, enabled the developers to bake in necessary modern features into the language directly instead of how it’s been done in Java a lot, with annotations and black magic. For this reason Kotlin has had less need for annotations than Java, it’s an efficient language already.
The Funny World of Python
map functions or
reduce functions. Coming into
Python I was expecting simple functions to handle these kind of features, but I found the way these things were handled unintuitive and clunky.