Software.Land

    Vertical vs Horizontal Scaling

    November 19, 2023

    Scaling is the process of growing or shrinking capacity. It primarily happens in two directions: horizontally or vertically. There are different flavors which we explore in this post.

    Sharding

    October 30, 2023

    The concept of vertical vs horizontal scaling doesn't only exist with application servers. It exists with database servers as well, and we explore that in this post.

    Rate Limiting

    October 15, 2023

    Rate-limiting serves as an important mechanism in more than just distributed computing, but that is the focus of this blog post.

    Retries (Retry Patterns)

    September 17, 2023

    Retries are exactly what it sounds like: retrying an operation after a failure. This blog post is a short intro into the concept.

    RBAC (Role Based Access Control)

    August 31, 2023

    Role-Based Access Control is a common mechanism for assigning a set of privileges to users of an application via roles.

    Staying Ahead of the AI Revolution

    July 22, 2023

    People adapted to the earlier industrial revolutions. The tools for adapting to the AI Revolution are available at our fingertips.

    Encapsulation

    June 30, 2023

    Encapsulation is a concept that exists at all levels of systems -- from a global scope down to the scope of application constructs. It exists in both physical and digital contexts. This post breaks it down.

    What is Code?

    June 04, 2023

    Code is everywhere. You're made of it. It exists in biology, literature, and certainly computer science.

    Microservices vs Monolithic

    May 22, 2023

    There exists a spectrum for the granularity of services in a distributed system from nano-services to a single monolith. In this post, we explore the trade-offs.

    What is OOP (Object-Oriented Programming)?

    April 29, 2023

    Also known as Object-Oriented Design, it is a paradigm for writing code where data and behavior are encapsulated by objects that leverage polymorphism.

    What is a Data Structure?

    March 26, 2023

    There's something special about data structures. Everything in the world can be modeled by some type or combination of data structures. It really makes you wonder.

    What is Serverless?

    March 05, 2023

    The term "Serverless" is actually a misnomer. Your code definitely is running on servers, but their management is so removed from the developer, that it feels "Serverless".

    What is Kubernetes?

    February 21, 2023

    Kubernetes is a container orchestration system that has exploded in popularity over the past few years. This trend is unlikely to stop.

    What is a Container?

    February 06, 2023

    The term 'container' has one prevalent usage in the context of containerized environments, which are similar to virtual machines. There is a more generic, but seldom addressed, use of the term that we also explore.

    What is the Cloud?

    January 30, 2023

    'The Cloud' is a very common term used today that may invoke imagery that is not based in reality for many people. This post aims to clarify its true meaning.

    Software Engineer vs Software Developer

    January 21, 2023

    This is a fairly innocuous question on the surface, but once you dive deeper, it becomes complicated. Is there no difference between the two terms? Is the difference in the scope of work? Or, is it about the credentials?

    Testing in Software Engineering

    January 15, 2023

    The number of different testing methodologies in software is endless. The timing of introducing new forms of testing is difficult to get right. This post attempts to provide a birds-eye view on these topics.

    Static vs Dynamic Websites

    January 03, 2023

    Historically, websites are dynamic where the HTML is rendered on a server, even if the content is static. With static websites, that content can be rendered beforehand and delivered to the user all at once on page load.

    About this Blog

    November 06, 2022

    This post describes Software.Land's mission.

    REST API vs GraphQL

    October 05, 2022

    GraphQL and REST APIs are two of the most popular network APIs and in this blog post, we'll explore the differences.

    Throughput vs Latency

    July 24, 2022

    Low latency is easy to achieve if high throughput is not a requirement. Similarly, high throughput is easy to achieve if low latency is not a requirement. If both are a requirement, then complexity must increase to alleviate inherent structural bottlenecks.

    Why Learn to Code?

    May 08, 2022

    In this post, we explore different considerations when asking if learning to code is an effective use of time.

    High-Level vs Low-Level

    March 29, 2022

    What does it mean when someone is describing something at a high-level vs a low-level? Let's explore it in the context of software.

    Which Programming Language to Start?

    February 22, 2022

    A common first question when someone dips their toes into the world of software is 'which programming language should I try to learn first?'

    Previous Page Token for Cursor Pagination

    December 06, 2021

    We dive into previous page tokens for Cursor Pagination and examine their time complexity. We also touch on why the intuitive approach doesn't work.

    Best Learn to Code Platforms

    June 01, 2020

    This post breaks down the differences between the top 'learn to code' platforms based on 6 categories.

    Udacity Review

    May 27, 2020

    Review of Udacity based on 6 comparison categories: cost, teacher feedback, range of tools, computer science, real-world projects, and beginner environments.

    Treehouse Review

    May 27, 2020

    Review of Treehouse based on 6 comparison categories: cost, teacher feedback, range of tools, computer science, real-world projects, and beginner environments.

    Udemy Review

    May 27, 2020

    Review of Udemy based on 6 comparison categories: cost, teacher feedback, range of tools, computer science, real-world projects, and beginner environments.

    PluralSight Review

    May 27, 2020

    Review of PluralSight based on 6 comparison categories: cost, teacher feedback, range of tools, computer science, real-world projects, and beginner environments.

    LinkedIn Learning Review

    May 27, 2020

    Review of LinkedIn Learning based on 6 comparison categories: cost, teacher feedback, range of tools, computer science, real-world projects, and beginner environments.

    Khan Academy Review

    May 27, 2020

    Review of Khan Academy based on 6 comparison categories: cost, teacher feedback, range of tools, computer science, real-world projects, and beginner environments.

    freeCodeCamp Review

    May 27, 2020

    Review of freeCodeCamp based on 6 comparison categories: cost, teacher feedback, range of tools, computer science, real-world projects, and beginner environments.

    edX Review

    May 27, 2020

    Review of edX based on 6 comparison categories: cost, teacher feedback, range of tools, computer science, real-world projects, and beginner environments.

    CodeCademy Review

    May 27, 2020

    Review of CodeCademy based on 6 comparison categories: cost, teacher feedback, range of tools, computer science, real-world projects, and beginner environments.

    Coursera Review

    May 27, 2020

    Review of Coursera based on 6 comparison categories: cost, teacher feedback, range of difficulties, range of tools, computer science, real-world projects, and beginner environments.

    What is an Interface?

    March 05, 2020

    Software (and all technology) is just tools connected to other tools. Interfaces are the points of connection and they come in different shapes and sizes.

    What is an API?

    February 10, 2020

    APIs can be found all over software. This post quickly describes APIs in an overview, presents examples, and further elaborates in a closer look.

    Glossary

    February 10, 2020

    Concise definitions of common terms in software. This post is intended as reference.


    Authors

    Sam Malayek

    Sam Malayek works in Vancouver for Amazon Web Services, and uses this space to fill in a few gaps. Opinions are his own.