From Junior to Team Lead in less than 2 years

Hi all! My name is Dmitry Lyovochkin, I am Flutter Team Lead in the company Friflexand also the author of the blog “Flutter Developer's Diary”.

Let's divide this article into four logical parts:

1. I’ll briefly tell you about my path to Junior and describe my vision of how I would enter IT now, without technical education and experience.

2. I’ll tell you about my path to Team Lead. Why did I get this “badge” and how did I end up living like this)

3. I will give advice on how to develop faster in soft and hard skills.

4. The fourth part is answers to questions from my subscribers. I asked in my blog what readers would be interested in seeing in this article, and some questions could not be covered in the main part. And they are worth attention)

1. My path to junior flutter developer, briefly

I started my immersion in IT at the age of 27. I have a humanities education (specialty – project management). My previous activity had nothing to do with IT.

I didn’t plan to become a developer, the idea itself came to me spontaneously – I decided to help a relative and write an application for English courses. Let's go, I really liked the development process and decided to get a job.

Almost from the very beginning of my studies (courses by Konstantin Kokorin, LazyLoad and practice, practice, practice) I started my own blog. In it I wrote down every day what I was doing, what I had learned that day. So that any novice developer can follow my path from the very beginning and go this way many times faster, without making the same mistakes)

I described in detail about my path to junior in this article.
There are recommendations there about creating a blog (how it helped), and also about how much I studied and what problems I encountered.

As a result of the training, I started sending out resumes to my developer friends and asking: “How do you like it? What can I fix?”

PS At the time of my entry into IT, I did not have a single acquaintance from IT. All the acquaintances I made were thanks to the blog. Most often, I simply wrote to those who left comments on the posts. I also immediately subscribed to all the profile chats and actively communicated there.

Yuri Petrov responded to my message: “Oh, you’re looking for a job, let me recommend you to HR Friflex.” Of course I agreed. But a couple of days later he wrote that HR refused, since hiring was now closed.

In general, I didn’t give up and went to the Friflex website, where I filled out an application for an open vacancy. HR called me, we had a good conversation, but I was rejected again – due to the fact that hiring would open in about a month.

This didn’t stop me either, and a couple of days later I remembered what I saw in the bio of one of the blog subscribers (on Telegram you can track who subscribes to the blog) “CEO Friflex”. Then I didn’t yet know that the CEO was the chief executive officer)) I thought that this was a manager, and perhaps through him I would get into social security.

Wrote: “I applied for a vacancy on the Friflex website and don’t know if the resume was sent with an accompanying one. There was no information on the site after sending…”

The CEO said they would give an answer on Monday. On Monday HR called and said that they were looking forward to me and were ready to interview me as soon as I took the entrance test 🙂

That’s how I ended up applying for social security after two refusals) I successfully passed the social security program and got a job as a Flutter Junior Developer from the first interview.

Tip 1: A refusal from a company you want to work for is not always a 100% refusal. Workarounds can often be found. Or at least try.
What are the workarounds? Find HR contacts and write to him or her. Apply for a vacancy on the company website. Ask your friends – perhaps their friends work there and will refer you. If you don’t have any acquaintances, I recommend looking for company employees on LinkedIn and trying to get an interview through their recommendation.

How would I enter IT now, without acquaintances, technical education and knowledge?

As you could find out above, the path without investing $, with daily training, bears fruit. I believe that you can still get a Junior position if you want (they are actively applying for jobs in our company)

But with current market knowledge, I can say that there are very, VERY many Juniors. Some positions receive 700 responses. HR can’t even physically view them all.
Also, without knowledge, which can be obtained (for the most part) only in a company from more experienced developers, the chance of finding a job is quite small.

In general) My path would be like this:
1. I decide on a direction and understand that I am interested in it. I initially had the idea of ​​creating a mobile application, so I chose mobile development.

