My developer year 2020
Tags: 2020, devtools, learning, gamedev
Published: 2021-01-01 17:24:44

---
title: My developer year 2020
published: true
date: 2020-01-01 00:00:00 UTC
tags: 
  - 2020
  - devtools
  - learning
  - gamedev
canonical_url: https://littleiffel.net/posts/developer-year-2020/
---


The year 2020 was definitely a special year. (If you read this in the far future, you might want to look up on Wikipedia why 2020 is so special). Some tools had a huge impact and changed my every day working. The order is not specific. 

### Dev tools

- [tmux](https://github.com/tmux/tmux) Changed how I use my terminal dramatically. I still use a [cheatsheet](https://tmuxcheatsheet.com/) on a daily basis, but synchronizing panes, making panes fullscreen or side-by-side allows a more effective keyboard-only workflow. Just using plain standard Ubuntu pre configuration.

- [Github CLI](https://github.com) allows to effectively create and do most operations on PRs in the terminal. Github in the browser is fast enough (compared to JIRA it is super fast), but opening PRs right after your commit from terminal is very nice and allows to us in any CI as well. Great Tool. Thanks Github!

### Programming

- [Kotlin](https://kotlinlang.org) Started to learn Kotlin, and so impressed that we started using it on projects at work. I really enjoy reading and writing this languages. After writing Groovy for years, the compiler of Kotlin is impressive and gives such good hints and messages without going back to a Java-style language (requiring too much boilerplate). Kotlin allows to use all Java libs and vice versa. Used the [Kotlin in Action](https://www.manning.com/books/kotlin-in-action) book which is an excellent resource to get into the language. To get started I used the official Docs from kotlinlang.org. For my personal projects Elixir is still the preferred language, however Kotlin is a close contender and i really looking forward to use more Kotlin in 2021.

- [Tailwind](https://tailwindcss.com/) Tailwind CSS! Tailwind CSS! This is definitely my favorite piece of software that i learned to love this year. There are many discussions around this CSS 'framework'. But I used it to prototype a few pages and I was so impressed that I spend much more time with it. For me this is the first notable evolution of CSS since Bootstrap v1.0. Often I see people refer to it as an Atomic CSS Framework, but tailwind is not an atomic css framework. They call it themselves 'utility-first' CSS framework, and this is something that allows you to use it as atomic framework but at the same time allows to build your BEM design system using the utility classes. 

- [SvelteJs](https://svelte.dev/) & [Sapper](https://svelte.dev/) I use React at work, and followed Svelte since it was first announced. The concept to compile the framework out of the Js that is shipped down the pipe is just the most logical, if you think about it. Besides that I enjoy the fresh ideas Svelte has to allow with a simple syntax to manage complex processes. Together with Sapper, after NextJS, my second SSR tool that I learned. Sapper is very interesting and is promising. If you want Svelte and SSR, well Sapper is your solution.

- [Vert.X](https://vertx.io/) Finally i got to spend time with vertx, after looking for many years and wondering what it is. Went through a tough learning curve at the beginning, where for 2-3 days I had no idea what was going on, but once I grasped the concept everything makes so much sense, and I was already designing the architecture of many tools with verticles. The concepts of vertx and all the possibilities it overs on how to design system is just a perfect toolkit. I tried vert.x with Kotlin, but i tried it with Typescript as well [https://reactiverse.io/es4x/](https://reactiverse.io/es4x/).

- [Micronaut](https://micronaut.io) For a new tool at work we choose Micronaut as our go to solution. Coming from 'old' Java technology, where starting a server takes around 80 seconds in production, this one starts up in production in under 3 seconds. The work load it can handle is also quite impressive. Still it offers a platform where any Java developer will quickly find at home. We use it with Kotlin. 

- [GraalVm](https://www.graalvm.org/) To deploy the above service we investigated the GraalVM option of Micronaut. Learned a lot on this technology and I managed to setup a pipeline to deploy the service using GraalVM. Startup times where impressive going from around 2.8 seconds to around 100 milliseconds. We manage services in Java running on Lambda where startup times are far from that. At the end we decided against GraalVm and deploy the service on Fargate AWS to be able to benefit from JVM optimizations over time and also to gain insights into the service, which are currently impossible as of my knowledge today. JVM allows good insights into running services, to debug and optimize performance. Nothing similar exists for Native images.

- [11ty](https://www.11ty.dev/) A static site generator that i could love finally. I tried many others over the years (Gatsby, Hugo, Jekyll). This one just works and keeps the fun while developing. Yes hugo might be faster, but whenever i switch from editor to the browser the page has already finished rendering. 

### Game Development

- [Godot](https://godotengine.org) In lockdown I started the game development learning and started with Godot. Godot is impressive powerful and the best is that it all fits into a download of under 100MB. It runs on my old Thinkpad with Linux and as well on windows. There are many good courses out there to learn Godot. I used (Heartbeast)[https://twitter.com/uheartbeast] tutorial on how to great an [2D Action RPG with Godot](https://www.youtube.com/watch?v=mAbG8Oi-SvQ&list=PL9FzW-m48fn2SlrW0KoLT4n5egNdX-W9a). Shortly after I started the same process with Unity, which is just very similar to Godot. Currently I am still learning and using both. I like the simplicity of Godot and at the same time I like the universe of Unity (many services available, multi-player, ads, deployment...etc). I cannot judge on how well both perform for professional games, but both allow to make fun games

- [Unity](https://unity.com) Same as Godot I started to learn via Video lessons the Unity universe. Compared to Godot, the main advantage I see in unity is that Unity lives in universe of additional  services that integrate well and easily with Unity (Multiplayer services, Payments, Ads, Stats,...etc). Comparing Godot and Unity only based on making games I find both quite powerful having a similar approach on how to make games.