..

2021 Tattered

Since September 2020, (I’ve started to work at new place) newer tasks led me to dive deep into Typescript further than ever. I mainly focused on revisiting old, legacy (mostly deprecated libraries) control panel, which has been working for almost 2 decades.

It was challenging; but I had a unique experience of refactoring old applications implementing new architectures with newer technologies which I had to revise constantly. I was kind of fortunate to work with colleagues who are passionate about improving both DX(developer experience) and UX(user experience).

Most favorite techs

As I plan to write a whole post about topics above later, I will abbreviate most of basic explanation and focus on what I liked most:

TypeScript & Superstruct

Long legacy JS applications always lack type-assert, which leads to poor debug experience. We introduced partially TypeScript replacing files related with data model and viewer interface for better DX. Furthermore, Superstruct with deprecated utilities allowed to retain older params to return customized errors with ease. TypeScript allowed this kind of partial implementation with no restriction, and gave an opportunity to other engineers to onboard TypeScript with specific usecase.

Clean Architecture on frontend

Uncle bob encourages to implement the clean architecture, if software suffers from high cost of maintenance related with business logic implementation. As we acknowledged these problems, refactoring whole control panel with newer architecture got higher priority than other projects. After continuous studies, I found Clean architecture may allow us to isolate business schema from application. Thus far, I believe Clean Architecture implementaion seems to solve high upkeep cost.

Exciting discoveries

Node.js: https import

HTTPS Import has been a hot topic in Node.js community since Deno has proved its possibility few years ago. The PR took almost a year to get merged into V18, and It has got my attention. We do all agree npm package creates unnecessary package control, neither assure any higher security than import from URL. In my humble opinion, HTTPS import will provide a tons of newer opportunity to manage an application, since we can create an independent module and recycle it with URL, without creating a whole npm package.

React@18 Concurrent mode

React has introuduced experimental concurrent mode 3 years ago, and finally it will be officially released in version 18. Concurrent mode has opened numerous way to fetch data, and render multiple component asynchronously. Our control panel relies on API endpoint to stay stateful and responsive, and there are tons of asynchronous calls to get a single status of job or resource. Concurrent mode implementation will improve those fetch-and-render jobs to be more responsive, creating better User experience.

Full remote productivity

During 2021 I never went to office at Shinjuku(even once), as whole job was available at home. Private VPN, Access control, restrictions were well settled and CICD process greatly integrated with development process. Since it was my first year in full-remote, I was kind of skeptic about productivity, but somehow I managed to concentrate in my room. Slack channels gathered random colleagues with same academic purposes, and could participate lots of online presentations without bothering(or disturbing) teammates. Somehow, I realized that the productivity is just a matter of focus and concentration, and working location is barely related with it.