[ $davids.sh ] β€” david shekunts blog

🦍 Developer Evolution v1 "Branches of Development" πŸ‘¨β€πŸ’»

# [ $davids.sh ] Β· message #20

🦍 Developer Evolution v1 "Branches of Development" πŸ‘¨β€πŸ’»

Since the topic of developer evolution has started, I decided it's best to begin with the basics and gradually cover the entire path.

The first article will be dedicated to the general paths of developer development (I'm only considering front and backend developers) and key differences.

So, the character development tree:

  1. Zero – a person with several pet projects, able to start gradually solving detailed microtasks. Doesn't know how to set deadlines.

  2. Junior – 1 year in development, confidently masters the main language and is able to independently solve tasks, sometimes asking questions to senior colleagues. Learns to estimate deadlines, but makes mistakes 70% of the time.

  3. Middle – 2-3 years in development, calmly solves 80% of tasks in their stack, automates work, can jump into a neighboring area (back/front) and complete a couple of tasks, consciously uses development patterns and knows how to google. Learns the art of balancing "beautiful code" and "working solution". Can solve a task of almost any complexity in the format "quick and dirty and into production".

  4. Senior – 3+ years in development, calmly solves full-stack tasks, thinks ahead about project architecture and development strategy, knows when to "quickly get it working" and when to invest time in designing a feature. Can estimate a task at a glance and be off by 20%. Finds a balance between speed and quality. Knows how it's done.

  5. Team Lead – 2-3+ years in development, can jump from Middle, because here soft skills, people management, requirement analysis, development process creation, and agreements with the business are more valuable. Can estimate the team's throughput, considering not only technical but also psychological aspects. A leader for whom their team is their family.

  6. Architect – 5+ years in development. Needed when the number of developed related services and allocated teams exceeds 5-10 (and I'm not talking about microservices), so often found as a "holding architect". Knows all the subtle nuances of the system and can answer any question (for a modest sacrifice). Deals with infrastructure, low-level optimizations, solves load and data storage and processing issues. The result of their work – schemes, answers, and solutions.

  7. CTO – 5+ years of work, like other "directors", should be well-versed in business aspects, deals with budgeting and hiring quotas, can offer breakthrough technological solutions for business development, builds a backlog for 3-6 months+. Most often no longer writes code themselves, but works with Team Leads, Architects, and Senior developers.

And there are many interesting side branches of development, including: Web Animation Developer, Business System Analyst, GameDev, Data Engineer, and the most delicious Product Engineer.

If you're interested in me continuing to reveal each of these positions, telling about the specifics of work, pros and cons, task spectrum, and success criteria, financial and market opportunities, as well as revealing the cool side branches of development, jump into the comments and put πŸ‘Œ sexy emoji πŸ…

#evolution

  • @ 🦾 IT-Dressing room πŸ’ͺ Β· # 8

    Yes, I decided to try comments, it should make discussions more convenient.

  • @ Chu Β· # 9

    πŸ˜‰

  • @ Maxim Averin Β· # 11

    😍😍😍 Amazing that you're back. Everything is explained very clearly and concisely!

  • @ Ildar NodeJS Nogmanov Β· # 13

    πŸ‘πŸ‘πŸ‘ It would be interesting to read about engineering cultureβ€”who should be responsible for its development, what the consequences of its absence are, etc.

  • @ Leijona Β· # 16

    I'll be pedantic, but the word stack is spelled with an "e," just like the words "web," "cache," and "tag."

  • @ Maksim Β· # 17

    πŸ‘ for the comments and πŸ‘Œ

  • @ 🦾 IT-Dressing room πŸ’ͺ Β· # 18

    Yeeeee boooiiiiiz

    Everything's fixed and taken into account πŸ˜‰