2. I subscribe to all thematic chats that exist, and ask people in these chats what good courses they can recommend. I don’t pay attention to various paid courses for ~140 thousand with a guarantee of employment from companies that are only engaged in selling these courses. These are false hopes, and, most likely, with such courses I would lose both time and money. In addition, these courses can often be downloaded for free from torrents.
3. I take the courses that were recommended to me. The main criteria for trust in the course: the speaker is an active developer in this area, the course itself is either on YouTube, or it can be bought for a “symbolic fee” (not for some ~140k), there is practice and it is fresh.

Examples of such courses on Flutter and Dart:

Stas Ilyin's YouTube channel

Dart 3 in action on Stepik

Flutter basics on Stepik (in development)

4. Next, knowing the base, I go to the mentor. In my opinion, this is a win-win. The mentor conducts a mock interview to check for gaps and provides materials to prepare for the interviews. If necessary, it improves lagging “food” practices, and all this ultimately more than pays for itself.

5. When the mentor says I’m ready, I go apply for vacancies on hh, LinkedIn and profile chats for job search with Dart/Flutter in Telegram. I record each interview on video, and afterwards I analyze and tighten up the gaps.

As for mentors, I don’t want to advertise on habr. Write in PM tg @Hey_008, I will give you a list of mentors with reviews.

2, 3. Path to Team Lead. Mistakes and tips on what to focus on

More than two and a half years have passed since the start of work at Friflex. I have been successfully holding the position of Team Lead for the last nine months 🙂

Over these two-plus years, I worked on four different projects. Two were already implemented and the other two we wrote from scratch.

From the very first project, the entire technical process. The part was led by the team leader. The code review was line by line from all team members. At first it was exhausting, but the further we went, the fewer problems there were during code review and the more insight we had)

Tip 2: Be sure to conduct line-by-line code reviews with your colleagues. The ability to understand other people's code, observation, debate and discussion in comments is an invaluable experience that will quickly improve you. You will pick up best practices from senior colleagues and always know what changes have been made to main.

My first project was the main product of the company, and then I was still very young and green) I worked on this project for a little over six months.
My first mistake was that I believed that I needed to show myself as a hardworking and responsible specialist, striving to constantly improve and improve my code. I overworked a lot, wrote reports on a blog with the time spent (easy to track) and believed that if I was “good”, I would be noticed, praised, and rewarded.

Everyone who read me said in PM: “This will not bring you any profit.” And so it happened. No one noticed me, after which I completely reconsidered my approach. I was able to implement this new approach in a new project, which I asked for myself.

In general, the approach itself is to act in your own interests and bring money to the business by proposing and implementing interesting solutions and, if possible, shining a light.

As I said above, at first I asked myself to join a project that was interesting to me) It started from scratch, and I knew in advance that a team was being formed. I was very interested in such a project, since you can learn a lot: laying out architecture from scratch, introducing modern practices and approaches. In addition, the project was quite large, and the pool of tasks was interesting.

We released this project ahead of time, easily fitting into each sprint.
How easy was it to complete each sprint? Processes were immediately built into the project, the lead skillfully allocated time for tasks taking into account the new team. As a result, each task was sent to the developer with a full description:

  • what needs to be done;

  • where to do it;

  • link to design in Figma;

  • backend handle;

  • related design and back-end tasks to track their status and clarify details with the performers.

