Alexey Marinin: "Growth is the ability to work under conditions of uncertainty."

How to Grow from Middle to Senior and Beyond: Advice from a Leading iOS Developer

Alexey Marinin
Alexey Marinin

The technology industry is evolving at a dizzying pace, and according to Toggl, hiring managers and growing companies must either upskill their employees or revise their candidate selection processes. AI and automation are replacing jobs in some areas while creating opportunities in others. Meanwhile, competition has never been fiercer—thanks to a global talent pool fueled by remote work, thousands of applications for a single position have become the new norm. Who will break ahead in this race?

The expert we've consulted, Alexey Marinin, Senior iOS Developer at a leading online classifieds platform, Avito, has progressed from an intern to a senior developer at major companies and shares his experience on how to develop beyond the middle level. His leadership achievements include overseeing the development of a recommendation system in applications that helped reduce external advertising costs by $13 million USD and implementing an advanced analytics system to improve data accuracy. In an interview with Tech Times, he discussed what skills are critical at each career stage, how to step out of your comfort zone, and why product thinking matters more than pure coding skills.

"Companies are now keen on hiring specialists with cross-functional expertise."

Alexey, the IT industry is witnessing a noticeable rise in competition today. What do you think is driving this change?

— I've noticed this trend since the end of the pandemic, when people, forced to stay home, relied entirely on the internet to meet their needs. At that time, IT companies experienced a surge in profits, and demand for specialists skyrocketed. Companies were practically battling for candidates who even vaguely fit their open positions—interviews were easy, and salaries were exceptionally high.

During that time, many individuals who had lost their income chose to pivot to careers in IT. The entry threshold was relatively low—you could complete courses in six months and land a job. However, soon the profits of IT companies began to decline rapidly. Layoffs followed, and industry giants began downsizing bloated teams, often letting entire departments go. The first to be affected were mid-level and junior specialists.

Suddenly, the market was flooded with displaced professionals, while the number of vacancies at those levels dropped significantly. The global economic crisis further exacerbated the situation by shrinking budgets, which in turn led to a decline in available positions. This impacted both global and local markets, with specialized fields such as iOS development suffering the most. Native mobile applications had always been a luxury—expensive to develop and requiring highly skilled specialists, far more so than web applications. As a result, a massive wave of junior and mid-level specialists entered the market simultaneously, greatly intensifying competition.

One group, however, remained largely unaffected—senior-level specialists and above, who continued to be in high demand. That's why upskilling has become more crucial than ever.

So, senior engineers and team leads don't need to worry about job security?

— Demand for them remains high, and there are plenty of open positions. Additionally, due to workforce reductions, companies are now keen on hiring specialists with cross-functional expertise—those who can step into different roles when necessary.

For businesses, an experienced professional who not only excels in development but also understands testing, analytics, or other adjacent competencies is far more valuable. Increasingly, the ideal candidate is not just a proficient developer but someone who can effectively translate business requirements into a fully realized product.

Does industry growth also play a role? After all, expansion usually comes with evolving skill requirements.

— Absolutely. AI technologies are advancing rapidly, and today, companies need more than just someone who can write code. The most sought-after professionals are those who grasp how the system and the team should function holistically, guiding them toward business goals.

The most in-demand specialists are those open to change, willing to learn new tech stacks or shift roles when needed. For instance, a manual tester transitioning into automation, an iOS developer exploring cross-platform solutions, or an Android developer.

"The difference between levels lies in the type of thinking."

Alexey, your journey from intern to lead developer at major and diverse companies like Sberbank, MTS, Ozon, and Avito has enabled you to refine key skills at every stage. What's the difference between junior, middle, senior, and lead developers?

— The difference lies in the volume of knowledge and the type of thinking. A junior developer is a specialist just starting their journey. Their main task is to complete small tasks or parts of more complex ones. The key is finding the right balance between independence and the ability to ask for help. If you constantly seek advice, you won't learn to find solutions on your own, which is bad because programming is about finding solutions under conditions of uncertainty. But if you never ask for help, you can get stuck on simple things for too long.

