Year in Review 2022 in English

Siwat Kaolueng
9 min readDec 31, 2022

--

Almost end of the year, let’s note what I learn.

Jame at Choui Fong Tea (ชาฉุยฟง)

Work

  • Freelance works were almost none. I have more expense, so I work more at the ITOPPLUS.
  • Interested in Low Code Platform, Collaboration Tools, CRDTs, Local-first Software
  • Got the challenged to build CMS from scratch (Low code Drag & Drop)
  • Researched low level Angular, did reversed engineering internal Angular Data Structure — View, Runtime JIT Compiler, Architected storefront JS Router for MPA, read a lot of Angular source codes, it was fun.
  • Understood MongoDB because of building auto & manual app level backup
  • Copied image WASM Resizer, WebWorker from Sqoosh (React) to CMS (Angular)
  • Enhanced WebWorker by moving some compress logic out of the main thread
  • Coached the genius junior dev that doesn’t come from CS background by introducing Leetcode, System Design Interview. Now, he got x2 Salary in one year. During farewell he did drunkly tell me that he is going to be improved himself better than me 4–5 times. I am confusing that he is respect me or not. Lol. However, I have to improve myself to better also. LOL
  • Gave Angular, RxJS, Edge Dev Tools Workshop. It is important and useful for a team.
  • Wrote Lua. Lua is interesting scripting language that embedded in OpenResty. It is powerful to customize reverse proxy or web server, even it has bad DX.
  • Elasticsearch is good for Thai full-text search. It is inevitable for products, pages, and contents search features. I wrote some queries. I have to tokenize words myself. Also, I found that MongoDB has full text search also, but I am not sure that is good for Thai language. Inverted Index & Trie data structures are cool. I designed nested structure incorrectly, it should be flatten structure. P’ Vick has suggested.
  • Researched & prototyped end to end testing for QA team. I was looking for high level language which is Robotframework. I also found out that Selenium is suck. It is slow and non-deterministic. The good alternatives is Robocorp RPA which wrapping Playwright. It is the fastest and reliable.
  • Always used Edge Dev Tools for profiling and debugging, However, MacBook Ram 16 GB is not enough for this project. It was always crashed.
  • I’ve usually talked CTO P’Ton that the libraries we use don’t handle edge case that we have — Quill, CDK. We have to fork and customize them.
  • Stress Test complexed overwhelmingly components and DOMs
  • Fixed layout thrashing problems
  • Thanks to CTO P’Ton for giving me this opportunity even we have been conflict sometimes. We have good arguments for better products. OK P’Ton. I let you skip OnPush, markForCheck. LOL.
  • The core logics are completed. Everyone can extend it.
  • I am looking for new goals, new jobs, and new challenges.
  • Interviewing
  • Preparing Interview is nervous but it help you know what you don’t know, so you know what level you are both prices and skills
  • Looking for international remote or relocated jobs
  • Here is the list of the companies I did interview

StrikeSocial (Blognone)

One round interview with Tech Lead, the problem is I gave interview too casual. She asked me that have I used NgRx, RxJS. However, it was end with the email said Let’s keep in touch.

Creately (Linkedin)

I was excited to apply Creately because the product is my interest (Collaboration Tools)

I did the general exam test via AdaFace. There are statistics, problem solving, graph interpretation, JavaScript & Java problems, and one coding problem in 1.5 hours. It was intense.

There are three interview rounds.

First is pair programming with Creately Senior Software Engineer to solve OOP problem. The problem is Vacuum Cleaner Robot cleaning the floor NxN. I was too excited, however, I solved the problem in a first level. Luckily, it was possible to refactor this code base later. Therefore, I solo spent more times refactored this code for more encapsulation, decoupling the two classes Vacuum Cleaner and Floor.

Next round is to System Design Interview with two tech leads. The interview was to architect the Collaboration Todo List. I had to design the system, choose technologies, databases and tools. I chose MongoDB instead of RDBMS because I think it has not so much relation. It is more Documented-base. I was wrong. There is user that is relation for RDBMS. This problem shocked me because I have rarely designed database tables. However, I did survive this part. And we talked about drag and drop. This was interesting to me because my experience was designing drag & drop. The question is in order to efficient, consistent query, add, move, edit, delete the todo list, everyone is dragging todo and, how to store todo list in databases. My previous solution from in CMS was used single linked list. To update list, just update the next node by skipping and repointing to new one. There is no reason to sort list in the database everyone when adding, I just update the pointer. The problem is that the backend has to construct the sorted linked list after query from the database. The simple solution from Tech Lead is to keep the order number in each node. This solution came from CRDTs: The Hard Parts from Martin Kleppmann. I have tried this before, but the problem is when inserting one todo between todo #3 and todo #4. I have to resorted order no for 3# 4# 5#. Tech Lead suggest me that I just use floating number for order number so I can insert 3.5 between two todos. And that is the exact “Ahha” moment I have watched this before in the CRDTs: The Hard Parts Youtube Video. I am really respected the Tech Lead to help me for the interview.

Last round is interview with CEO. It was shocked to me for the first question is that how do I manage conflict with the boss. I haven’t not much problems with my boss. Therefore, I answered that I agree on the boss argument because he has his reason, but I always concern what the problem with his solution, and the boss has to accept that.