To summarize, in this project, thanks to the lead and the team, I learned almost everything I wanted.
Organizing this into a list, it’s better to immediately describe it in the format of tips that you can apply:

  1. Of course, responsibility comes first. There's nowhere without her. You should be the person you can always rely on and trust him with complex functionality. In the future they will entrust you with the project)
    Also here: show up to meetings on time and don't forget what you promised. Nobody likes it if a person is regularly late for daily meetings or suddenly disappears somewhere, takes a long time to complete tasks or does not respond remotely.

  2. Improve your technical skills outside of work hours. At least two hours a day. Monitor new practices, approaches, and interesting solutions of your colleagues.

  3. Try to learn from the lead as much as possible. Both technical and in the field of team management. This is done by asking questions casually. It is, of course, advisable to ask with interest. It’s better to immediately put everything you’ve learned into your knowledge base. I did this in Notion (now Obsidian).

  4. The technical part can always be improved, but the thirst for knowledge and growth, the ability to communicate with people is very difficult to develop. You are hired as a person first and foremost. Show that you are interested in what you do and that you want more – more knowledge, more development.

  1. This is a rather holivar topic, but I don’t recommend creating a work account with some anime picture and a strange nickname. At least add your first and last name) This, at a minimum, will create a more trusting and friendly attitude towards you. It’s better not to publish any strange blogs with obscenities either)

  2. Be proactive. You can recycle something into a table and very coolly refactor something that no one will notice, and most likely only you need it.
    Business needs initiative. We need solutions that cover bugs and features that bring benefits. And all this should be visible specifically for business. Then you will really prove yourself and prove yourself.
    Example: when I came to a new project where I am now the lead, I immediately suggested that the business implement a metric to track user actions, push notifications, and a debugging mode. The first two features are generally difficult to evaluate; the contribution is decent. And the debug mode helped speed up the testing process at least twice.

  3. You can choose tasks that interest you. Don't be shy. Personally, I have never been denied an initiative.

  4. Get more involved in the project and communicate with colleagues. It will be much easier for you to resolve issues if you have good, trusting relationships with all members of your and related teams

  5. Communication skills. It is advisable to be that “nice, interesting guy”) This way you can always keep your finger on the pulse – know what is happening in other projects, in other companies. And if something happens, friends from other companies will gladly refer you to them.

  6. One of the most difficult things in programming and in communicating with business is estimating tasks. It’s better to start tracking how long a particular task takes you from the very beginning of your journey. This way you will quickly develop this skill. Few people know how to evaluate tasks correctly; this is a really cool skill.
    I still track time spent through Togl Track for myself. Analysis helps you plan your time better.
    Businesses will not take you seriously if you repeatedly say certain deadlines and close important tasks on others.

  7. In addition to the previous point: better keep your word) If you promised a business an important build tomorrow and you don’t have time, I would prefer to rework it and keep your word by releasing it at 23:55. But then, of course, you need to take into account such missed deadlines and better evaluate the tasks.

  8. There is no need to be sarcastic within the team or consider yourself the smartest; try to communicate with everyone in a friendly manner. You are a team and you have the same goals) There is no need to drop builds after 6 pm or write in chats and tag colleagues. If it's close to this time, it's better to ask first: “Hi! Are you still working?)” Also, NEVER write to your colleagues about work related issues during their vacation.

  9. Try to be proactive within the company. It is much easier to promote a person who is known and well-known than just an ordinary developer.

  10. It’s also quite holivarny, but try to grab every chance. It happens that the best offers appear, but you miss them because you are not ready or there are a bunch of other excuses. It’s better to agree and replay if necessary than to refuse and miss a good opportunity.

Example: When my lead asked me to take the lead position, I replied, “Yes, of course!”
When I suggested to a friend (a good developer) who had not been promoted to join me in the project and eventually take my place, he refused. Although the offer was good)

  1. Try to ask your lead and team for feedback about yourself more often. This way you will always be visible. This is useful from all sides: if the feedback is not very good, you will correct your disadvantages. If the feedback is good, you can request a promotion. Plus, management sees that you care. Not just “came, did my working hours and left.”

The article turned out to be long, it’s time to finish)
After the second project, I participated in the development of the next one from scratch. It was interesting and we also completed it on time.

After that, I was transferred to a fairly large project, in which, after a certain amount of time, I was offered to take the position of lead (described in more detail in this post) and lead the mobile development team. To which I agreed and have been successfully occupying this position for nine months now.

4. Answers to questions from subscribers

“How to deal with impostor syndrome?)) That everyone has been working for a long time and everyone is super experienced”

A few questions on this topic) In general, this is a serious career stopper, and it’s better to get out of it as soon as possible.

Every day you complete new tasks, fix new bugs, and thereby benefit business and people. This means that you hold this position for a reason, and no one would pay you your salary just like that 🙂

