Software Systems Design (FIRST DRAFT)

Version 0.1

About the author

I’m a professor in the Computer Science Department at NC State University in Raleigh, NC, USA.

In the photo, I’m on stage at Motorco, a club in Durham, NC. I’ve lived in Durham since the early 2000’s, when I began working in what IBM then called its Software Group, which has a large development organization in Research Triangle Park.

Photo of the author on stage holding 
a microphone


Prior to joining NC State, I spent 20+ years in industry. At IBM, I began in the research division and then moved into a product development organization. As a Senior Technical Staff Member, I had roles ranging from Chief Architect of several products to leading international standards and open source projects.

Earlier in my career, I was a professor in the EECS Department at Tulane University. I had earned a Ph.D. in Computer Science at Cornell. Before that, I developed software professionally for companies in New Jersey, New York, and Connecticut.

All of these experiences shaped my views on software system design. The material contained here is expression of those views, informed by many years of building small, medium, and large systems. Contributions from students at NC State improved and expanded my original notes for this book.

My personal blog is mostly about technical topics. I tend to write long form pieces just a few times a year, though I envy writers who can dash off short but interesting pieces with frequency.

Last updated on 3 Jan 2024
 Edit on GitLab