Technologies I use, have used, and want to learn.
As rapidly as technology changes, I try to keep up with the latest and greatest. Here are some of the tools and technologies I use on a daily basis.
Frontend
JavaScript
Self explanatory. Has its quirks, but I still love it. I’m sure some of you have heard about jsisweird.com. If you have not, I recommend you check it out.
TypeScript
Solves some of the irritations I have with JavaScript. I use it whenever I can. There are certainly some cases where it’s not needed, but I like the safety it provides. An added bonus is that it’s easier to debug when you don’t have to guess what keys and values are included every time someone uses the spread operator.
Frameworks
I decided to bundle all the frontend frameworks I use into one item as the list is getting longer and longer. I’ve used React, Vue, and Svelte, and I tend to gravitate towards React for most projects, even though Svelte has the best developer experience. This is mostly due to the fact that most frontend developers know React, and it’s easier to pick up speed when you have a team that’s familiar with the framework.
Styling
I was a big fan of pure CSS and SASS for a long time, which automatically made me sceptical when I was introduced to Tailwind CSS. Although I still consider myself a fan of pure CSS, I have to admit that Tailwind speeds up the development process and makes it easier to maintain a consistent design system (this page is built using Tailwind).
Backend
Node
I know I might get some flack for this, but I still love Node. It’s so easy to get started with and I’ve never had a problem with it that I couldn’t solve with a package from npm. An added bonus is that it allows frontend developers to write backend code without having to learn a new language, which in many cases speed up the entire team.
Java
As many others, I started my object-oriented programming journey with Java. I still use it for some of my projects, but I’m not as excited about it as I used to be. Still a reliable language, though. *cough* Kotlin *cough*
Kotlin
I’ve been using Kotlin for a few years now and I love it. It’s basically just a better Java, and it’s been a joy to write in since day one. If I want to build a robust backend, I’ll reach for Kotlin. The best thing about Kotlin for many is that it’s interoperable with Java, which means you can use Java libraries and frameworks in your Kotlin code, however, if I had to mention the best thing about Kotlin, it would be that it has a function for everything. Whenever I return to Java, I catch myself trying to use Kotlin functions.
Go
Go is my go-to (pun intended) for building funny little side projects. I’m not as quick or efficient with Go as I am with other languages, but I love the performance and the simplicity of the language. I plan to spend more time mastering it.
Frameworks
For Frameworks I’ve mostly stuck to the industry big boys, Spring Boot, Express, some Micronaut and Ktor. Don’t really have any preferences here as they all do the their job.
Infrastructure
AWS/GCP/Azure
I’ve used all three of the big cloud providers. I don’t have a favorite, but I’m most experienced with AWS. I tend to avoid the UI as I prefer being in the terminal. Who really has a physical server anymore?
Docker
Docker is the best thing to happen to infrastructure since the cloud. I can’t imagine working without it. I remember the days when I had to install a Postgres database on my local machine. Never again.
Terraform
I’ve been using Terraform for a few years now and I love it. It’s the best way to manage infrastructure as code. It also has the added benefit of being able to manage multiple cloud providers. Surprisingly many know about Terraform, but not many use it. I think it’s a shame, as it’s a great tool.
Kubernetes
Overkill on most projects, but so important when you need it. Once you get the hang of it, it’s not that bad. Although I have to admit I scratched my head pretty hard the first time I setup SSL on an Ingress.
Kafka
Ignoring my hobby projects, I’ve never actually configured a Kafka cluster in a big production environment myself, but I have created and used a good chunk of consumers and producers. I have a good understanding of how it works and how to use it.
CI/CD
When talking about CI/CD I’ve tried a couple of different tools, such as Jenkins, Circle CI etc, but most of the time I end up using GitHub Actions/Gitlab CI/Bitbucket Runners (depending on the environment). I like the idea of having the CI/CD pipeline close to the code, and I think it makes it easier for developers to understand and maintain the steps.
Productivity
Notion
I’ve tried every note-taking app under the sun and I always come back to Notion. It’s just the best for my brain.
Toggl
I’ve been using Toggl since 2017 and it’s the only time tracking software I’ve ever stuck with. I use it for everything from tracking my time at work to making sure I’m not spending too much time on Twitter.
Google Calendar
If it’s not on my calendar, it’s not happening. I’ve tried to use a physical notebook before, but I always end up back here.