Interview with FreySoft Team Lead
Timur Babyuk is a pragmatic software developer and team lead with over 15 years of professional experience. Most of his background is related to backend engineering, web frontend development, data management. Timur has been working within various business domains including financial, telecommunications, entertainment, analytical, enterprise security, online advertisement, civil services, and others.
Tell us a little about your experience as a team lead.
Like many, I started gradually leading teams, with understanding how processes work in the industry. After you’ve passed the full life cycle of several projects, you found seeing the entire picture. Simultaneously, you get the point of who is who on the project, what is the sequence of process cycles, what type of risks exist, and what the estimation and prediction basics are. Consequently, you can use this knowledge to start organizing your teammates, take responsibility for the overall project, and become accountable to the stakeholders.
Is a team lead more of a manager-organizer or a developer with deep expertise? What does the team lead spend more time on – working with code or communicating with other programmers?
It depends. There are different team setups and methodologies used to organize the process. But in general, a team lead should have great communication and mentoring skills, be proactive and motivational to others. Based on my example, the customer sees my role as a full-time experienced developer with managerial functions. I have to balance between a deep dive into various tech challenges and supervising my teammates.
How do developers grow to the position of a team lead? Based on your experience from being a junior developer to becoming a team lead, what are the major tips for reaching this career stage?
There is no straight answer on how to become a team lead. Each has their own path. Tho, I may have some recommendations based on my previous experience :).
- First, find “right” people, those who mentor you. Listen to them and take as much as they can give you. On the contrary, don’t waste your time on the people who ignore you or the ones you feel uncomfortable with.
- Ask questions. Don’t be afraid to be misunderstood or be laughed at.
- Don’t avoid conflicts – hidden discords are counterproductive. Bring them up and communicate until solved or break with these people if there is no solution. Break as peacefully as possible.
- Become an expert. Look wider and deeper, don’t limit yourself within the tasks assigned to you. That is to say, be proactive, but also be responsible. Don’t take more than you feel you can do.
- Report earlier. Don’t postpone. Don’t be afraid to fail. Your own mistakes are a great base for your experience because they fix up your future decision-making.
- Become a mentor. Don’t keep your knowledge private, share it with anyone who listens to you. Find people with the same interests, organize your knowledge sharing.
- Keep work-life balance. Your physical and mental health, your life – this is what should be your first priorities.
In your opinion, what are the must-have qualities of an excellent team lead?
Seniority and team-leading are more about improving soft skills. Communicating habits must be always revised and improved. Don’t stop enriching your English. Learn effective meeting rules.
Senior developers and team leads are pretty expensive for the customer. Remember this and don’t spread your forces to micro-management and those tasks which could be delegated. Delegation is a key to successful management.
As a team lead, it’s crucial to ensure work gets done by the set deadlines and your customers remain satisfied. What techniques have you used to motivate a team?
Communication and transparency are key to successful project timings. Each team player should always know what the client expects from him. Reasoning about made decisions should be clear.
Quality planning is a must. There are many agile methodologies to achieve that, but the major focus should be on discipline: agile doesn’t mean freedom.
What do you do if there’s a disagreement within your team?
We need to stop for a moment and have a talk. The discussion should be constructive and calm. The team lead should be a thoughtful moderator in this process. It’s a great help if the team lead has respect and authority in the team. Conflicts if any should be discussed and solved.
Do you have failures as a team lead? If yes, what was that experience, and what did it teach you, how have you matured as a leader from that experience?
Of course, I have. All my main failures were because of the broken communication, false-positive expectations, and lost information. The next simple rules always in my mind:
- If there is a tiny chance that somebody in the team could misunderstand you, they will misunderstand you. So you have to ensure that everyone is on the same page and all details are clearly spoken. It’s better to spend more on meetings before the work starts than surprisingly find that the work results are not what is expected from you.
- Don’t overtake and don’t be too certain. If you have no questions about the work you have, this is a bad sign – you always should have some level of uncertainty and curiosity.
- Write down all details, track time and status. Things are forgotten very fast.
How is your role as a team lead in FreySoft (your functions, duties, current responsibilities)?
I’m combining roles of developer and team lead, with few managerial roles. The customer expects from me that the team keeps the standards of development. All risks that could come from our team should be reported ASAP. I’m in charge of reviewing all sorts of new technical activities and requirements we have never met previously. Also, I try to write guidelines as much as possible – repetitive explaining steals time and productivity.
In FreySoft, what project are you and your team working on?
In Freysoft I’ve been working on a project for a British Fintech company that specializes in digital money transfers around the globe. They have hundreds of send destinations, multiple types of remittances (cash, bank, mobile, card, and so on).
My team is working on the partners’ integration project: we connect with our customer’s partners who are responsible for payout in their markets (we call them correspondents) to our system. We should guarantee that the transaction is delivered to the correspondent, and the transaction correctly tracked. We have dozens of microservices, each responsible for a single integration. Our responsibility is to implement these services and maintain them in production.
Also, we have a lot of communication with partners from almost every point on the Earth: Latin America, Africa, Asia, Oceania, the USA, and Europe. On a daily basis, we communicate with people from different mindsets, unique working cultures, and spoken English, and this is one of the most interesting challenges we have.
What would you advise your junior colleagues?
Follow your dreams and don’t postpone them. Fear nothing. Be proactive. Be eager for new experiences, and live a full life.