Past Meetup

Diego Ongaro on The criteria to be used in decomposing systems into modules

This Meetup is past

180 people went

Location image of event venue



Eitan Adler ( on Program development by stepwise refinement ( )

Eitan's Bio

Eitan Adler is software engineer with a passion for distributed systems, security, and open source software. Currently employed by Twitter he spends his days improving developer tooling to make the lives of other software engineers easier.

Main Talk

Diego Ongaro ( on "On the criteria to be used in decomposing systems into modules"

Shorter CACM version:

Tech report with additional detail:

Designing good systems requires finding the right abstractions. You probably have some intuition for doing this already, but explaining it or convincing someone of the difference between a good modularization and a bad one can be difficult. This 1971 paper by David Parnas argues for using information-hiding as the basis for evaluating modularizations. It's a simple but surprisingly powerful idea, and one that we can still apply today in contexts ranging from small scripts all the way up to distributed software architecture.

Diego's Bio

Diego received his PhD from Stanford in 2014 for his work on Raft, a consensus algorithm designed for understandability. His advisor, John Ousterhout, taught Diego to write meatier code without little stepping stones and referred to Parnas' paper all too often. Diego now works in Compute Infrastructure at Salesforce, where he does some Raft stuff, helps out with various internal designs, and tries to develop and apply (, a design tool for distributed systems.

Meeting mechanics

Doors open at 6:30 pm; the presentation will begin at 7:00 pm; and, yes, there will be food.

After the paper is presented, we will open up the floor for discussion and questions then we will head over to the bar!


PWL SF strictly adheres to the Code of Conduct ( set forth by all PWL charters.