Recently, I had an interesting conversation with a machine learning engineer.
He gave an appealing analog to “how do you keep up your own growth?”
Personal development is like training an Machine Learning model.
Our behaviors are outputs of this model we've trained over time.
We can work on the data quality and include more features. It means reading more great books, and working with talented people.
We can change the model structure. It means adopting new mindset, challenging assumptions, and refining our frameworks.
This reminds me another favorite analogy: “a team is a distributed system”.
A team presents a unified interface to the outside. But internally, multiple engineers are working on different components in the system, communicating, coordinating, and resolving dependencies.
The principles we use to scale software systems can also help scale our teams—clear communication channels, fault-tolerance, redundancy, and distributed decision-making.
Analogs and metaphors help us connect what is new to what we know.
Do you recall one in your domain?
In software engineering, we reconstruct the real world digitally. And in doing so, we inevitably learn about reality itself.
Look around you. Which patterns from your daily life could inspire your system designs? And how might your engineering principles guide your real-life decisions?
After all, when you're scaling a distributed system, aren't you also learning how to scale yourself—and the people around you?