A middle developer is already an independent specialist who can handle most routine tasks. But there is a trap here: many people stop developing at this very level. To move forward, you need to take initiative and consciously take on tasks that can elevate your expertise, technically complex ones that you haven't encountered before, and that you do not know how to solve. This way, step by step, you'll broaden your horizons, improve your coding skills and ability to read others' code, and learn to work with a high level of uncertainty, which is exactly what makes a senior developer.

The senior level requires a fundamentally different approach and development, not just in technical skills but in soft skills, too. A senior must be able to handle any technical task, even if the requirements are vague. But most importantly, at this level, it's critically important to develop not just technical skills but product thinking. A senior interacts with business, developers from other domains, analysts, and designers, learning to transform abstract wishes into concrete technical solutions.

A lead developer is a completely different story. They communicate directly with the business, see risks in requirements, and propose optimal solutions. This is the level of strategic thinking and decision making where technical skills are important but no longer defining.

"Practice independently, 'digging' to the root of problems."

You mentioned that growth is the ability to work under conditions of uncertainty. How can a middle developer consciously step out of their comfort zone?

— There's only one way to break free from routine: consciously seek challenges. In my practice, there was a telling example. In one project, I noticed developers were spending a disproportionate amount of time creating mock data for tests, objects that simulate the behavior of real components in a controlled environment. Essentially, they were doing the same work twice. I analyzed the problem, calculated the time and financial costs, and proposed a solution to create a unified system for generating test data.

The team supported the initiative. As a result, test writing time decreased by 15%, and the total code volume was reduced, which sped up project builds. But most importantly, I gained invaluable experience working with tasks that go beyond simple coding: problem analysis, effect calculation, and presenting solutions to the team.

How can a technical specialist develop product thinking?

— Start small, show interest not just in your part of the task, but in how it fits into the product. For example, when implementing a new form field, ask: Why does the user need it? How will it affect other system parts?

Start participating in requirements discussions. If the business wants a "callback form," a senior can clarify details themselves: what data is needed from the backend, how it will look on the frontend, and what edge cases might exist. The more you interact with business, even as an observer, the better you understand the product. Pay attention to how business formulates needs, and how analysts transform them into requirements. Practice independently, "digging" to the root of problems.

"Leadership roles are a separate profession."

You have served as a judge at hackathons, mentored colleagues, and authored multiple articles for academic and professional publications, demonstrating strong mentoring abilities. What other soft skills became key for you after transitioning to the senior level?

— The most important one is looking for solutions to problems rather than someone to blame, and the ability to conduct dialogue. Establish communication between employees of different professions, delve into issues, promptly admit when you don't understand something, and clarify significant details. Delegate and trust in this, understanding which things you're competent in and which are better entrusted to others, or ask for help. Key senior-level skills include the ability to simplify complex concepts, facilitate constructive discussions, provide meaningful feedback, and resolve conflicts while preserving a positive work environment.

What should you look for when choosing an employer if you want to grow into leadership roles?

— Leadership roles, such as team lead, constitute a distinct profession. Contrary to popular belief, the career ladder doesn't look like a sequence of junior-middle-senior-team lead—in reality, team lead stands apart, and you can become one starting from middle level. If your current job doesn't offer growth opportunities, consider transitioning to a company that fosters professional development, usually found in large corporations or rapidly growing startups. Pay special attention to internal processes: clear and well-established ones will help you understand how the company operates faster, while bureaucratic ones will complicate everything. Seek out organizations with structured promotion pathways, internal training programs, and regular performance evaluations. This will enable you to develop a clear achievement plan, systematically bridge knowledge gaps, and align your progress with company assessments. Don't hesitate to discuss your career aspirations during interviews—employers actively seek candidates with leadership potential.

"Changing jobs when conditions no longer suit you is normal."

You've changed several companies. How do you understand when it's time to leave for growth?

