If I tell you “I’m a full-stack developer” what kind of question would you ask me next?

If you’d ask me “Oh! What language are you coding in?” then this article will be perfect for you.

If, on the other hand, you ask me “Which stack are you most comfortable in?” or even “Which tech you mostly use for your back-end?” then I assume what I about to explain will seem obvious to you (and if not just let me know!).

When people talk about Full-Stack developers, they do not often know exactly what this means. …

We do it dozens if not hundreds of times. We surf through the web and barely know what happens in the background so that when to type www.netflix.com you can watch your favorite movies and shows.

In this article, we will explore the main steps that occur behind the scenes, starting from the point we press Enter to the point the desired website is loaded and appears on our screen.

Before we even begin to scrape the surface of this topic, let’s quickly define four main concepts: servers, web servers, client-server models, and IP addresses.

What is a server?

A server is a special…

Imagine you’re off for the weekend and forgot to water your plants before leaving. Instead of traveling all the way back home, what if you could simply take your smartphone, know the humidity levels of your different plants, and water those in need by just pressing a button?

Well, that’s a precise application for what we call the Internet Of Things (IoT).

What is IoT?

Up until recently, the internet was mainly accessed by computers and mobile phones. But now with IoT, a wide range of appliances can be connected to the Internet and thus controlled remotely. This can be done with your…

Because an image is worth 1000 words, let’s go over what recursion is, how it works and how it is handled by the stack.


The definition of recursion is very straight forward:

A recursive function is a function that calls itself.

Here is an example:

float _pow_recursion(float x, float y)
if (y == 0)
return (1);
if (y < 0)
return (_pow_recursion(x, y + 1) / x);

return (_pow_recursion(x, y - 1) * x);

Simply put, this function calls itself to find the x to the power of y with the following logic:

Python ‘variables’, at first, seem to have superpowers! You can assign an int, a float, a list, a dict… But that what you might want to call a ‘variable’ isn’t really one and that’s the magic of python!

In python, everything is an object, and the so-called ‘variables’ are more like a label with a reference to an object. And those objects have particular characteristics that any newcomer must learn about.


What does immutable and mutable mean? Well:

Simply placed, after it is made, a mutable object can be altered, while an immutable object can’t.

When you initiate an object…

As a software engineer, you often go about solving big problems by breaking them down into several smaller problems. Most of the time, you want to write one function to solve one problem. For example, you can create a function called _strlen() to calculate the length of a string.

This will be the kind of function you’ll use a thousand times while coding. It’s OK to rewrite them each time you start a new program. But it’s better if you could save yourself the hassle, and that’s what libraries are all about: making functions reusable in multiple programs.

In this…

C static libraries as an essential tool for software engineers. Is this article we will covert the most important things you need to know about then:

  • Why use libraries
  • How they work
  • How to create them
  • How to use them

Why use libraries

A library is a file containing several object files, that can be used as a single entity in a linking phase of a program — source.

If you’re not familiar with how C programs are compiled have a look a this first.

In software engineering, you tend to break a large problem into several little problems and then solve a…

What happens when you type “gcc main.c”? | LaptrinhX

C is a low-level programming language meaning that by itself it cannot be read by the computer. It needs to be compiled with a compiler (gcc for example) in order to be “translated” into code that your computer will understand (i.e. binary). In this article, we will explain the process of compiling C programs.

The compiler components

The compiler is not a single module compiler, it has four big modules and can be simply described as it follows:

In this article, we’re going to go over the main difference between hard links vs. symbolic links and see how both can be used.

Let’s talk about iNodes first

In order to understand hard and symbolic links, it is key to understand what an iNode is.

iNodes are data structures that contain information about files in Unix file systems that are created when a file system is created.

Each file has an iNode and is identified by an iNode number (i-number) in the file system where it resides:

This a very basic explanation of a commonly used command in your computer terminal. If you’re a complete beginner, after reading this article you should be able to understand perfectly what “ls *.c” does and even some other commands too 🤘.

What is a computer terminal?

When you open it and type a few commands, it really looks like your starting to hack into someone's computer (at least that’s how I felt the first time). Sadly, it isn’t the case…

I see it as a way to manage your computer’s files and folders without a mouse and a “command” such as ls *.c is an…

Yago Martinez-Falero Hein

👨🏼‍💻 Entrepreneur and software engeneer // Former employee at TheFamily.co // 👨🏼‍🎓 Holberton School & Reverse Origins

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store