Sandi Metz came to the Flatiron School on Tuesday, June 11, 2013. We were privileged to hear her talk with the group and answer questions very candidly. She spoke from 32 years of experience as a programmer. She was earnest and encouraging and left the class with much to admire and think about. The following are just a few of the topics she touched upon.
How Sandi got started as a programmer
Sandi Metz started by going to technical school. She considered architecture but was pointed in the direction of “data processing” which meant “computer programming”. It was 1979 and a friend told her “I think you might be good at data processing”. She decided to try it, finding herself late at night programming fortran on punch cards. She was 19 at the time.
She was one of the first Rails users
What made Rails special
Before frameworks like Rails, programmers would write massive XML files that would tell the application how to interact with the database. This is a nightmare to maintain and is a problem Rails solved. Rails uses ActiveRecord, which allows the application to intuitively interact with the data structure based on the class specifications. This makes Rails more intuitive and easier to work with. ActiveRecord made Rails stand-out for Sandi in 2006, even though it was an unproven framework.
At the time, Sandi worked for Duke University, Sandi decided to try rails because she wanted a dynamic language that was object-oriented. She heard Dave Thomas speak and decided to switch her mission-critical application from java to Ruby on Rails. She had no deployment plan and was saved by Zed Shaw’s release of Mongrel — the first web server for Ruby web applications. Sandi spoke about how Zed Shaw stayed up all night to help her resolve a problem in production to meet her deadline. (It was an https bug!) She says, “He gave me the shirt of his back in a time when I was desperate, and I will never forget it.”
Technology trends to watch for
She spoke briefly about two trends in programming that she is very excited about: 1. Multiple-processing: This seems to be happening in functional languages, like pascal. It is something that she is curious to see if it will be implemented somehow in Rails. 2. Micro-service architectures. This refers to a shift from writing large, separate and entirely unrelated applications, to writing small applications with the ability to communicate with each other. These would be in the cloud.
Sandi was extremely humble and open in her demeanor. She encouraged everyone in the class to not take failure as a moral failure, but simply as a call to action to keep practicing and keep learning. She disclosed the areas where she still wants to improve, and advocated always feeling slightly stretched to keep learning and growing. She said, “Don’t worry about being afraid. Don’t feel like you are not good because you are afraid. Fear is a motivating thing. Embrace it.”
She referenced and recommended the book So Good They Can’t Ignore You. She mentioned the concept of “deliberate practice”, and not being afraid to fail. The key is to practice what you are uncomfortable with.
My personal reflection
Sandi is an inspiring down-to-earth figure. I think that the young generations are not frequently well-informed about the history of the industry. Having Sandi recount the experience living through these changes is definitely valuable both practically and from a human perspective. Anyone who develops skill in any field will at some point need to take responsibility for trying to give back to the community and trying to shape it for the better — Sandi sets a great example.