Welcome to my monthly newsletter. I'm an experienced software engineer, a tech mentor to product managers, and the founder of Skiplevel. Every month I share:
- technical skills and knowledge you should know
- tips for working with and collaborating with dev teams
- tips for non-engineers struggling with confidence in technology
- tips for managers looking to build a more technically literate team
Ask me anything (yep, anything) and I'll cover it in an upcoming newsletter issue!
Step into a world of Product-Led Geekiness!
Expect product and growth frameworks, colour commentary, mental models, hot takes and tales from a 20+ year product career - all delivered with candour and an occasional splash of British humour.
Guide to Cloud & Serverless Computing 101 for Product Managers
The first step to building software applications is deciding how to architect the system. Infrastructure decisions are a big piece of this puzzle—where do we “host” the app? How do we scale it? What’s easiest to implement and maintain? These are just a few of the questions your engineering team must answer as part of building that new feature or product you’re asking for as the product manager.
Luckily, computing trends and software infrastructure solutions have come a long way in the past two decades. Along with these changes came a whole new suite of solutions for how we host, scale, architect, build, and maintain software. Specifically, this new suite of solutions come in the form of cloud and serverless computing.
So why this topic and why is it important for you as a product manager? For many reasons, one of which is that computing trends are an important part of software development, especially modern software development, and you want to be able to converse on the topic and understand its core concepts.
In this article, we’ll explore the historical computing trends starting with “on-premise” hosting, moving into cloud computing and finally serverless computing. I’ll explain what the differences are between them and how these trends have changed the way we build software in modern times.
All software are hosted on physical machines called “servers”. Early internet companies hosted their websites on servers located on-site, hence the term “on-premise” hosting. The companies were responsible for maintaining and managing these machines. This meant not only were they responsible for building the website and what goes inside of it (i.e. operating system), they were also responsible for the hardware and physical internet infrastructure. Managing hardware is costly in a myriad of ways including financially, time, physical effort, and complexity. Imagine having to manually install and uninstall machines whenever traffic goes up and down so the company can save on costs since keeping servers running can be expensive!
Hence you can imagine what a big hamper to scaling managing physical infrastructure is. It wasn’t until the advent of cloud computing that the internet really exploded and we see the rich web experiences that we see today.
The first big shift in computing is cloud computing.
Cloud computing can be a confusing term but at its core, cloud computing just means instead of managing physical infrastructure yourself, someone else—namely cloud providers—manage your servers and the computing needs of your application for you.
Gone are the days of having to manually scale physical machines. Cloud providers like Amazon Web Services, Google Cloud, and Microsoft Azure can automatically detect shifts in your application’s traffic needs and within minutes “provision” (set up or make available) new hosts to serve your app. Cloud computing also offer many security protocols that otherwise is difficult to set up and maintain.
This is a turning point for the internet because it means companies no longer need to manage and maintain physical infrastructure! This frees resources up to innovate and develop the beautiful applications and interfaces we enjoy today.
Cloud companies offer a myriad of tools and solutions for companies. Terms like “AWS Cloud” or “Oracle Cloud Infrastructure” refer to Amazon Web Services’ (AWS) collection of data warehouses and special tools they offer to host, run, deploy, and scale their application. The same goes for Oracle Cloud Infrastructure and the many cloud providers out there.
Here are some popular cloud products your engineering team may be using:
- AWS EC2:
- Heroku Dynos
- Google Compute Engine
- Digital Ocean App Platform
- Azure Virtual Machines
The second big shift in computing is serverless computing.
Serverless computing is actually a type of cloud computing since they both remove the need to manage hardware. But serverless takes the automation trend of cloud computing a few steps further by...
Got a question? Ask me anything & I'll cover it in an upcoming issue!
This month's Tech Term you should know:
A Single Page App is a modern type of app that does not require page reloading during use. This is different from traditional websites that require reloading a page whenever new data is loaded. SPAs are popular since there's no wait time due to page reloads, making them faster and a more superior user experience.
Example of SPAs:
Gmail, Facebook, Airbnb, Netflix, PayPal, Google Maps
What you need to know about SPAs as a PM:
Single Page Applications are undoubtedly a faster and better user experience, but there are also lots of drawbacks that require you and your engineering team to make intentional decisions about.
Here are a few of the cons:
- Compared to the traditional application, SPA is less secure. Due to Cross-Site Scripting (XSS), it enables attackers to inject client-side scripts into the web application by other users.
Another big consideration is your product timeline since building single page applications overall takes longer and is more complex to build compared to traditional apps. Still, it's worth it to have a conversation with your dev team about whether the pros outweigh the cons and how much/if any extra development time is needed to build an SPA vs. a traditional app.
I need your help! How can I improve this newsletter?
I put in a lot of time and effort providing you with the best technical literacy content, and I need your help. Tell me how I can improve this newsletter.
Want to feel more confident in your technical skills?
Missed the mid-month PM & Tech Jobs Newsletter?
Looking for a new PM role? My team and I decided to create a shorter newsletter issued twice a month with a list product role job listings from senior to entry-level roles.