Unemployed day X

10 Mei 2024 ยท 0 min read

Link copied successfully
Unemployed day X illustration

Because I resigned from my last job before finding a replacement, technically my current status is unemployed ๐Ÿ˜‚. However, I'm not the unproductive type of unemployed who just sleeps in bed all day (only sometimes), I fill this spare time by continuously learning while seeking another place to settle in.

Here, I want to share the activities and things I've learned during what I call the void days. If there's anything you'd like to discuss, feel free to visit my Twitter @muhsalaa, or if there's any collaboration opportunity, you can email me at muhsalaa@gmail.com. Thanks! These are my 'void' days:

Day 1

May 8, 2024

Still with a heavy heart leaving behind such delightful friends at the office.

  • Setup the laptop to be able start coding again. Because on my last day, according to office rules, my laptop had to be reformatted (which I wasn't aware of ๐Ÿ˜ญ).
  • Interview preparation, crafted answers for the Tell me about yourself question with the framework from this video here.
  • Learning system design on the GreatFrontend course for the News Feed case (e.g., Facebook).
  • Spent more than 3 hours playing with my childs โค๏ธ.
  • Started working on a new UI for emots.space, initially wanted to switch to Astro, but eventually decided to stick with Next.js 14 only.
  • Completed an article about resigning from Flip.

Day 2

May 9, 2024

  • Continued learning system design, this time on the case of creating an autocomplete like Google's. Turns out there are many things to consider, such as caching strategy and its structure, virtualized list (for long lists), UX, accessibility, and keyboard interactions.
  • Recorded the first video for the YouTube channel I want to start. Of course, it's still about React.js ๐Ÿ˜†.
  • Improved English speaking skills by listening to podcasts and trying shadowing.
  • Designed the architecture for a new side project I want to start. Got acquainted with Plasmo and discussed a lot with Claude for its tech stack.

Day 3

May 10, 2024

Day 4

May 11, 2024

  • Today was a bit 'dark'. My enthusiasm for learning decreased slightly due to not being able to focus for too long in front of the laptop. Of course, it's because I had to go back and forth to accompany my child who was so active today. There was a moment when I considered giving up and fully taking care of my child for a while. But seeing my wife changing the diaper of our second child, a realization hit me, that it wouldn't be fair if I gave up. What would happen if my wife gave up taking care of the children, what would become of them? I regained my spirit that day and decided to move my study time to the night.
  • Watching the speech by Mariana Pascal was truly eye-opening regarding speaking English as a tool, not an art that we must master. So far, most people learn language to become proficient, hence they fear making mistakes and are less daring to speak.
  • Continued grinding code challenges. Alhamdulillah, managed to solve 5 easy problems tonight.
  • Found 2 interesting articles from the Javascript Weekly newsletter. The first one is about Figma's migration of their codebase to TypeScript, and the second one is about the concerns and solutions from Artem Zakharchenko regarding the danger of patching the global object in JavaScript.
  • Reached level 4 in touch typing practice. Will try to advance to level 5 tomorrow.

Day 5

May 12, 2024

  • Took a break and went to Puncak Bogor to accompany my sibling to their new house. I drove the car all day, and upon arriving home with little energy left, I managed to squeeze in some time to work on a chrome extension for my side project.
  • Amidst today's activities, I found time to read one of the releases from The Pragmatic Engineer newsletter. This release contains excerpts from the book The Engineering Executive's Primer, discussing the CTO's point of view, paths to becoming a technology executive, communication strategies, and the mindset that needs to be developed.

Day 6

May 12, 2024

  • I've begun to get accustomed to morning emails containing words like "Unfortunately, we will not be moving forward with your application." It's like morning coffee now, a sip to boost my day ๐Ÿ˜Š
  • First Interview after becoming unemployed ๐ŸŽ‰. This was an exploratory call with a company from Japan called Jitera that creates a no-code platform for building web or mobile applications along with its services. I'm not satisfied with my performance, especially in communication and self-presentation; I still need a lot of practice speaking English. The position I'm aiming for is a fullstack engineer, you can apply here if you're interested.
  • Today I did some routine things like continuing my touch-typing practice, working on a code challenge, improving the accessibility of my blog, and attending a pre-master's class.
  • I also read some interesting articles, including The Minimum You Need to Know About Unicode for Building Software and the design system ecosystem. From the second article, I got the idea to create a component folder structure for the frontend project:
    • common -> folder for basic components like button, card, input
    • composite -> folder for more complex components composed of common components like product card, modal
    • container -> folder for components with application logic like cart, search

What do you think about the component folder structure above?

Day 7

May 14, 2024

  • I dedicate today to working on a side project (should be the main project in my current situation ๐Ÿ˜‚) that I'm trying to develop. What I created today is a browser extension that allows data transfer with a backend service. Alhamdulillah, 60% completed, thanks to Shadcn UI with its neat components, hopefully, tomorrow the MVP will be ready.
    • Short additional story. I actually started several applications, but 100% failed due to two main reasons: Lack of research and inability to determine the main features to be built. The second reason is the most influential, as many projects stopped because of confusion about what features to create or feeling overwhelmed by too many features.
    • I recommend the advice from Marc Lou's video here to potentially launch a successful application.
  • By finding good names for functions, variables, and other constructs, we truly understand the essence of the problem we're solving. A quote from an article about the Importance of Naming in Programming. Naming indicates how familiar you are with the program you're creating, and whether the program's design is good. Because poor design will make it difficult to find the right names.

Day 8

May 15, 2024

  • Today, I tackled the backlog, which had been piling up quite a bit. Updates regarding the frontend included reading the documentation for React 19, and taking an English speaking proficiency test (I achieved B2).
  • I feel like I've been rushing through life lately, wanting everything to be done faster so I can tackle the mounting to-dos. I've decided to slow down the pace to be more calm and enjoy the moment. I'm also interested in purchasing the book The things you can see only when you slow down.
  • I've finished the Chrome extension I've been working on; now, it just needs to be integrated with the API, which I plan to build using tRPC and Next.js.

Day 9

May 16, 2024

  • Today I set up a new project using tRPC and Next.js. Since I'm using Next version 14, I needed to find alternative references for the setup because the official tRPC documentation still uses the page router. I found an example setup in Jack Herrington's repository here.
  • After a while, I finally watched a movie again. My choice from the numerous options on Netflix was Safe House, starring one of my favorite actors, Denzel Washington ๐Ÿ˜Ž.

Day 10

May 17, 2024

  • On my last day at the office, my laptop was reformatted. The projects I had worked on were lost, including several libraries I had developed. Lacking references, I tried to create a new, simple library to bind a keyboard key to a specific sound. Today, I managed to complete the configuration and the main function; now I just need to add features and upload it to the registry.
  • Several packages arrived at my house, including switches, keycaps, and the book I've been eagerly waiting for, The Things You Can See Only When You Slow Down ๐Ÿ˜
  • Since I hadn't been getting enough sleep for the past few days, I had a throbbing headache since noon, so I decided to go to bed early last night.

Day 11

May 18, 2024

  • Today, I spent the entire day taking my child to a trial for his preschool in the city. I met another prospective parent and chatted while my wife and child participated in a series of activities. We talked about many things, and one interesting topic was some stories related to prophetic history that I didn't know, like the story of Prophet Adam supposedly eating a child of the devil, which is why human blood can be influenced by the devil. I haven't validated this story yet, but it could be a metaphorical tale.
  • Upon returning from the city, I immediately assembled a split keyboard with a (I think is) lily58 layout, which had just arrived as a farewell gift from my friends at Flip. I used Gateron Blue switches for a clicky feel, and I opted for cheap keycaps, 120 caps, to fit all 1u-sized switches. My task now is to get used to using it. It might take more than a month since there are many other things I also want to learn. Here's the result of my assembly.

soffle-lily58

Day 12

May 19, 2024

  • Today, I'm still a "stay-at-home dad" because my child's caregiver is still on leave. In between, I continued configuring my Lily58 keyboard using the VIA application. Configuring a keyboard has its own challenges. With fewer keys (58), I have to create another layer to accommodate keys not found on the main layer.
  • Trying to practice typing regularly with this new keyboard feels like learning to type from scratch. I usually get around 35 WPM, but on this new keyboard, it's only 10, LOL ๐Ÿ˜‚.
  • For the rest of the day until now, 11:15 PM, I've been trying to finish the library I started two days ago and, thank God, it's done, although it's not version 1 yet, meaning it's not stable. You can check it out here.

Day 13

May 20, 2024

  • My typing speed has gradually returned to normal (for touch typing) to around 30 WPM. On this second day, I am getting used to the ortholinear layout where the keys are arranged more straight compared to conventional keyboards that have a slant for each vertical row of keys.
  • Thank God, today I had the opportunity to conduct an exploratory interview with the CEO of a healthcare startup. I am very grateful because my English speaking was a bit more fluent today. Perhaps it was because the CEO was relaxed and asked more specific questions about my experiences, making it easier to answer.
  • One of the topics discussed was the tech stack used. Although Next.js, which is my expertise, is also used for some products, most of the frontend products are made with Nuxt, a framework built utilizing Vue.js. Additionally, data interaction with the backend uses GraphQL and (interesting tools) gql.tada.
  • As a fan of tRPC with the slogan "making end-to-end typesafe APIs easy" (and it truly is), I was intrigued when the CEO mentioned that gql.tada is its replacement. I then opened YouTube and watched Theo's video reviewing gql.tada, and it's indeed impressive. gql.tada can infer types from GraphQL queries instantly and accurately without codegen. I decided to try making a simple implementation using Nuxt, PokeAPI, and gql.tada. God willing, I will share it here once it's finished.

Day 14

May 21, 2024

  • This morning, before taking on my fatherly duties, and in between babysitting, I had extensive discussions with my two virtual friends, ChadGPT and Cloud. We talked about database choices (SQL or NoSQL), table structures, and their relationships, suitable for storing text data and its annotations. Then, we continued to find ways to store content from an article on a blog like Medium. I discovered several tools that could be used to build my application flow, such as Article Extractor and Sanitize HTML.
  • I have long retired from playing Dota 2. If I'm not mistaken, the last time I opened Steam, my playtime was around 2000 hours, haha. However, I still occasionally watch international tournaments, like the finals of PGL Wallachia (which suddenly appeared in my YouTube feed). It was super exciting up to game 5, which was finally won by Team Spirit. GG Yatoro and Glimmer for the creep at the end of the match to avoid a backdoor ๐Ÿ˜‚.
  • Since the afternoon, I've been watching several videos about VueJS, crash course Vue 3 and Vue 3 composition API. The last time I used Vue was about four years ago, when it was still version 2. Since I want to make a Pokemon project with Nuxt, I need to catch up with Vue's developments. Now, I'm continuing to watch Nuxt Tutorials from NetNinja as a lead to understand the basic concepts and practices. So far, as a man who deals daily with the complexity of server components and app router from Next.js, using Nuxt feels like a refreshing experience ๐Ÿ–๏ธ. Hopefully, I can start the project tomorrow.

Day 15

May 22, 2024

  • Today, I accompanied my child to another trial class in the city. While waiting, I refined the database structure for the application I'm going to build. I plan to use Prisma as the ORM, but I'm still unsure whether to choose PostgresQL (NeonDB) or SQLite (Turso) for the database itself. The free tier for Turso offers 8GB while NeonDB only provides 500MB. Considering that the data I'll be storing is long text that will quickly fill up the database, and I'm still bootstrapping, I'm looking for something cost-effective ๐Ÿ˜‚.
    • In the future, I'm thinking of using a managed database service like Digital Ocean because of its large and affordable storage compared to the paid tier of previous services. But I still need to research more.
  • I completed the Nuxt tutorial that I started watching yesterday and prepared the boilerplate for the Pokemon application. Hopefully, I can start working on the application tomorrow.
  • Alhamdulillah, I got an opportunity for a coding test from an outsourcing company that sends developers to Japan. Tomorrow morning, I might focus on this first because the deadline is in the evening. Time to brush up on some LeetCode problems again.

Day 16

May 23, 2024

  • I thought I would be able to spend the entire day in front of my laptop, but I ended up having to take my family to the city. I used the free time during the trip to study Leetcode in preparation for the coding test tonight. It was a bit challenging because I haven't been grinding regularly.
  • Alhamdulillah, I managed to complete the coding test. The test was on the platform Coderbyte. There were three problems I received. The first one was quite easy, related to strings: checking whether the given string is a palindrome. The second was about arrays: implementing a simple LRU cache. The third was related to tree structures: validating whether the given array forms a valid tree. I finished the first and second problems in about 20 minutes (the given time was 210 minutes), as they were fairly easy and the instructions were clear (my first time implementing an LRU algorithm). The third problem took me more than an hour to solve, hehe. I rarely delve into trees. The solution I provided likely didn't follow the common algorithms for tree structures. Hopefully, I get the best results ๐Ÿ˜†.

Day 17

May 24, 2024

  • Today, I successfully completed setting up authentication with NextAuth version 5, Next.js, Prisma, and NeonDB (I finally chose this PostgreSQL service). Then, I continued grinding through coding challenges. Tomorrow, I will try to finish the Pokemon project.

Day 18

May 25, 2024

  • I broke my record by typing 50 words per minute.
  • I spent the whole day playing with Figma because I got inspired to design my personal logo. On the left are the logos that inspired me: the Daylight Computer logo and the logo from a programmer's blog. Moving to the right are my designs, and on the far right is the final logo I created. When the elements of this logo are separated, they form the word "EMOT."
  • I got so absorbed in designing that I only managed to add the skeleton of the pages for the Pokemon project.

logo transformation

logo meaning

Day 19

May 26, 2024

  • I spent the entire day accompanying my son around Jakarta using public transportation: KRL, LRT, and Transjakarta. We also visited TMII, where there was an interesting incident when I ran out of diapers and there was no place selling them.
  • I received another opportunity for a coding test from an AI startup. They mentioned that if I pass just the first round, I will get $100. It must be quite challenging, haha.

Day 20

May 27, 2024

  • I successfully integrated the Nuxt application with the Pokemon API using GraphQL. Utilizing gql.tada provided a new experience for real-time TypeScript type inference. I just need to create infinite scroll next, then I will try to deploy it to Vercel.
  • InshaAllah, I will help create a landing page for goakal, a platform designed to simplify the process for creators to sell their webinars, from setting pricing to creating registration forms and validation.
  • Sometimes I wonder if an <a> element with a <div> child is semantic HTML. To determine this, you can check its type. If it is block, it can have both block and inline children. In contrast, inline elements can only contain inline elements and data.

Day 21

May 28, 2024

  • Today, I focused on being a dad, spending the entire day with my child and wife at Lembah Quran in Puncak, Bogor. After Dhuhr, we headed home and arrived in the evening, where I immediately rested ๐Ÿ›Œ.

Day 22

May 29, 2024

  • I spent today preparing for the coding test later tonight. I delved into Strings, Arrays, and SSML (learned a lot of new things). The test started exactly at 8:40 PM. This test was very beneficial as it introduced me to new problem domains and tools. Here are some notes on where I didn't perform maximally in the coding test:
    • Use the peripherals you are familiar with (I had some difficulty using my keyboard as I wasn't fully accustomed to its shortcuts).
    • Practice a lot more; I struggled a bit with logic that was actually quite simple.
    • Oh yes, RegEx; it's crucial to be familiar with it in case of a string-related test.

-- continued in TIL --

Emot's Space ยฉ 2025