Borderless Engineer

  • Home

Declarative Programming vs Imperative Programming

Before we start talking about the differences between these two paradigms, I'd like to to provide you with a few reasons as to why you should understand the differences in the first place. First, one of the most common areas these paradigms come up is when comparing OOP to FP. (FP is declarative, while OOP is often imperative) The differences between FP and OOP is a topic for a different article, so we will not expand on it here. With that being said, understanding the difference between these two paradigms can help you understand the differences between OOP and FP in a better way.
4 min read

Don't heavily rely on primitives!

As your codebase grows, so does the risk of running into issues with extensibility. If you're heavily relying on primitive values, you may be setting yourself up for a maintenance nightmare! Take the following scenario as an example:
3 min read

How JS Works Behind The Scenes - The Engine

### Introduction Have you ever asked yourself “how does this all work behind the scenes?”. I know I have. In the following series of articles we will dive deep into the world of JS, how it works behind the scenes, from the Engine, to concepts like hoisting, execution context, lexical environment and more.
12 min read

How JS Works - Lexical Environment

In the previous article, we talked about [execution context](https://frontendmeta.com/understanding-the-execution-context-in-javascript/), what it is, how it works, and how its created. We explained how execution context is created from an overview, and we didn't get into the steps that happen during the creation. Now we'll start diving into the steps that happen when execution context is created, specifically we'll learn about lexical environment. The more we learn about this, the closer we are to understanding other subjects in JS such as hoisting, and closure very easily.
8 min read

Understanding the Execution Context in JavaScript

The execution context in JavaScript is arguably the most important thing for you to understand, as a firm understanding will give you the basic knowledge you need to comprehend more complex concepts such as hoisting and closure. Before we start it’s important for me to mention that this article focuses on how it works within the language scope and not the engine. While the core principles are the same, implementations may vary in different engines. In a previous article, we discussed [how the JS Engine works](https://frontendmeta.com/how-js-works-behind-the-scenes-the-engine/). If you’re not already familiar, I recommend you start there. Otherwise, let’s jump in and talk about the ‘execution context’!
9 min read

Web Assembly Deep Dive – How it Works, And Is It The Future?

You’ve most likely heard of Web Assembly. Maybe you’ve heard about how game-changing of a technology it is, and maybe you’ve heard about how it’s going to change the web. Is it true? The answer to this question is not as simple as a yes or no, but we can definitely tell a lot as it’s been around for a while now. Since November 2017, Web Assembly has been supported in all major browsers, and even mobile web browsers for iOS and Android. In this article, I’ll explain what Web Assembly is, how it works, what are the advantages, and what are the current uses today.
6 min read

What caused FB, Instagram, WhatsApp, Oculus, and more to be down for over 6 hours

So what exactly caused FB, Instagram, WhatsApp, Oculus, and more to be down for over 6 hours this week? (October 4, 2021) I got curious and went on a small journey to find out, here's what I found. There are some technical terms we first need to explain to get out of the way. So the first part of the post will explain those prerequisite terms, and the second part will explain what actually happened.
4 min read

Why Your Code Needs Abstraction Layers

Abstraction is one of the most important aspects of writing well-designed software. Understanding the underlying concept will give you a system to follow and a clear mental model on how to create good abstractions. Good abstractions reduce complexity and allow developers to make changes to the code with more ease and fewer bugs. But creating abstractions isn’t easy. So how exactly do you do this, and what steps do you need to take?
7 min read