The Art of Code Spelunking: A Software Engineer's Adventure

April 6, 2024

Ready for an adventure? Explore the world of code spelunking - debugging, exploration, and the thrill of discovery in unfamiliar codebases.

Boredom: A Software Engineer's Guide to Finding the Missing Challenge

April 4, 2024

Feeling uninspired as a software engineer? Boredom might be your brain asking for a bigger challenge.

Package Versions and Semantic Versioning in Node.js Projects

April 2, 2024

`npm install next@...` Which command is right for your Next.js project? Learn the differences and choose wisely!

The Art of Autocomplete

April 1, 2024

Autocomplete on or off? Control how browsers pre-fill your web forms with the HTML `autocomplete` attribute.

How Your Unfinished Projects Signal Creativity

March 31, 2024

Unfinished projects? Don't see failure, see your boundless creative potential. It's time for a mindset change.

Understanding Cache-Busting with Time-Based URL Suffixes

March 30, 2024

Have you ever updated an image on your website, only to have users still see the old version? This frustrating issue is caused by browser caching – a normally helpful feature that needs a little nudge when content changes.

Lava Flow Development: The Anti-Pattern That Hardens Your Code

March 18, 2024

Explore the 'lava flow' anti-pattern in software engineering, its consequences, and strategies for refactoring and prevention.

The Perfectionist Trap: My Struggle to Hit "Publish"

March 16, 2024

Does perfectionism stifle your tech articles? Learn how I battled self-doubt, detail obsession, and fear of feedback to finally hit "publish."

Why Not Use Return Type and What to Use Instead

June 17, 2023

Learn why you shouldn't always specify the return type of a function and how to infer the return type of a function. Get the benefit of type inference and type safety.

Understanding the Next.js Robots Metadata Function

June 15, 2023

Learn how to control how search engine crawlers interact with your Next.js website using the `robots` metadata function. This feature allows you to provide more granular control over how search engine crawlers interact with your website.

Run Commands in the New Instance of the Bash Shell

June 12, 2023

Learn how to use the bash -c command to create a new instance of the Bash shell and run scripts or commands from a string.

VS Code - Push or Sync Code after a Successful Commit

June 6, 2023

Trigger push or sync as a secondary action after a successful commit

The Paradox of Speed: Why Going Slower Is the Fastest Way to Develop Software

May 26, 2023

Slow down to speed up! Taking time to plan, test, and iterate can ultimately lead to faster and higher quality software development.

Managing Technical Debt: Importance, Types, and Strategies

May 24, 2023

Technical debt in software development can lead to increased maintenance costs, reduced productivity, and decreased customer satisfaction. Learn how to manage it effectively.

You Are Not Your Code: Separating Your Identity from Your Work

May 23, 2023

As developers, we often identify too closely with our code. But separating our identity from it is crucial for our mental health and well-being. By focusing on the process, embracing failure, and seeking validation from sources outside of work, we can reduce the emotional toll of our work and gain a new perspective on our development process.

Creating Future-Proof Code: Strategies for Adapting to Changing Technologies

May 6, 2023

Creating future-proof code requires developers to stay up-to-date with the latest trends & technologies. Open-source, scalability, modularity, documentation & testing help make code adaptable & flexible to meet changing user & business needs.

How to Password Protect Zip Archives on macOS Using the Terminal

April 13, 2023

Learn how to password protect zip archives on macOS using the Terminal

Using the Terminal to Compress Files on macOS

April 11, 2023

Learn how to use the Terminal on macOS to compress files and folders using the built-in zip command and automate the process with scripts.

Seamlessly Switch between Package Managers with a Shell Function

March 19, 2023

Switch between package managers based on the current working directory.

How to Count the Number of Files Using ls Command

March 11, 2023

The CLI is a powerful tool. Learn basic commands like 'ls', '|', and 'wc' for efficient file and directory interactions.

Slow and Steady Wins the Race: Embracing the Marathon of Learning

February 27, 2023

Learning is a lifelong journey, and it's essential to approach it with a marathon mindset. Consistent effort over time is key to achieving success.

Balancing Speed, Functionality, and Reliability in Software Development

January 15, 2023

Software development requires balancing three core objectives: making it work, making it fast, and making it right. Prioritizing each is key to success.

