I have always enjoyed teaching people how to write software. And teaching people how to write software that runs in the cloud hits two passions of mine.
This semester I am a guest lecturer at the University of Nebraska – Lincoln, teaching a 400-level course on distributed cloud systems. I have taught courses at UNL before, but it is nice to be back.
I structured the course into three parts. The first part focuses on software design from a fundamental perspective. This part is not necessarily cloud-focused, but it lays the groundwork for the rest of the course.
The second part deals with software design in the cloud, where we cover many services and patterns used in cloud development.
The third part involves students completing a few exercises where they create software products running in the cloud. This part is unique and is the most industry-focused. I hope to challenge the students by forcing them to deal with, in addition to typical design challenges, wicked problems (problems without easy-to-define correct answers).
There are three things I want for the students by the end of the semester:
- I want them better prepared for job interview questions. While this isn’t the goal of the course, I think I’m uniquely qualified to make sure they are aware of the current industry buzzwords and possible questions they’ll encounter.
- I want them equipped with real design experience. They will have to go from interview to design, which doesn’t get covered very much in education.
- I hope they have gained some knowledge and experience with cloud technologies, such as when to use CosmosDB.
I like to think I have a unique perspective from my years of helping launch many cloud-based software products. Along the way, I have had many successes and a few missteps, both of which I draw on to help paint a more vibrant picture of cloud development.
Teaching this course at UNL is also great for me. By forcing me to structure my thoughts into a coherent set of presentations, it has prepared me to have better conversations in the industry about developing cloud-based software systems. And as a bonus, my course prep has allowed me to go more in-depth on some technologies I might not have otherwise made time to try out.
To the cloud…