— Every company is a strategic career step. To understand whether to stay, you need to answer several questions honestly. What have I learned in the last 3–6 months? What skills have I acquired? Do they align with my career goals? If the answers are unsatisfactory—that's a warning sign.

Before leaving your current role, have an open conversation with your manager about your career aspirations. A good manager will either present growth opportunities or acknowledge that none are available.

Most importantly, understand that changing jobs when conditions no longer suit you is normal. The ideal job market scenario is when both the employee's and employer's needs align—finding such a company allows you to achieve personal goals while contributing to business success, creating a win-win situation.

Personally, I ensured that each new project differed from the previous one, whether in terms of technologies, processes, or the company's development stage.

You've worked in both startups and corporations. Which company type is better for growth at different career stages?

— At the start of a career, large companies with established processes and training materials are ideal for junior developers, where you can generally familiarize yourself with how the industry functions. Middle developers can already consider smaller companies with more flexible processes, where you're closer to users and business needs, and have more influence on the product. For senior professionals, product companies or startups are often the best choice, as they offer a closer connection between development and business, along with broader responsibility areas.

You've likely experienced different workplace structures—some with strict regulations, others offering complete flexibility. How can you determine whether a company's culture aligns with your professional growth?

— Only through experience. However, there are some indirect signs that companies have better processes. Typically, non-government organizations and non-bank institutions offer more dynamic environments. A well-developed technical culture is important—as a rule, such companies are well-known, with employees speaking at conferences, writing technical articles, and actively participating in community life. One way to gauge their processes is by watching conference presentations online—if speakers discuss them in detail, it often indicates well-structured operations. Processes shouldn't interfere: developers write code, analysts develop technical documentation, and mixing these responsibilities hinders growth. And of course, for well-rounded development, working in both startup environments and large-scale projects with long-established market presence is beneficial. The nature of tasks will vary significantly—startups might require building a network layer from scratch, while in an established project, focus on debugging complex issues, integrating third-party services, and enhancing test coverage to prevent system failures.

"The transition from middle to senior is a qualitative change in thinking."

You keep notes and recommend others do so. How to systematize knowledge so it contributes to career growth?

— I use Notion, an analogue of Confluence, to keep notes on all topics I study. To track my progress, I use a Kanban system with a board on Miro where I clearly define my desired outcome and break down the tasks needed to achieve it. I also maintain a schedule in Google Calendar, allocating 1–2 hours each workday and 4 hours on weekends for professional development. During this time, I take courses, read technical literature, and watch lectures such as WWDC.

What global trends in iOS development should specialists consider today?

— I would pay attention to studying SwiftUI and Unidirectional Data Flow architectures, as well as Swift Modern Concurrency. These aren't the most popular technologies yet, and production still predominantly uses UIKit, GCD, and conventional architectures like MVC, MVVM, and Viper, but I'm confident everything will change soon. It's also worth studying adjacent fields—for example, Kotlin will help you better understand colleagues developing for Android and allow writing multiplatform apps with Kotlin Multiplatform Mobile, which is highly in demand now and will continue gaining popularity. And it never hurts to brush up on programming fundamentals—specifically data structures and algorithms: I see companies increasingly including algorithmic sections in interviews, and preparation for such tasks will become a competitive advantage in the job market.

What's your final advice for middle developers wanting to grow to senior and beyond?

— Consciously choose complex tasks where you're not 100% confident. Develop not just technical skills, but product thinking, communication abilities, and the capacity to see the big picture. Teach others—it's the best way to understand a topic yourself. Participate in community life. Follow trends but maintain fundamental knowledge. Be proactive—suggest improvements, look for problems and solutions. Select projects and companies offering growth opportunities. And remember that the transition from middle to senior is a qualitative change in thinking, the journey from executor to specialist who can independently make decisions and take responsibility for them.

ⓒ 2025 TECHTIMES.com All rights reserved. Do not reproduce without permission.

Join the Discussion