Avoiding the Pitfalls of Sunken Cost Fallacy in Software Development

September 16, 2022

Avoid the sunken cost fallacy in software development by assessing progress, involving stakeholders, and exploring new opportunities. Don't let emotional or financial investment cloud your judgement and lead to bad decision-making.

Toggle Boolean State Effectively in React

August 18, 2022

Often, we want to toggle a boolean state in our React application. The first choice is probably using an useState hook, but is it the best option?

Stack Data Structure

August 17, 2022

The Stack Data Structure is similar to the Queue; Check the article for more details.

Priority Queue Data Structure

August 16, 2022

To create a Priority Queue, we can leverage a previously created Queue. Want to see more details? Check the article!

Queue Data Structure

August 15, 2022

The queue is one of the easiest Data Structures, so let's implement it from scratch!

Data Structures and Algorithms in TypeScript - What to Expect

August 14, 2022

The new series about Data Structures and Algorithms is here! If you want to know more - check the article.

Create a Large File on macOS

August 8, 2022

Sometimes we need to have one big file of a specific size. Do not look for one; create one!

Fundamentals of Testing in TypeScript #4

November 27, 2021

Testing asynchronous code can be tricky sometimes. We will go through the process of making our testing framework ready for the asynchronous functions.

How to Verify Google Search Console Domain with Vercel

November 26, 2021

Updating DSN records can be scary, but worry not! In this tutorial, we will verify our domain for GSC on Vercel!

How to Insert a Snippet after Pressing a Keyboard Shortcut in VS Code

November 10, 2021

A gentle introduction to the world of the keyboard shortcuts and snippets inside VS Code

How to Set Notifications for macOS Consistently in an Automatic Way

November 5, 2021

Is there any way how we can set notifications automatically and consistently? Let's find out!

How to Merge JSX Component Props in TypeScript

October 26, 2021

How can we merge JSX component props in TypeScript? And how can we do it properly? Let's find out!

Use Ternaries Rather than Logical AND in JSX. Or Not?

October 24, 2021

Is the ternary operator silver bullet for conditional rendering or not?

A Gentle Introduction to Nullish Coalescing Operator

October 11, 2021

The overview of the nullish coalescing logical operator and how to use it.

A Gentle Introduction to ESModules in Node.js

October 8, 2021

Every supported version of Node.js now supports ESModules. Here is a tutorial on how to start using them.

Using faker.js on Next.js API Route

May 4, 2021

A simple tutorial about creating a Next.js API route with dynamic faker.js data.

Fundamentals of Testing in TypeScript #3

April 21, 2021

We will isolate tests by building a simple TypeScript testing framework.

Fundamentals of Testing in TypeScript #2

April 12, 2021

We will add a layer of abstraction to our simple assertion code to make writing test more easily.

How to Host Express App on Vercel

April 3, 2021

A simple tutorial about hosting the Express app on Vercel.

Fundamentals of Testing in TypeScript #1

March 31, 2021

We will build our own version of Jest, so you understand what Jest does and how it works from a fundamental level.

Why I Joined the Blogging for Devs Course

March 7, 2021

Blogging for Devs is a free email course from marvelous Monica Lent, which can help you with the growth of your blog.

JavaScript Currying 4 - Trace

September 17, 2020

A brief introduction to JavaScript Curring - Part 4

JavaScript Currying 3 - Compose

September 15, 2020

A brief introduction to JavaScript Curring - Part 3

JavaScript Currying 2 - Tacit Programming Point-Free Style

September 11, 2020

A brief introduction to JavaScript Curring - Part 2

JavaScript Currying 1

September 4, 2020

A brief introduction to JavaScript Curring - Part 1

JavaScript Scope

September 2, 2020

A brief introduction to JavaScript Scope

JavaScript Closures

August 3, 2020

A brief introduction to JavaScript Closures

Compress Multiple Folders into Individual Zip Files - macOS

November 21, 2018

Quick tip about compressing multiple folders into individual zip files

Copy a String Representation of the Specified Object to the Clipboard with Chrome Devtools

November 12, 2018

Quick tip how to copy a string representation of the specified object to the clipboard with Chrome DevTools

Custom Web Search with Alfred on Your Mac

October 20, 2018

You can create a custom web search with Alfred (Spotlight on steroid) without a Powerpack upgrade.