The next time you are sitting at a table with someone new to your field, ask yourself: How can you encourage them?
This is a story about encouragement. Every time I use the word "I", you should think "I as in me, not I as in the author".
In 2003, I was invited to my first OpenBSD Hackathon. Way before I was into networking, I was porting software to my favourite OS. Specifically, I was porting games.
At that time, porters weren't really considered doing "real work". We weren't writing software from scratch. We couldn't say "this code is crap, let's do it correctly". We were taking software that someone else wrote, and massaging it to run on OpenBSD. If we were lucky, our patches would be accepted at the upstream project, so the next update would be easier. But still, the other porters were friendly and we worked together to solve important problems.
On the first night most of the hackathon attendees end up at the bar for food and beer, and I'm sitting next to Theo de Raadt, the founder of OpenBSD. At some point during the evening, he's telling me about all of these "crazy" ideas he has about randomising libraries, and protections that can be done in ld.so. (ld.so is the part of the OS that loads the libraries your program needs. It's, uh, kinda important.) Theo is encouraging me to help implement some of these ideas! At some point I tell Theo "I'm just a porter, I don't know C."
Theo responds with "It isn't hard, I'll have Dale (Rahn) show you how ld.so works, and you can do it." I was hoping that all of this would be forgotten by the next day, but sure enough Dale comes by. "Hey, are you Peter? Theo wanted me to show you how ld.so works." Dale spends an hour or two showing me how it works, the code structure, and how to recover in case of failure.
At first I had lots of failures. Then more failures. And even more failures. Once, I broke my machine so badly I had to reinstall it. I learned a lot about how an OS works during this. But, I eventually started doing changes without it breaking. And some even did what I wanted! By the end of the hackathon I had came up with a useful patch, that was committed as part of a larger change.
I was a nobody. With some encouragement, enough liquid courage to override my imposter syndrome, and a few hours of mentoring, I'm now doing big projects. The next time you're sitting at a table with someone new to your field, ask yourself: How can you encourage them? You just might make the world better.
Thank you Dale. And thank you Theo.
The article was originally published here as "Historical: My first OpenBSD Hackathon".