When is GraphQL the right choice for your Project or Business?

12th February 2023

Building a GraphQL API requires a deep understanding of the technology and best practices. It offers developers a high level of control and freedom, which is why it is so easy to get started. However, it is also why people can design themselves into a corner if they are not careful. Security and performance implications are just typical issues of software development. GraphQL also requires that the schema is well-designed and easy to maintain; otherwise, the development team will run into a world of pain. Additionally, the development team must be trained and skilled in using GraphQL, as it requires a different way of thinking about data and APIs. In this article, let's discuss when it is a good choice to adopt GraphQL and who it is for.

Fixing esbuild related CPU architecture error on Apple silicon Macs

12th February 2023

I ran into this issue recently where esbuild was complaining about the CPU architecture in VS Code. The project was running SvelteKit (v1) for some context. The error didn't disrupt anything I was doing, but I was sick of seeing the error message everywhere and decided to fix it. I've always run Rosetta v2 on my Apple silicon Macs because of compatibility concerns. Here's my article on Setting up ZSH with VS Code on Apple silicon Mac (M1 chip). But this was the first time Rosetta caused any conflicts in my workflows. I found a fix at the end and decided to share it, given how little people have written about this.

What I learned about JS Date from writing a simple date library

27th November 2022

The built-in Date object is notoriously difficult to use. It is why there are several date libraries out there, such as Day.js, luxon, date-fns, etc. Recently, I've implemented a date library that acts as a light abstraction layer, providing syntactic sugar like the date libraries mentioned above. I won't go into detail about why I didn't just use one of those libraries in this article, and I will save that for another time. Instead, I want to discuss my learnings and recommendation after learnings from creating this date library.

Setting up ZSH with VS Code on Apple silicon Mac (M1 chip)

10th April 2022

I upgraded to MacBook Pro 14" a few months back. I've been using it for personal development and commercial contracts (working inside large teams) with no problem. For anyone who's on the fence about buying a Mac with Apple silicon (AKA M1 chip), I would encourage them to go for it. I want to point out that the lack of issues could be because I'm running all codebases with Resetta 2, an emulator that could translate Intel chip commands so they could run on Apple Silicon. In this article, I'll share my setup in case it helps anyone out there.

Setting up Vitest within SvelteKit repo

10th April 2022

SvelteKit doesn't come with unit test tools out of the box, so we'll have to configure our own. Usually, I'd add in Jest because it's always been my favourite testing framework. However, I recently heard good things about Vitest and thought I'd give it a try. For those unfamiliar with Vitest, it is a drop-in replacement for Jest and is much faster. In addition, I've noticed another benefit of how simple it is to configure compared to Jest since it natively supports TypeScript. However, we still need to do a couple of things to get Vitest working properly with SvelteKit. Let's go through what these things are.

The best programming language to use in coding interviews

5th April 2022

As I've mentioned in a previous blog post Becoming an interview engineer, I have been an interview engineer at Karat for about six months now. As an interviewer, it is my job to observe different candidates attempt the same questions. Over time, I noticed something intriguing - the best performing candidates I interviewed all use the same programming language. To make it clear, Karat allows candidates to pick from 26 programming languages (excluding Markdown) when attempting coding interviews. Out of these languages, candidates tend to choose the same few languages. Out of these languages, there's a clear winner when it comes to the best language to use for coding interviews - Python. Of course, candidates can still perform well using other languages, but I strongly feel the interviewing "game" is rigged against them.

Becoming an interview engineer

30th March 2022

A few months ago, I was approached by a recruiter telling me about this fully remote job at Karat that offers decent pay. If you haven't heard of Karat before, it is the world's largest interviewing company. They use a global network of professional software to conduct technical interviews for companies, some of which you may have heard of before: Robinhood, Indeed, Roblox, Coinbase and more. Of course, at the time, I didn't know this, but the recruiter hooked me on the idea of setting my hours to work part-time or full time. After receiving several emails, I finally decided to reach out to hear more about the role. The phone conversation assured me that the role was an excellent way to earn extra money and get interviewer experience. I wanted to do it part-time, so I could always stop on my terms if it got too demanding.

Software field salary guide for looking for a new job in 2022

6th February 2022

Are you thinking of switching jobs or moving to a different role altogether in 2022? Knowing what salary to ask for is always tricky since there are a lot of factors at play. But having a rough figure might at least put you in the right ballpark and avoid that mistake of saying yes to an underpaid job. I came by this list of salaries for different roles in the software development domain. From what I can tell the figures in these tables are pretty accurate. Hope you find it helpful!

How to run third party applications securely on the same domain?

30th December 2021

Have you wondered how companies like Heroku, Netlify and Vercel host and run your applications on a single domain? Is that even safe? What if people try to set/get cookies in other people's sub-domain or root domain? I recently ran into this problem at work, and we ended up going down the rabbit hole of how it all works. I was pleasantly surprised by how it all works, so let's talk about it!