What’s in Your Technology Stack?

The first time I heard the term “stack” in the context of software, I immediately pictured my regular Sunday morning breakfast which I learned to make from scratch (recipe below).

The first time I heard the term “stack” in the context of software, I immediately pictured my regular Sunday morning breakfast which I learned to make from scratch (recipe below).

Pancake Stack.

Clearly, I was missing the point, but still wondered where the term “stack” came from and what exactly it meant in the context of software.  Most of us are familiar with the smoke stacks, or stacks of books, which conjure up the image of an orderly vertical pile.  It turns out that software is also structured in orderly layers with the lowest layers interacting directly with the computer hardware and the top layers exposed to the users.

Software Stack

The top layers, sometimes called the “Front End”, consist of the web browsers and servers which communicate via Hypertext Markup Language (HTML) and Cascading Style Sheets (CSS) and which comprise the primary user interface for all web applications.  The middle layers, sometimes called the “Back End” consist of the databases and programming languages which manage the data and control the behavior of the application.  The bottom layers are often considered “Infrastructure” because they are so closely tied to the underlying hardware – think roads, bridges, tunnels, etc….

Now that you can picture a technology stack, the only thing you need to know to be nearly fluent in technobabble is which versions of each layer work well together and therefore define a specific software stack such as WISA/.NET, LAMP or LYME.

Common software stacks.

Since these acronyms get confusing, even for techies, and because some layers such as the operating system and web servers work across several stacks, many software developers just refer to the programming language and/or framework to define a software stack.  Some of the most common of these languages and some paired frameworks (in parentheses) are: C# (.NET), Java (Spring), Python (Django), PHP (Codeigniter), and Erlang (Nitrogen).

If your head is now spinning from too many acronyms, you may want to make your own stack of fluffy whole wheat buttermilk pancakes (shown above) from scratch:

Ingredients:

  •       3/4 cup milk
  •       2 tablespoons white vinegar
  •       1 cup all-purpose whole wheat flour
  •       2 tablespoons white sugar
  •       1 teaspoon baking powder
  •       1/2 teaspoon baking soda
  •       1/2 teaspoon salt
  •       1 egg
  •       2 tablespoons butter, melted
  •       cooking spray
  •       greek yogurt (optional topping)
  •       fresh berried (optional topping)
  •       maple syrup (optional topping)

 

Instructions:

  1. Combine milk with vinegar in a medium bowl and set aside for 5 minutes to “sour”.
  2. Combine flour, sugar, baking powder, baking soda, and salt in a large mixing bowl. Whisk egg and butter into “soured” milk. Pour the flour mixture into the wet ingredients and whisk until lumps are gone.
  3. Heat a large skillet over medium heat, and coat with cooking spray. Pour 1/4 cups of batter onto the skillet, and cook until bubbles appear on the surface. Flip with a spatula, and cook until browned on the other side.
  4. Wash, cut and microwave berries to create a hot sweet sauce.  Add syrup to sweeten further.  Spread each pancake with Greek yogurt and top with fruit sauce, layering to create a stack.