If you have any doubts, here are my tips:

  1. Feedback. Ask your team and leads for feedback on your work more often. Most likely, already here you will understand that fears are only in your head.

  2. Mistakes happen. If you haven’t gained experience, your colleagues won’t expect you to “conquer Everest” from the start of your career) Everyone understands that you are a new member of the team, and mistakes are acceptable. As are your doubts. Everyone goes through this in the beginning. The main thing is to get through this stage as quickly as possible and gain experience.

  3. Communication. Try to make connections. You feel much more confident at work, knowing that in any bad situation for you, your colleagues will easily refer you to their company. Also with a salary increase)

  1. Interviews. Improve your interviewing skills, as this helps you understand your gaps, improve them and grow.
    In addition, this allows you to constantly keep your finger on the pulse and be in the market.
    The only correct assessment of your skills, in my opinion, is several offers from good companies for the position you need. If the market values ​​you that way, then that's the way it is.

  2. Your knowledge base. Start maintaining a spreadsheet or knowledge base. This will greatly help you grow and feel your progress. You can enter it directly into Excel: I studied a new technology, completed a good task, wrote it down in a cell and highlighted it in green. Every week the number of green cells will grow, as will your competence. This will inspire you to continue. You will compare yourself to yourself rather than to other people.

  3. Are you afraid? Don't be afraid. That's all, you have 50k. As some psychocoach would say)
    Kidding. In fact, I would also recommend thinking about what this gives you? What's the profit?
    It's like people who have problems in life, but they think it's better to worry about these problems than to solve them. If you want to solve problems, I recommend the first five points above 🙂

“Hello. Please add the process of self-motivation and learning difficulties in the first stages.

+ is it worth buying a powerful laptop for flutter and what characteristics are needed to work in flutter and emulators”

I had a problem with self-motivation at the beginning, since it is difficult to do hard intellectual work every day after my main occupation at that time)
This was one of the reasons I started a blog. There is much more responsibility and motivation when you understand that you are doing this not only for yourself, but also benefiting people.

As for motivation and difficulties, I strongly recommend keeping a table or knowledge base. With it you will feel more confident and clearly track your growth

As for the laptop, for the first year I worked on an assembly with Chinese Xeon and server memory) and did not experience any problems. Who doesn’t know, such assemblies from Aliexpress cost ~20,000 rubles.
The need for assembling and testing for iOS arose much later. Then I bought a macbook.

In the beginning, a simple laptop or computer will do. Over time, upgrade if necessary)
Companies do not require personal equipment during employment. Even if you do, you are unlikely to be refused after your social security interview if you say that you don’t have a Macbook. Companies often provide the equipment themselves.

“The path is quite fast, are there colleagues who spend longer in the “girls”? And why?

Yes) A ​​difficult question, but, in my opinion, due to a reluctance to take responsibility, impostor syndrome and reluctance to cling to opportunities. The example was described above in the tips.

“What happened to the desire to switch on iOS?”

I thought that there were few vacancies on Flutter and wanted to switch to native (iOS is closer to me than Android). I tried it, but iOS didn’t work for me. My competence in Flutter increased, and I decided to stay, this is mine for now)

And besides, I listened to my colleague’s good thought: “What difference does it make to you how many vacancies there are? You take the best and that's it. And there are always few of them.”

“I wonder how the growth by grade happened, how to initiate it)

The article on how to become a junior helped me a lot at the time))”

I didn’t have classic grade growth as such. We introduced a grading system where you need to pass a technical interview for promotion, but later it was revised and replaced with a performance review.

And they don’t get a team lead through submitting a grade or something like that. This is a big responsibility, and your hard and soft skills should be sufficient for you to be offered to lead the project.

Most often, the company has established standards for increases during a certain period. Usually this is:

  1. Grade system. When you can increase your grade no earlier than, for example, once every four months. To get promoted, go through a technical interview within the company.

  2. Performance review. The name speaks for itself) Based on your contribution to the development and project, you are either promoted or not.

  3. There is no system, you come and say – I want a promotion. You apply your recent achievements.

  4. How it happened for me:
    At first I was promoted after a probationary period.
    I wrote to the CEO and said that I wanted a promotion. I have attached my achievements in a letter. Promoted.

  5. I wrote to HR and said that I want a promotion. I was told to pass the grade, I passed, and was promoted.
    Promotion to Team Lead. I was offered to lead the project.

  6. Increase in performance review. I was not the initiator.

