Sign in

Data engineering, analytics, and AI are talked about constantly but surprisingly few companies have managed to leverage them.

At my current job (we’re hiring), I work with a number of companies that are working to become more data-driven. It’s hard work. Not just the technical aspects, but the cultural changes that are either a pre-requisite or a result of data-driven decision making.

Photo by Jessica Johnston on Unsplash

This article is for those busy studying for one of the AWS Architect certifications, either Associate or Professional. This one focuses on the key things you need to know about S3.

Why did Amazon create S3?

I think everyone should understand the WHY of things. Before cloud services like S3 building applications that needed substantial storage was quite complicated. You either attached a very large number of drives to a physical server or you had to work with IT to setup NAS. Neither was very fun, I promise.

So S3 was a huge advancement because it has:

  • Unlimited storage.
  • No file system and thus no…

Anyone in tech leadership knows that data engineering and data science are both extremely in-demand skillsets. So there are two options: go through the difficult and time-consuming process of hiring data engineers away from other firms, or taking talented and interested engineers that are already in-house and training them.

I’m working on the second option, which is exciting because it means I get to dive into these technologies myself.

Critical Skills

Whenever you want to train people in something new, you want to pay close attention to the 80/20 rule. …

What is EC2? EC2 stands for “Elastic Compute Cloud”. To understand the value of EC2, you have to understand what existed before this service existed.

In the past, companies that hosted software had to buy or rent either physical servers or virtual machines running on a physical server. In either case, companies had to plan well in advance the capacity they would need. Setting up a physical server and plugging it into the network, administering it, etc, was a time-consuming process. Virtual machines were faster but limited in terms of performance.

EC2 allows companies to provision new computing resources and…

Even junior developers need to gain familiarity with continuous integration and delivery because these concepts sit at the heart of modern development. These processes sit at the heart because they bind the work of a team of developers together. Many new developers coming from university (or being self-taught) have not really had the experience of working on a large codebase as part of a team. As a result, even if they have used these platforms, they may not really understand the point.

Let’s look at how these concepts work with the growth of a team. This is a fictional company…

“The machines are coming”. The idea that AI and automation will be destroying vast numbers of jobs has spread throughout the media the last few years. The jobs of lawyers are being automated, as is much of the job of doctors. It’s not happening as fast as people hoped or feared, but it is happening. It’s only natural that software engineers consider their own jobs.

Yes, software engineering will be automated. But that’s already true.

Take a deep breath and ask yourself the last time you implemented an HTTP server. How long ago was that? Have you ever done it? No?

Very few people bother to implement an HTTP server…

This is the second in a series on data structures re-implemented in Javascript. We’re going to look at the Stack structure. The stack is critical in computer science because the stack data structure is actually used extensively by the programming language itself. Every method or function call you make in javascript is placed on a stack (referred to as THE stack) which the language runtime uses to manage program execution.

What is a stack?

If you’ve ever stacked books, you know how a stack works. The first book goes on the bottom and then each subsequent book goes on top. …

Many new developers come to programming through Javascript because it is ubiquitous on the web and can be used for basically anything. As a high-level scripting language, it has many built-in functions and available libraries that mean many developers never need to dive into special data structures.

It’s also the entry point for a lot of self-taught developers who have not been exposed to computer science topics like data structures. This included me.

Why re-implement linked lists?

Linked lists are one of the simplest data structures and many advanced data structures use similar techniques but more complex behavior. This is the easiest starting point.


World traveling entrepreneur, engineer, artist, and writer. Dedicated to helping people live their best life. Buy me a coffee:

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