And then I got the technical question to explain when we type something in google.com, what happen behind. I was shocked a little bit. Shall I start at the DNS resolve IP Address at google.com, TCP, TLS Handshake, Client Site Render, Data Structure (Trie, Inverted Index) CDN, Google Page Rank Algorithm, Makrov Chain Model, Backlink, Crawler? I do explain a little and end with Data Structure Inverted Index. And he also asked about Pub Sub that I did. I explained about Google PubSub I used for notification and Redis PubSub + SocketIO for chat rooms.

That was rough. Then, I was waiting for the result with patient. Sadly, there was no response for two months. I decided to ask HR via email. And I got the answer that I don’t get accepted. I am still looking at the LinkedIn Company People. When are new employees number is going to be increased more than 60 which mean new employee got accepted. It was long time now, it is still 60 people. I do monitor that they recruit so many rounds in so many places — Southern East Asia, Singapore, Thailand, Romania, Europe. There is still no new person got accepted. I guessed there are 1000+ applicants. They are still looking for the best candidates in the world. Maybe you could apply. I’ve gotten rejected since 22 September.

Celonis (Referral by Santosh Yadav)

I learned that I don’t know about recursive embedded view. It was 2 rounds interview.
The first round is chit-chat about the experience, then I got the challenged project to build Visualization Equation Calculator that can convert the equation including symbols, operators and numbers to the Visualized Component UIs that can be edited, added, and deleted. It had to be convert back and forth. I have written the Recursive Tree Tokenizer Function. The problem was that I misunderstood the problem. I have written tokenize symbol to piece by piece, but the equation has to wrap some statement together. For example, in the parenthesis (a+b+c), The goal was to assume that the statement in the parenthesis can be deleted, but I did tokenize (, a, +, b, c separately. And then I got the question about have I used RxJS, NgRx. I did answer yes I have. I don’t buy asking this question, but I understand why interviewer asking.

Honest Bank (Head Hunter encourage me to apply but I didn’t expect because of onsite)

I like they give me the overview process of all interview rounds.

The first round is talked with some Senior. He asked me about the experience, and we talked about the software development process including CI, CD, Estimation, Opening tickets.

At the end of the year, I finally got a new job with international remote work. I am very happy.

There are so many talented engineers that I know. I am so exited to start working without sleeping. I will use my whole life for the company. It is going to start in January. I almost get the visit the US Headquarter. However, I have no US Visa. I have no chance for this year but may next year I maybe have.

Wealth

  • Saving no loss no profit
  • I do a lot of shoppings, Facial creams, gadgets, appliances, courses, supplements, books. I am such a promotional victims.
  • Expensive Eating sometimes, sometimes order what I want, sometimes order cheap foods when I want to save money.
  • I did not invest in anything special. From my little experience and my investment styles, I have not seen anything better than saving account. I did fully pay the tax for this year. It was hurt, but it was the best.
  • I did not interest for lotteries, however, I have bought 1–2 lotteries for having a chance to be millionaire with one in million possibilities.
  • Dad’s car debt has bee paid 1/3
  • Sister tuition fee is just started. Cheer up!

Health

  • Watched Tom Cruise and main actress in old Top Guns. I was inspired by how Tom Cruise take caring his face. Therefore, I’ve bought the facial cream including Serum Heal B5. My family told me that my face is brighter. Wow!
  • Got Covid -> Try Probiotics.
  • I have NAFLD Non-alcoholic fatty liver disease, high LDL. I am avoid pork intestines, high cholesterol foods and red eggs.
  • Take supplements from research papers that has been summarized by the AI (https://elicit.org is cool). I also recheck with my friends about the effects. There are EGCg, Silymarin, L-Carnitine, L-Theaine, Probiotics, Soluble Fiber.
  • Quercitin is for curing allergy, but it doesn’t help much.
  • Exercise is so hard to start.

Read Books

Love

  • Help my girlfriend to be QA, pass probation! Holey!
  • We live together more. We have to adapt more. We leave some spaces. We miss each other more.
  • Saving together
  • Next year let’s travel Japan or Singapore.

Goal, Mission, Future Prediction in 2023

Lesson and Philosophy Learn as Life Coach

  • From Freelance to Part-time to Full-time experience, the full-time doesn’t really bad. I have seen the bigger scaled problem. It was challenged to solve the problem from the self product company.
  • Sometimes, take the interview. So you can learn which position are you right now including prices and skills.
  • Life is long-learning. Everything is lesson. Sometimes, you are wrong, Sometimes, you are right. It make you grow up. You then give to the others.

(Curiousity Driven Development)

  • Ikigai 1. What you love 2. What you are good 3. What world needs, 4. What make money. Finding what make more money first then find others later.
  • Eat, Full, Sleep, Relax, Satisfy, Exercise.
  • Stress, suffering, disappointing are temporary. You have to manage yourself by playing game, talking to your friends and sleeping. Tomorrow is going to be better.

Happy New Year 2023

Hope you all be healthy, save, more happy, less sad, lucky, rich, win first lottery.

Keep moving for yourself and your loves

Be positive vibes for people around you. :D

#perjerz

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Siwat Kaolueng
Siwat Kaolueng

Written by Siwat Kaolueng

A contrarian software engineer who can do everything that his manager assigns.

No responses yet

Write a response