Early this year, I was honored to be trained as a team lead and tech lead. Simply stated, what those two positions entail is that I get to manage people and become a go-to expert on a specific technology, which in my case is Java and Spring Boot. Both of these have their own particular struggles that I had to (have to) surpass to be successful at work. In this post, I’ll talk about my progress, the fears I had when I first received the assignment, and what I did to cope with each challenge I face.
Before I received this assignment, I had a series of back and forth with a couple of supervisors I had at the time. Every time they asked me, I told them that I was not built to manage people, and that I am a person who just chucks out code. And this is true, as I was heavily introverted, as much as people may think that I am extroverted with my outgoing personality once they’re close to me and the way I post on social media. I can talk to people, but managing them… that’s an entirely different story.
Like I said, there are two leadership roles in our company. Of the two, I mostly preferred to be a tech lead, because that entails that I become good at code, and good at teaching it to others—and I am good at code and at teaching it. I had two years of teaching experience, and a separate 6 years writing technical articles for Antares Programming. If there’s a leadership role meant for me, it’s a tech leadership.
But my immediate superior at the time told me that I was the most capable in my team to lead. Also, when it’s more responsibility (which comes with a pay raise), and your boss offers it to you, you can’t refuse as a breadwinner. So I took on the job with the mindset that even though I’m not ready, other people believe in me, so if I fail, it’s really their fault. (I’m kidding, but really, there’s some truth to this.)
I find most times that things are not actually that hard to do. It just needs a little willingness to take on the task and learn the things as I go. And that’s exactly what happened now. I ended up taking both the team lead and tech lead roles. And I think I’m doing a good job currently. Of course, self-doubt creeps in, and I feel impostor’s syndrome from time to time, but when that happens, I learned to look at the statistics and what other people say. I affirm myself by thinking that even if I was an impostor pretending to be good at the things I do and people still praise me for it, then I must be one hell of a good impostor, and that in itself has merit.
My employment with Dice205 is the first time I have ever worked in the context of a team. My previous work had me work on projects on my own. The closest to a team work I had was developing an Android application that connects to a REST API developed by another developer I work with. I just asked them for a documentation of the endpoints they’re exposing, and that’s about it. So I had no experience working with a team, let alone leading it. And that’s a huge problem.
Since I obviously wasn’t ready for the task, I just thought I’d figure it out as I go. I tried to research as much info as I can. I bought books to learn about management. I also read a ton of blogs. I had a quick run through of Git best practices because as a team lead, I’ll have to manage branching strategies, too. Then I familiarized myself with agile methodologies because the last time I learned about any project management technique, it was waterfall and that only applies to thesis projects nowadays, I think. Mostly, I had to learn more social skills. My ex-partner greatly helped me with this by showing how they interact with their friends and actually showing genuine empathy and interest. Anna Akana’s YouTube channel also greatly helped on the introspective part of the social skills for me, so I’m including that here. Finally, the company provides regular leadership training, which I always look forward too because I learn a lot there.
Like I said, I was very introverted. A huge part of the team lead role was checking in on my teammates. We set in place a weekly 1-on-1 catch up meeting, and currently, I have 3 teammates that I’m checking in. The first week was hard. We are all developers. We never talk, we just write code! And it was a lot of work taking them out of their shells.
But what helped me was empathy. You know, the thing designers keep on harping on in every user experience article. It helped me to put myself in their positions. Of course, before I became a team lead, we have already worked together, and we were somewhat close to each other to the extent that we can have friendly banters in a group setting. But I had to recognize that there was a power imbalance at play now that I became lead. They will now see me as authority (or at least that’s how I would see me if I were in their position) which will make it harder for them to open up to me, and I had to address that.
Introverted people tend to shy away from talking from people who drain their energies, and even more so with figures of authority. The first week of catching up with them, I reiterated that I’m still the same person, and I wish not to micromanage them but rather just check in on them. I told them that I am still open to questions, and we can do quick calls if they get stuck in their tasks. I made sure that I drove home the point that I maybe a lead now but that’s just in terms of responsibilities. And I think that worked eventually, because they are mostly open to me with their problems, not just in their tasks but also with the things that bother them outside work.
Another huge problem for me is that I am also introverted, which means my social battery drains really fast. It escapes me how I even managed to survive teaching for two years with around two thousand students per week, and I’m the only one talking. But it’s definitely more struggle for me to do the 1-on-1 catch up sessions because they are more personal, and they tend to be more vulnerable. And those types of conversations drains me fast.
To solve this, I spread out the catch-up sessions across the week. Since I only have three teammates, I spread them across the week so that I only talk to one person per day. I also made sure that the catch-up sessions do not fall on a day with a scheduled recurring meeting, so that I preserve my social battery for that meeting. After doing this, I still have the ability to leave my Monday, the worst day of the week, free of any catch up sessions, so I can adjust for the rest of the week and use the time for actual development work. I also schedule the sessions after lunch, so I can have my energy when ad hoc meetings come up throughout the day, or for when I have heavy tasks that need extra attention. By the time I do the catch-up sessions, I only have a little more than an hour to work, and then I can retire for the rest of the day.
I also tried to just ask questions. When I do this, I position myself as an interviewer, and interviewers don’t talk a lot. It helps greatly with my energy, and I get to know them better. I get to know their fears and frustrations, as well as their strengths and the tasks they wanted to do more of. This is difficult most of the time, though, because I run out of questions to ask. But now I’ve come up with a pattern where I ask them how their day went, what they did on the weekend, which tasks they are currently working on and if they find their current tasks hard. It also opens them up to talk about the challenges they face.
Cate Huston’s Anatomy of a 1-on-1 also helped a lot at the start of the sessions. It gave me an idea of how to structure the conversations and what topics to talk about, so we all get the most out of our sessions. Cate’s blog about management helped me a lot more because it’s management tips from the context of software development. In fact, as I was writing this, I looked over at that blog and found the article Energy Management for Newer Managers which is going straight to my reading list as soon as I finish writing this post.
I noticed that I also code less now than before I became a lead. But I cannot pinpoint the correlation between the two because it also coincided with me being transferred to another project where I don’t exactly code a lot. Reading other people’s experiences online, it seems that a managerial position tends to take more time managing than coding, which makes sense naturally.
It’s not too much of a problem for me, though, because I’m also a tech lead. Part of my job is developing learning plans for Java and Spring Boot, so I still code a little because I have to
also constantly learn new things with those two. While preparing the Spring Boot learning plan, I realized how late I am to the Java party and that there were a lot of things I didn’t even
have an idea about. (
Optional classes, hello? Where were you when I was in college??)
Aside from this, I code this website. I frequently visit and revisit a lot of pages here, testing the performance and accessibility, and making adjustments as needed. Recently, I redesigned the front page, which took a little more time from design to development and testing than I anticipated. It also helps that Eleventy, the static site generator I use for the website, is highly extensible, so I get to maneuver it in any way I want to.
I was asked recently if I was ready for more responsibilities, like managing more people. And I told them that I will never be ready, and if I had been given such tasks, I will just have to face it head on and figure things as I go like I did the first time. Honestly, I couldn’t have been in a better place to work as a first-time team lead. I imagine being a team lead anywhere else would put a heavier pressure on me. And it also helps that I have great teammates, bosses, and a company that cares about my personal progress.