Better Programming

Advice for programmers.

Follow publication

Member-only story

Modern Software Engineering — Part 1: System Design

Dean Michael Berris
Better Programming
Published in
15 min readJun 18, 2023
Photo by Martin Adams on Unsplash

Growing up in the late ’80s and early ’90s, my exposure to computers was limited to almost exclusively gaming consoles (I considered the Atari 800 and Commodore 64 gaming computers because I only ever saw games being run on them) or the early x86 systems. It wasn’t until I got to university in the 2000s that I got a hold of a Sun Microsystems SPARC workstation, UNIX, and Slackware Linux that I could install on my Intel 486 machine at home.

Back then, software development was mostly about software that ran locally on your machine or, if you had access to it, a shared time computer with significantly more processing power available to you to… do business-relevant things. At university, I remember hearing about a program used by computer scientists that needed a multicore processor to generate thousands of students' schedules; it took weeks to generate and print the schedules. Up to this day, I’m still not sure which took longer — the running of the program or the printing to paper.

Today, the majority of software being developed either runs on the cloud, runs on a device that requires access to the cloud, or powers other software that also runs on the cloud. It’s very rare to be working on a software system that…

Create an account to read the full story.

The author made this story available to Medium members only.
If you’re new to Medium, create a new account to read this story on us.

Or, continue in mobile web

Already have an account? Sign in

Dean Michael Berris
Dean Michael Berris

Written by Dean Michael Berris

Principal Software Engineer at Microsoft by profession, writer by passion; thoughts are my own.

Write a response