It was late 2007 and I had just started the first job of my career. I was fresh out of college and joined my first corporate job as a junior engineer with a consulting firm. It was my first exposure to the corporate world. Boy! Little had I known that this one email could change the course of my career forever.
Our client was an insurance broker dealing with property and liability insurance and they were based out of the east coast. I was on a team that was responsible for developing a web portal that enabled the client to manage their customer insurance data. Their customers were primarily school districts and educational institutions.
When you begin your career as a programmer, every day is a challenge. You got a lot of things to get your head wrapped around. You need to familiarize yourself with not just the technology stack but also the domain side of things to contribute better. For me the only familiar piece in the puzzle was the Java. Even though I had very little professional programming experience I was up for the challenge. This was my first time working on a real project.
I was absolutely thrilled to work on the backend team along side other senior engineers. I was one of the several junior members who had joined the team and each one of us were paired with another senior programmer. It was a perfect opportunity to not just learn new stuff but also collaborate with other senior engineers on the team. I couldn’t have asked for a better way to start my career. I had found My Thing!
The Day I Sent That Email
The team I was working on was running on a tight schedule and we often worked on weekends to catch up on pending items. I would be in the office for almost every other weekend. When you are fresh out of college and your weekends aren’t lined up with any activities, there’s no reason why your team wouldn’t just ask you to show up! Most of the development team including the senior programmers, showed up on weekends to complete pending modules and fix all the bugs testing team reported during the week. It was truly a Tom & Jerry situation. It’s funny how bugs creep in when you are racing against time! Quality? What’s that?
As I walked in to office on one such weekend, things didn’t seem particularly bright. It was no fun to spend your weekend in office fixing bugs and still show up on Monday as usual. I guess it was slowly starting to take a toll on me. On this particular occasion though it really got to me. There’s nothing like walking into an office with AC down during peak summer. I absolutely hate it. This was just the beginning.
One of the first things I did when I came into office was to sync up our local code base with the server. When I tried to connect to our version control system, the server failed to respond. After a few failed attempts I literally gave up. All the answers on stackoverflow (every developer’s true friend) didn’t help me fix the issue. I had no access to the version control server itself and there was no way I was going to sit there and debug what went wrong. The stress of having to not just fix those open bugs but also work on new features had finally begun to show.
You know the time when you muster all the enthusiasm you have and show up on a weekend to wrap up work, only to find a version control that can’t be reached. I was pissed off. Besides there was no one, as I waited the next 2 hours pointlessly trying to google how to fix the issue. Looking back I think it was not a big deal. But back then when I was dealing with this the first time, it seemed like an unsolvable puzzle.
It was then I decided I have had enough. What I did next only made things worse. I opened the outlook in my laptop and wrote a nasty email to my Tech Lead. As I mentioned before, this was my first real job out of college and I didn’t really know any better than shoot an angry email and rant about how bad things were at the office. I took out my frustration in the email and basically wrote things to the effect that suggested my Tech lead was irresponsible to call us to the office, to work on a weekend and not even have the basic stuff like a version control functioning. I was simply frustrated and then I hit the send button.
To make things worse, I also copied my project manager (what was I thinking?) and the other senior programmer whom I was supposed to pair with. After sending the email, I packed my stuff and left. I was done for the day!
The Calm Before The Storm
When I came back on Monday the following week, I had little to no reaction from my Tech Lead regarding the nasty email I had sent over the weekend. Till then my interaction with him was very limited since I was new to the team and I had yet to meet him for any technical discussions. All my meetings used to happen with the senior engineer I was paired with. He would typically be my point of contact for all technical discussions or reviews.
I was kind of hoping to get a response the email I sent, but I didn’t see any. It made me more anxious and I wondered why there was no response. This went for another 2-3 days.
In the middle of the week, my Tech Lead finally came over to my desk and asked me to meet him in a room. I finally began to feel the jitters and tried to anticipate what was in store for me. You know when you are in your first job and you get called for a meeting after a nasty email, it scares the shit out of you, even though you know you aren’t at fault. So I followed him to one of those meeting rooms.
He asked me to take a seat and didn’t waste any time; he was a straight shooter. He asked, “What was your real intention behind sending that email?”
I was slightly taken aback with his emphasis on knowing the real reason as if to suggest I had some agenda behind sending the email. It didn’t take time before I realized why.
I recollected that I had copied our project manager in the email and it probably bothered him more than my ranting itself. He didn’t give up and was really hell-bent on knowing why I did that. He accepted that version control break down was a frequent issue they faced and none of the other developers (apparently it was fixed later on in the day and other developers had no issues continuing their work) complained about it. They seemed to work on their local copies and would sync up once they were able to connect back to the version control.
It was then I realized why he seemed really annoyed with my sending that email.
He was not particularly happy about my including our manager in the loop and my email didn’t indicate any efforts I had made to continue working with my local copy of the code base until other folks arrived at the office that day. I was so much consumed by the frustration that I had forgotten to include any detail about what I had tried until that point to fix the issue. Another stupid mistake!!
It really bothered him because he expected his team to do some level of debugging before throwing in the towel. Apparently, I had failed to do any of that (at least as per the email) and had simply resorted to complaining. It was not a good sign for a developer. He was concerned I wasn’t doing my due diligence before calling out others on their mistakes.
He said, “Look I have a lot of other developers who are fresh out college and frankly, they all seem to have a lot more enthusiasm and interest to learn. It’s common for things to breakdown and not work as expected. As a developer, you need to learn how to fix them and not just give up. I understand you were frustrated but just sending out an email blaming others is not acceptable.
Do you just want to complain or take ownership of things and fix them? What do you really want to be 5-10 years from now?”
The last sentence really made me think. He had not only questioned my competence but also my commitment and my drive to succeed. He was questioning my intent to even continue on this path of being a developer. As he elaborated further, it became apparent that he wasn’t trying to corner me or pin me down. He was genuinely concerned about the way I was going about my work. He was bothered where I was headed to and how my current habits would never allow me to become a good developer.
Something changed in that moment!
The Journey To Redemption
This conversation was one of the most important ones I’ve had in my entire career. It was a wake-up call of sorts for me and fortunately, I was clear what I wanted to be in my career. I am happy this incident solidified my career path.
I decided at that moment that I had to change. I had to work on myself so much that I never wanted anyone to talk to me that way ever in my career. I wanted to be the best I could possibly be. This conversation had truly left me wanting expect more from myself.
My journey of self-improvisation began when I met a few other colleagues who were also fresh college grads and we formed a study group. We decided to meet every week and would work on different aspects of programming like core programming concepts, design patterns, API design, etc.
I was so excited that I literally used to wake up every morning yearning to catch up my with colleagues and share what I had read or learned the previous day. It was often a nice little hack with the programming language or a design pattern. I was literally in love with my work, all over again!
It was truly a game changer since in a matter on 3-4 months, my Tech Lead met me again but this time our conversation was totally different. I had dramatic improvements in my code quality and my programming abilities had improved drastically. I had learned to navigate through the problems in development in a more self-reliant manner (it involved stack-overflow and googling of co
By the end of the year, I had made significant progress in my team and I was nominated for an award. I felt so proud when my Tech Lead presented me this award and it was truly a pat on my back and an affirmation that I wasn’t lost.
I felt validated that I had really worked on myself and this was a much deserved moment of redemption. A moment that reinforced that I was going to stick to this path of being a software developer.
Soon after this I also managed to host a small tech talk on a topic – Why API Design Matters? at the annual unconference held at my company. From being in that room with my Tech Lead who questioned my abilities and commitment to a place where I was presenting a tech talk to a sizeable audience was quite a journey!
This incident happened almost 10 years back and every time I think of it, I can’t help but thank my Tech Lead for the way he handled the situation. I have yet to meet another Team Lead or manager like him in all these years, who genuinely cared for his team members. To that end, he was truly an angel for me!
He is the epitome of a true leader. He could have easily pinned me down and it wouldn’t have been a big deal for him. The odds were stacked up against me. But he chose not to do it. He instead cared about me. He had my best interests at heart. So he spoke to me in a way that made me introspect.
I am almost 11+ years in the industry now and I am thankful that meeting happened. It really made me set my priorities right. Thank you for helping me get back on track!
Do you also have any such incidents that changed the course of your career? Please share them in the comments, I would love to hear from you.