Going 'reliability first' in 2020
Tags: reliability, javascript, architecture, motivation
Published: 2020-01-01 12:51:55


Another year, and another big list of applications broken by `datetime` bugs. And what do you think? It will be a leap year. So we have to deal with these bugs, twice. How is it that after so many years of engineering, we still have these issues? And what does it have to do with my 2020 resolution?

For me to determine my engineering resolution, I have to look back at 2019 and the years before. I have to see what happened and what improved. What can we improve still?

## 2010-2018

The biggest part of the past decade I filled with studies and being a student. It was during the beginning of the decade I found a new hobby: web design and development. It started with a free university license for Photoshop. I moved from creating small logos to implementing layouts in HTML and CSS. From friends, I learned about PHP and WordPress, which got my interest. Programming courses at the university helped me kick-start my hobby. But that was what it stayed, a hobby.

It was not until the last years of my studies that I got renewed interest information systems. I got interested in designing systems, and how they interact with each other. I found joy in creating UML-diagrams for instance. But one thing always got my interest more: how do users use our systems? I got to know [Finaps](https://finaps.nl). The rest is history.

## 2019

2019 was a fruitful year in my professional career. In 2018 we started an experiment within Finaps to see if we could change our technology stack. Could we scale our technical knowledge from low-code platforms, towards enterprise worthy 'fit-for-purpose' applications? This would mean we had to expand our technology stack (we moved towards React, .NET Core & GraphQL). At the beginning of 2019, we pursued this path on a larger scale. This held some big changes for us and me:

- The cross-functional team I work in tripled in size;
- I became the lead engineer of the team;
- We went from one front-end engineer (me) to five front-end engineers in the team.

This path continued and will continue in (the beginning of) 2020. In the meantime, I finally launched [my blog](https://kevtiq.co). This was in the works for over ten years, but I never pulled the trigger to release it. But in June 2019, I finally created the blog I always wanted. In the meantime, I have written a small set of articles and I even had some success. One of my articles took off on [The Practical Dev](https://dev.to/kevtiq/how-to-create-a-scalable-and-maintainable-front-end-architecture-4f47). Even with low visitor numbers, I found great joy in writing and updating my website.

## Going into 2020: 'reliability first'

2020 will be a challenging year. I have to step up as team-lead. I have to keep my team happy and enable to grow in the directions they want. In the first half of the year, this will be a big focus. Not for the team, but for me, as I have much learning to do before I can enable my team.

Looking at front-end development, I have some clear goals for 2020. With growing projects in size, our way of tackling these projects has to mature. We already looked into a [scalable architecture](https://dev.to/kevtiq/how-to-create-a-scalable-and-maintainable-front-end-architecture-4f47), but that was the beginning. Always trying the 'next best thing' is fun, but our applications do not always benefit from them. They become less reliable. 2020 will be the year I grow myself in fundamental knowledge to improve reliability. I am going 'reliability first'. This means I will focus on:

- Become better in testing my code;
- Research and apply concepts like 'finite state machines' in front-end state management;
- Research concepts are known from back-end development and see how they can be applied in front-end (and if they should be applied!). A good example is the publish-subscribe pattern, that we already use in our [architecture](https://kevtiq.co/blog/scalable-front-end-architecture/);
- Determine how to track user behavior and errors. This should provide insights on what to focus on when maintaining applications (e.g. performance improvements);
- Developing with performance in mind (e.g. optimizing assets, lazy loading, code splitting, or apply memoization);
- Applying data normalization in state management and study the impact on the application and the collaboration within a team when applied;
- Data structures and algorithms. When to apply them in front-end development;

all points have some value. But combined, they provide a very solid base for reliable large-scale applications. Especially when working with a team on larger projects, solid foundations are crucial. So it will be my primary focus of 2020. Everything I learn along the way, I will share on this website.

But my biggest goal for 2020, is becoming a good father, as of February 2020, I will be! And it is my most exciting goal in 2020, without question.