DEV Community

Ray Mathew
Ray Mathew

Posted on

2023: A career review

Milestones and moments:

  1. Diversified into Data Mesh.
    Just as I had planned last year, I got into the theory of Data Mesh. It’s useful info for the future, but not something I’m able to utilize right now. I had no idea that the person who coined the term was a Thoughtworker! (Zhamak Dehghani)

  2. Delays in TL role approval.
    I had already been feeling hesitant about trying for the TL with the recent management changes in the client company. I think my own TL had convinced me to try once more, given that I had already put in so much work. So I did. But things didn't really move along for at least 5 months.

    I was interviewed multiple times on the Thoughtworks side - the questions were fairly easy, mainly about what I would do in various technical and business related scenarios.

    I was also given me a formal feedback from the client, that I was the most capable in the team of taking up the TL role, but I needed to stop relying on my own TL to get me out of difficult spots. Admittedly, I felt exposed. I DID in fact do that with both my previous TLs.

  3. Real world Kafka and Kubernetes experience.
    Small achievement in the big scale of things, but a big mental breakthrough for me. I had been intimidated of using big systems like Kafka and Kubernetes, because for so long they were just names brought up frequently, signifying their importance and abstraction of the systems we were working on. Not to mention they took me a while to learn. It was not the same concept as learning a language or React.
    But I can now say that I’ve worked on both Kafka and Kubernetes.

  4. Unanimous support for TL role.
    All my teammates said I was ready to lead the team. My current TL said I was ready. My mentor, also a TL, said I was ready.

    So why was there a delay? I'm not sure...

  5. Finally became TL. Crap, now what?
    It finally happened. I had basically given up the thought of being TL and was looking to move on to another account. They had even gotten someone who was apparently supposed to be the new TL.

    But then it happened. I was told I was going to be the next TL during an in-person training session. I panicked. I had the responsibility of the team’s success or failure now. No one to fall back on. I should’ve maybe been celebrating more? It was a massive moment for my career.

  6. Absolutely overloaded in the first few months.
    It’s the most I’ve ever worked in my life. I worked 9 continuous days (including Saturday and Sunday), before I felt a bit sick and had to stop. I was waking up at 6am, and working till 11pm. Getting requirements ready for the team, hashing out solutions with the other teams, creating contracts, etc. I experienced for the first time what it was like where I was the bottleneck of a team’s output, and everybody wanted my time. From the stakeholders to the Devs to the BA. People called me on the phone with no hesitation, assuming that I’m always available to answer their “one minute” question which would turn into 20 minutes. Devs would either be waiting for me to tell them what to do, or skipping code reviews because I looked busy.

    We got in serious trouble when, by just the 3rd Sprint, we had 16 points of spillover, and the client's upper management were asking what was wrong.

    For the first time in my life, I became that guy who ignored calls. I had to. I also ignored unplanned Zoom meetings. I couldn’t be the “helpful guy” to everyone anymore, except my own team. They were the first priority. I decided that the BA and IM alone would go to meetings to clarify requirements, and I would join when things got technical. After all, that should’ve been the extent of my role. But Thoughtworks always expected the TLs to be Jacks of all trades.

    Things got maybe 5% percent less stressful by taking the above measures. But I was still working a hell lot, I hardly exercised, I lost weight, and I must’ve worked at least 9 Sundays in 6 months.

  7. Got to implement my strengths - not tech, but people skills.
    1) I managed to make the team meet the clients upper management. I believed it was very important, for the team to feel a sense of ownership, to put a face on the people who were telling them what to do for 10 hours a day, 50 weeks in a year. I was the only one who even gave it any importance.
    2) I made a huge bit of progress in motivating one my team members to be more proactive and take up solo tasks.
    3) I convinced one of my mentee’s TL to not give her a “Needs Improvement” rating, as it would demotivate her. It took a full 30 minutes. Some of the most difficult talking and negotiation I’ve ever done.]

  8. The delegation problem.
    This was my biggest failure as a team lead. To delegate, and to make the team more autonomous.
    The reason why I was such a bottleneck for the team was that they were always waiting on me to tell them what to do next. And when they did do something, they would miss some of the impacts it had on other parts of code. How does a team lead know the answer to this question - was the bottleneck failure due to him / her not empowering the team more and preparing more clear instructions in advance? Or was it because the team was not mature / interested enough to take ownership, and initiative? Is being in charge of hiring the only solution?

    I don’t yet have an answer to any of these questions today.

  9. Some difficulties and learnings.
    I’ll try to keep this brief.

    1) Every requirement was urgent. So, nothing was. We had to make our own assessment of what needed to be delivered first.

    2) Unreasonable deadlines and expectations. For example, one of the folks I reported to expected me to write the pseudocode, error codes, error msgs, FSM diagram etc for the entire user journey in a week, so that the team had a template to follow. The actual feature ended up taking 6 months and 8 developers.

    3) Office politics. For example, there was a guy who frequently lied to get his way, and his superiors turned a blind eye. There was a stakeholder who didn't understand tech, but came into meetings claiming that I should've caught some bug before it happened. There was a team who claimed that we would do "consumer driven development", so that my team, the consumers, had the responsibility of creating contracts. But when we wanted to make critical changes later on, they refused, claiming that they cannot alter their internal systems for our benefit.

    Managing all of these and more required a lot of discussions, meetings, and heated arguments. It was not at all what I expected when I was starting my career as a developer.

  10. In the end, it was a success.
    Despite all these headwinds, we did it. We went into CUG testing early December, with very few bugs, most of which were a data issue.

    We. Did. It. The nightmare that I endured to my mind and body was worth it. I could tell people for the rest of my life and my career, that I was TL for the first time in the most high profile and difficult TW project, and we delivered a product that the client was happy with. I got praise for the amount of workload and coordination I took on myself. I got praise from my team, including the very touching “Best TL I’ve worked with”.

  11. Zero interviews.
    Nothing to add here. I just didn’t have the time to take out 2 hours of my day to interview someone when I was expected to deliver a feature before the requirements were ready.


Notable firsts:

  1. I became TL.
  2. I helped take a feature live as TL.
  3. Diversified into Data Mesh, got practical experience in Kafka and Kubernetes.

New things learnt:

  1. Practical implementation of Finite State Machine in Backend for a user journey.
  2. Data Mesh.
  3. Managing clients.
  4. Managing a Dev and QA team.
  5. Golang (strengthening concepts).

A very small list this time.


Reflections:

  1. Being a TL for the first time with TW India’s most difficult client, with their most high profile feature, was harrowing. I lost sleep, weight, and any semblance of a personal life and leisure activities. I felt the urge to quit within just a month. But I persevered, and thankfully it was worth it. For the rest of my life I’ll be able to carry the confidence that if I could do something that difficult, I’m a lot more capable than I give myself credit for. Not to mention, we took the feature live, with no major bugs in CUG or Prod.
  2. I’m glad I was able secure my exit after just 7 months in that project. It was terrible for my health, and no one should ever have to work like that.
  3. The moment you climb the ladder and start managing people, office politics and mind games become visible. It’s something everyone unfortunately needs to learn to handle, so that they’re not taken advantage of.
  4. It may not have occupied a lot of my time or effort, but being firm with teammates who you used to be your peers and friends is one of the most difficult things to do.

My plan for 2024: Relax. I’m going on a government imposed sabbatical, since I need a work permit once I enter US on an H4 visa. Also, learn things outside of my client's requirements for the first time in a while, and then look for a new job.

Top comments (0)