Vladyslav Kushney is a Salesforce Technical Lead at Newage.io. Vlad has over 7 years of Salesforce development experience. Leads and mentors a team of skilled Salesforce professionals while writing his own scalable code.

Making the transition from a developer to a team lead can be both exciting and challenging. It requires knowledge of tech domain and soft skills such as communication, collaboration, and problem-solving. In this article, I’d like to share my experience and reveal some aspects of the tech lead role, as well as share my vision of what skills are needed for this role.

Getting started and becoming a lead

As of today, I have 7+ years of experience with Salesforce, the last 3 years as a tech lead. I started out as a student: in my second year, I tried to get into various courses, took a Java course, and my first project didn’t work out, so I went on to study further.

Over time, a recruiter I knew was recruiting for Salesforce trainees. Our Salesforce department consisted of 8-9 developers, each developer had a dedicated consultant from the Netherlands who was assigning the development tasks. I had a mentor who laid down the right values at the very beginning and helped me develop in the right direction. However, since we worked on different projects, I still had to deal with many development issues myself.

So 4 years passed and I wanted to try something bigger, to work in a big team. I moved to a Kyiv-based company, and after a while I started for the first time as a lead with a newly formed team. The main challenge on the project was a demanding client. There were a lot of difficult dialogues with the customer, it was necessary to evaluate the scopes and take as much as possible to make the team comfortable to work with and have the client satisfied.

Different options for teamwork

Later, I moved to another company and found myself in the complete opposite, where the processes were set up so that the client did not dictate requirements but asked for changes. Here, the ownership of the product belonged entirely to the development team. There was enough time to do all the work efficiently, but the stick has 2 ends – I got bored on this project. Later, it became clear to me that I needed to move on, I wanted something more than a role that analyses business requirements and delegates tasks to the team.

That’s how I ended up at my current company, Newage.io. The company was launching Salesforce team from scratch and was looking for a person to lead it. We assembled a team of five developers, two testers, a business analyst, a manager, and a support engineer.

The role of a tech lead in a team built from scratch

Our first client was an existing company partner who needed a CRM system for a new trading platform. We took a ready-made project developed by another company, changed the development process from ANT to sfdx, built our own CI process, and improved the code quality by including the PMD source code analyser, and the Prettier Formatter in the CI process.

My role was fundamentally different from my previous experience, because here I had to build expertise from scratch. I finally had the opportunity to apply the best practices I had read about in books but hadn’t seen on previous projects.

We were developing functionality that worked on the integration of two systems, so we had to establish cooperation with the development team of the platform we were integrating with. Within the team, we were constantly improving Git flow, changing the branch and deploying strategy to find the most convenient option that would allow developers to work comfortably, test well, and quickly deliver functionality to the client.

During this time, I realised that a good tech lead is, first of all, an expert who is not afraid to improvise, learn on the go, adapt to different situations, etc.

When you work as a developer, there is a list of tasks that you have to perform, and your area of responsibility ranges from a user story in Jira to a branch in a repository. When you’re a tech lead, your area of responsibility is the entire project. You need to understand the project on different levels.

A tech lead is a link between the business and the development team. The tech lead is responsible for making global technical decisions on the project (which framework to choose, what code structure and standards to follow, what testing principles to follow, etc.), but this can vary between projects depending on the processes in place.

For example, one of my projects had 5 development teams and global technical decisions were made collectively by five tech leads. When working with a team, you need to monitor the morale of the developers, balance the workload and the specifics of the tasks, in short, do everything for the team’s comfortable work.

What skills should a tech leader develop?

Based on my experience, I’ve compiled the following list of skills and principles that a tech leader needs to develop:

  • Establish the right philosophy in the team (source – the book “Pragmatic programmer”, chapter 1. Pragmatic philosophy, section 2. Pragmatic approach). When a tech lead and the team are on the same page, it’s much easier to work.
  • Be proactive. There is a saying: “Beneath a stone no water flows,” and this is 100% true for the tech leader position. This principle applies to all leaders, not only in software development.
  • Be stress resistant and resilient. The project should have a healthy atmosphere and not be subject to climatic conditions, because there will be “broken windows” – you should already know what they lead to.
  • Know why projects die. It is important to know why it is critical to lay down the right architecture at the beginning of the project; why the user interface should refer to business rules, and not vice versa; what is strong and weak connectivity; software design principles, etc. A whole book has already been written about this: “Clean Architecture: A Craftsman’s Guide to Software Structure and Design (Robert C. Martin Series).
  • Delegate. Despite the desire to always do everything perfectly, you need to accept the fact that there is not enough time for everything. It is impossible to do everything perfectly, and the developers to whom the tech lead delegates tasks may have a different vision and do things differently. Therefore, you need to know how to communicate your vision and what to expect.

A few more words about motivation

It’s wrong when the motivation to develop towards tech lead is only the financial side of the issue. Motivation should be primarily related to the love of what you do.

Goals can be different: some people have a desire to delegate and do high-level things, others want to make the world a better place. I’ve always had a desire to make a perfect project with clean code, flexible architecture, with automation working like a Swiss watch – a kind of perfectionist’s dream.

I know that such projects don’t exist, that it’s utopia, but at least it’s worth striving for. Shoot for the moon. Even if you miss, you’ll land among the stars.

Read also: Sergii Maiakov, СТО at Newage, on how to advance your career in the IT industry