Time to go back to the fundamentals of software development?

10th September 2020

With all the new toys coming out each day, libraries, frameworks and even architectures. Have we forgotten the fundamentals of software development? Every developer wants to write good code, but how often do we do what we say? Maybe, every so often we all need to take a step back and rethink our approaches to software development. If nothing else, we should find challenges and excitement in what we do, if only to make sure the passion that drove us to this career path doesn't die out.

What's new with TypeScript 4.0?

21st August 2020

TypeScript 4.0 just came out, and people probably want to be upgrading to it soon. Here's a quick summary of what's new based on official release notes. This is only meant to be a quick summary, so I have left out edge cases and detailed examples. If you have time, I'd recommended giving the official release note a proper read. But for those who want to get a high-level gist of what changed, this might be useful.

Running client side only JavaScript with Gatsby.js

12th August 2020

Gatsby is great for generating static sites, but sometimes we need to run some client-side only JavaScript as well. The question is how might we go about that? Well, that's what I'll be covering in this blog post. Actually, I've already written about something similar in a recent post Render client-side only component in Next.js. The approach is very similar, but I'll be walking through an example in this blog that is more specific to Gatsby.

Fixing Cypress errors part 1: chromium out of memory crashes

30th July 2020

After recently working on an existing project that adopted Cypress, I was both amazed at how pleasant the local developer experience was and how badly it runs on the CI pipeline. No joke, at one point I actually missed Selenium. To debug the issue, I must have run the pipeline over 100 if not 200 times and read many many Github issue threads. Finally, I was able to problem resolved and noted down a few things along the way which may help someone else in the same shoes. I am pretty confident these solutions will fix your problems, if not leave an angry comment and let me know that I failed 😂

How to approach a disagreement

28th July 2020

As software engineers, there are a lot of things to disagree on: tech stack, syntax, code standard, testing, methodologies, etc. No matter your seniority, learning how to frame a disagreement is vital. It includes both disagreeing with what others have done and have others disagree with your approach. It happens a lot more often than we expect, so if we don't pay attention to our methods, then it is easy to cause stress and tension within the team or between teams. If this continues for a long time then well, then it will create a toxic work environment. As someone who has a consultancy background, which requires people to jump in a new team and start delivering value as well as navigate office politics, I thought this is an intriguing subject for me to share my thoughts on.

How to render react components in markdown in Gatsby

20th July 2020

In a recent post Stop trying, you can't multitask, I wanted to embed a few productivity books which I found useful. Since I write all the content in Markdown, I thought about embedding iframe components or insert image version of the book components in the Markdown, which are both terrible ideas. Luckily, there's a better way to do this with MDX, which allowed me to use React components inside Markdown. The solution is super clean, and in this article, I'll be explaining how to add React components to your Gatsby site.

Render client-side only component in Next.js

30th June 2020

If you are familiar with Next.js then you will know it is the React SSR (server-side rendering) framework created by Vercel. There are a lot of headaches in trying to build SSR sites in React, Next.js makes it drastically simpler by doing many of the not-so-nice parts and hiding it from developers. The problem with frameworks, in general, is that it does what it is designed to do very well while sacrifices control and customisation to achieve it. Next.js is very good at handling components rendered on server-side and then sent to the client. But how would you render a client-side only component in Next.js? That is an issue I encountered and what I'll be discussing in this article.

Stop trying, you can't multitask

29th June 2020

There are a lot of articles out there discussing why people need to focus instead of trying to multitask. At best, I have seen this being done from a biology point of view going into depth about how our brain works on a more fundamental level. I studied Computer Science at University, and this multitasking problem isn't new to me. Let's discuss how computer operating systems schedule tasks and what valuable lessons we can learn from it.