In fact, you can initiate a promotion whenever you want)
But it is better to do this at moments convenient for you. For example, when you closed a large, important functionality for your business or introduced something cool. You need to come and ask. The easiest way to do this is through a lead. The lead initiates a performance review or grade submission.
I described the promotion to lead in more detail on the blog, I don’t want to copy-paste) Here fast.
In short, the current team leader, with whom we worked in previous projects, called me and offered to lead the project. He said that I had already grown up enough and was ready to take on such responsibility. I agreed. But this was still just a proposal.
A week later, the lead wrote to me and said that tomorrow I need to be on a call, they will decide about my leadership in the project.

The next day there were four of us on the call: the CEO of the company, Head of Mobile, the lead of my project, me. The three of them agreed that I had grown a lot and it was high time for me to be promoted. Then we discussed what was required of me in the project and what the conditions would be (new salary range). I agreed, they congratulated me, a new team leader came out from the call☺️

“1) Classic question: what qualitatively distinguishes a lead from a senior in your opinion?

2) If we are talking about a technical lead, type 2, then how do you determine acceptable/unacceptable proposals/solutions from developers? For a technician, it seems to me, you need experience in different situations. Eat everything…”

1) The main difference is responsibility. The senior is responsible only for the technical part of his tasks. In addition to the technical part, the lead (if not a manager) also has team management and overall responsibility for the success of the development team.

2) I agree! No one bothers you to eat anything, adopting, among other things, the experience of senior colleagues.
With experience from different projects, you understand where you can “shoot yourself in the foot” and avoid using such approaches. Plus, you actively communicate with colleagues and know what problems they face in neighboring projects.
The company has specialized chats where you can discuss complex decisions or get advice on “what’s best.” We have a large Flutter team of 30 people.

“What was the growth due to? Soft skills or hard skills? What was the main focus?

It would be very interesting to read))”

It’s hard to say, since you can’t measure either one or the other) I was promoted due to a sufficient level of hard and soft skills. But in the beginning I paid more attention to the technical part. Over time, I realized that it was more profitable to upgrade soft skills as well (I described above how I revised my approach).

The most basic example. On the technical side, we can always help you out: show you the best approach and review your code.
It’s not toxic, not condescending to communicate within a team – how to teach a person? How to teach to take responsibility, offer solutions and try to peacefully resolve sensitive issues, smoothing out corners? You can try, but probably nothing)

It seems to me that software is still more important, since you always work in a team. Gone are the days when the entire project was carried out by one person. Now is the time for team development.

But it’s better to keep the technical part up to date. It’s also unpleasant to write the same thing to a person for a review)

“How are things going with Flutter now? How in demand are flateurists?

– is it easy for you to find Flutter developers? What mistakes do developers make in interviews and what are they missing?”

HH in a Flutter search with a filter in the job title returns only 144 vacancies. Not enough when compared with the native one.
Flutterists at the middle+ level are in great demand. Colleagues easily get the offers they need in good companies.

2) The easiest ones to find are juniors, since there are many of them)
More often than not, developers simply do not score points in the technical interview.
It happens that there are gaps in the technical part, but a person with sparkling eyes, and they take him. The sparkling eyes are not in the sense of “I have two loans and really need a job,” but in the sense of “oh, I didn’t know that, it’s very interesting, I’ll look into it some more.” And takes notes.
This is also a purely psychological moment) A candidate who falls short in technical terms and is given an offer is a much more loyal employee to the company in the future.

“And if we get closer to the topic, it’s interesting to learn about how you gained experience, how you got burned or, on the contrary, how you correctly chose the right stack for a project, what architectural solutions you chose in certain cases, how you sold the business on the need to implement the best solutions from an architectural point of view , if their implementation required more time than the business wanted, in general, everything that is inherent in a technical leader.”

Very interesting questions, but I don’t know how to answer them without falling under NDA))

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *