My first real job as a developer was for a small company called eTree back in 1998. I was excited and anxious to finally get a chance at writing commercial software and was eager to learn just about anything. There were plenty of technical challenges (firmware, device drivers and lots of C/C++ work) but the most valuable experience from the job, to this day; was having my first mentor – Joe.
I had no idea at the time that the lessons I would learn in just those 5 years would stick with me on a daily basis throughout the course of my career. Over time, I found myself leveraging those experiences and having the privilege of passing them on to others in a positive manner. Consequently, I strongly believe that having the right mentor early on in one’s career can have a powerful and positive impact that is simply invaluable.
Having a great mentor only gets you half way there. You need to do your part to be receptive, humble and work hard. At first, I didn’t even realize that Joe was my mentor. There wasn’t anything formal about it, in fact he never mentioned it. Instead, he patiently and methodically guided me along with the best intentions of making me a solid engineer. I looked up to him and tried to take in as much as I could. With complete trust and the understanding that I wasn’t owed anything, I was mindful of the privilege that was presented before me and tried to make the most of it.
I’d like to pass on some of the lessons I have learned from Joe over those years that still resonate with me today:
- Take pride in your work. This is an obvious one but sometimes you have to state it to make it happen. There were several occasions where I rushed to deliver some code and didn’t put forth my best effort. It eventually caught up to me with several bugs and in some cases, rewrites of a few modules. When I was asked if I was proud of what I had initially delivered, the honest answer was no. Joe made it really simple – take pride in your work, always.
- Don’t sacrifice quality. The quality of what you deliver is a reflection of yourself. In many ways, this naturally can be paired with pride. Joe introduced me to Dr. Deming: The American Who Taught the Japanese About Quality. I was familiarized with the notion of throwing something over the wall and the negative impact it can have to the quality of not only what you are delivering but also team synergy.
- Take responsibility and ownership. If you are a part of a team, then you are responsible for the success of the project, regardless of what pieces you worked on. You succeed and fail together and your teammates will respect you if you never leave their side. Discounting a bug by saying “I didn’t write that”, almost got me fired. I never shifted blame again (even if it wasn’t my code).
- Lead by example. Probably the most overused saying when talking about leadership. Sadly, it is probably the one that is least employed and understood. Towards the end of my tenure at eTree, I was able to take a trip to Japan with Joe to work on a mission critical project for our main client. I was excited to see Japan and was looking forward to some sight-seeing. Instead, we ended up working 12-16 hour days and not seeing much daylight in order to meet a tight deadline. I later learned that this was routine for Joe when he would visit our client in Japan. On the long flight home I asked him why he took on so much responsibility. He gave me an answer that I would never forget – he said that he would never ask someone to do anything he wouldn’t do himself. That trip instilled in me a work ethic that I believe has benefitted me over the years.
- Pick your battles. This was more of a personal lesson that I was able to translate to all aspects of my life (career, family, etc.). Joe once told me a story about how his wife would make the best banana bread he had ever had. When they were first married, she would make the bread every week (or very often). Eventually, he didn’t want any more banana bread or just needed a break from it and made the costly mistake of verbalizing it – saying something like “not banana bread again!” The payback was years without his favorite banana bread. It was a little extreme but the lesson was pretty clear.
- Keep it simple. Antoine de Saint-Exupéry said “Perfection is achieved when there is nothing left to take away.” While this notion is normally associated with the topic of design, it’s just as applicable to the art of writing software. Crafting simple, clean and maintainable code requires discipline. Instead of attempting to write something for everything, one of the quotes I remember most from Joe was that “reuse is a function of good design.”
- Give back. Joe gave back to his community, tirelessly and many times without any recognition. He would donate his time as a baseball coach and volunteer in many different facets. For every work anniversary we were asked to pick a charity of our choice in which the company would donate to. Even though it wasn’t money out of my pocket, I felt like I was contributing in some way to whatever charity I cared about the most. While juggling his job and family, the amount of time and money that Joe gave back created an everlasting impression. Today, when I volunteer or give back, I often think of those examples and ask what more I can do.
An effective mentor can leave a lasting impression on someone who is just starting out in their career. I’m grateful to have had a great one when I first started out.