Technologies I use in 2022-23
Gigachad Tech Stack

Technologies I use in 2022-23

It's mind-boggling everytime I look back at how many technologies are involved in building a SaaS product, and how many of them have evolved/died out in just one year. So I would like to share which are the ones that I am still happy with, discuss which I am planning to replace.

??? - Keep deep diving

?? - Not looking further into

??- Missed or passed


Zod ?????

I have been using Joi or Yup for a while and have fully converted to Zod in 2022. Its TypeScript-first implementation and recent updates definitely made it stand out. I can not only use it to perform form validations on the front end but also serialisation/deserialisation when writing/reading from the database on the backend. What a tool!

// Strongly typed form in React

const signInFormSchema = Form.extend(
  email: z.string().email(),
  password: z.string(),
});

type SignInFormData = z.infer<typeof signInFormSchema>;

useForm<SignInFormData>({
    resolver: zodResolver(signInFormSchema),
  });
        

React & React Native ???

React 18 and React Native 0.69, say no more! The community is growing strong and I will happily remain as an evangelist for a while.

Electron ??

This was probably the only option I had when I decided to make a desktop app shell for Kinetics this year. I did look into Tauri but it was missing some features that I needed. I speculate that with the sunset of Atom, the community support and popularity around Electron would slow down. The majority of Kinetics is still web-based, and I only develop some native parts in Electron such as BrowserWindow and TitleBar.

Storybook ???

Storybook has been instrumental in building our new #designsystems. combined with Chromatic it has allowed me to properly segregate business logic from UI.

No alt text provided for this image
Low-key flexing my structured, well-defined design system storybook

Recoil (state manager from the Facebook team) ??

Am I absolutely satisfied with Recoil? Maybe not… There’s probably a massive showdown of state management libraries in React, I am not even going to get into it ???? ♂?

Recoil gets the job done, is performant, and works well with micro frontends but comes with obscure API. The verdict is that it fits the project I am working on.

Animations ???

Animations are SUPER FUN to work with I’ll have to say. I’ve been using react-native-reanimated for React Native and framer-motion for Web. Moti seems pretty cool but I still prefer the imperativeness of Reanimated over the framer motion API.

I still think that this falls into a completely different skill of front-end engineers, as it’s closer to developing an aesthetically pleasing landing page rather than a full-fledged web application. Teams should probably not expect all front-end engineers to excel in coding animations.

No alt text provided for this image
A very simple loader with animated SVG paths

Jest ???

With Storybook sharing many responsibilities for UI testing, all I have left with for Jest unit testing are (helper) functions that can be perfectly unit tested.

In Kinetics I’ve actually swapped out Babel with SWC last year, so the performance of Jest is still satisfactory despite the rising competition from Vitest. The pain I had with Jest is more related to ESM, or rather the whole JavaScript standardisation ??

Last year I’ve had the opportunity to deep dive into its Async and understand how timers work in Jest. This year I am going to organise my tests more systematically with shared fixtures and so on.

New web frameworks on the block (Remix, Astro, Qwik, Solid) ???

I strongly doubt that I can fit all the frameworks in my resume or in this article????.

No alt text provided for this image
@realkyunu - I built a JavaScript framework by Fireship https://www.youtube.com/watch?v=SJeBRW1QQMA

I have been quite happy with my proficiency in #Vue and #Svelte. While waiting for the result of State of Javascript 2023 I would like to try out all the hyped frameworks myself and catch up with the ecosystem.



Backend is fun too



NestJS → Rust ??????

Rust has been on my radar for a few years in a row now.

Developing a mono-language full-stack using TypeScript definitely had its plus. However as the complexity of the backend grows, I’ve started to lose confidence in performance + code safety even after becoming “proficient” in the battle-tested JS framework NestJS.

In 2022 I have made my first attempt to build some simple APIs and CLIs with Rust. Looking ahead in a few years' time, I have set a goal to be more proficient in Rust + WASM.

PostgreSQL → Neo4j ???

I love graph databases ???After coding backend for a few years, one thing I’ve learned is not to limit your options with what you’re comfortable with. Starting a project with an SQL database seems like an “of course”, but it’s more important to pick a database that fits the use case.

In Kinetics, the performance had been severely constrained by the many JOIN tables due to the nature of being a content and relationship-oriented solution (acknowledging that there are many optimisation techniques). I can’t be happier that I made the switch to a graph database near the end of 2022.

To top it up, there’s the flexibility to use multiple databases in the microservices world. I now still use PostgreSQL to persist events in light of an event-driven architecture.

Kubernetes ??

I have been mainly using K8S to deploy my microservices docker images. ???DevOps is just not for me after endless hours of troubleshooting production issues. So I’ll stick with my know-how for now.

One thing I would explore if I have time is to maybe refactor docker files into Helm charts.

Redis → gRPC / Kafka ???

Redis has an extremely easy-to-use API but it seems rather slow whenever I needed to perform inter-microservice communications for internal usage compared with #gRPC. Additionally, I also used it as an event bus, but will definitely look into Kafka as a replacement ??.

Firebase + Google Cloud Platform ??

Nothing too exciting to me in this space. Started my journey as a Certified Solution Architect in AWS, over the years I’ve had hands-on experience in GCP/AWS/Azure and it came to my realisation that the competition is fierce, but there’s really nothing new except for containerisation and serverless.

Back in the days when I was studying information systems, “Cloud” was a hot topic. Nowadays as many companies have already started their journey to the cloud from on-premise systems, it’s not so mysterious now.

GraphQL ??

SDL-First or Code-First? Probably if the tech stack you’re working with involves only one language, Code-First seems a better fit and vice versa.

Apollo federation still seems interesting enough for me, so I might as well migrate to Federation 2 in 2023.

Cloudflare Workers (Edge functions) ??

I have been using Cloudflare workers to deploy some simple, self-contained services. It’s quite nice to work with, and with native Rust support and the mention by Ben Awad the Guru, I think it is worth a call out! I’ll also think about migrating my Netlify sites to Cloudflare as it has become my central manager for much web-related stuff like DNS and domains.


That’s it! If you have read this far I appreciate your time in tuning into to my opinions! I don’t consider myself a good content creator as my thoughts tend to scatter very easily, but as a new year's resolution, I would like to push myself and try to write more this year. Cheers

Aung Ye Thu

Specialist Senior at Deloitte | Discovery and Data Management

2 年

Very insightful! Looking forward to hearing your adventures as a Rustacean soon!

要查看或添加评论,请登录

社区洞察

其他会员也浏览了