Climbing the Principal Engineer Ladder with Ziverge

Climb from intern to principal engineer at Ziverge

Tech Trends

Climb from intern to principal engineer at Ziverge

John A. De Goes

At Ziverge, we recently introduced a formal career development program, which is inspired by The Programmer’s Pathway.

We recently gave all of our engineer’s the opportunity to choose one of the separate tracks that fits with the nature of a custom software development and consulting organization like Ziverge.

One track was selected by more than any other employee: the track of the Principal Engineer.

The Principal Engineer track, which starts at Intern and goes all the way up to Engineering Fellow, is the generalist track for the true lover of software engineering and computer science.

Though knowing little more than “Hello World” at the start, by the end of the track, the Principal Engineer has become an unstoppable force of nature–adept at architecture, implementation, debugging, distributed systems, infrastructure, computer science, and virtually every other topic that might be relevant to the task of forging technology into an agent of positive change.

In this post, I will outline the journey you can take, at Ziverge and other companies, to become one of the greatest software engineers the world has ever seen.

Intern

I often tell aspiring software engineers that the hardest step they will ever take in their career is the one from having no professional experience writing software, to that very first position where they contribute their first line of code to a production system.

The reason is simple: no one wants to hire someone with unproven skills.

Fortunately, the intern position exists to help straddle the gap between aspiring software engineer and professional software engineer.

You don’t need to know too much to become an intern, but you should know at least one computer programming language (the one you will use on the job), and be able to write simple but useful programs in that language.

Your journey to Principal Engineer starts here.

Description

An intern has some theory of computer programming but lacks practical experience contributing to production systems. Interns require close supervision and guidance to deliver value.

Requirements

  • Familiar with the basics of data structures and algorithms
  • Knows at least one programming language well enough to solve simple problems
  • Understands computers at a rudimentary level, including CPU, memory, and networking
  • Can use build and compiler tooling to run simple programs
  • Able to diagnose and fix simple problems in their own code

Timeframe

You can expect to go from knowing nothing to an intern with around 1 - 4 years of knowledge and experience gained from self-teaching, university, or trade school.

Junior Software Engineer

After a solid internship, which gives you experience writing real world software, your next stop is junior software engineer.

What a junior software engineer may lack in knowledge and skills, they make up for in passion for learning, and since they are just starting their journey, they learn a tremendous amount in a short period of time.

Description

A junior software engineer has transitioned from theory to practice and can deliver value to production code bases. They possess a solid foundation and write clean, maintainable code.

Requirements

  • Proficient in one or more programming languages and their ecosystems
  • Able to implement features and fix bugs with guidance from senior engineers
  • Understands and applies software development best practices like testing and version control
  • Effectively communicates with team members and stakeholders
  • Demonstrates a strong desire to learn and grow as an engineer

Timeframe

You can expect to go from intern to junior software engineer in around 1 year.

Software Engineer

After enough time struggling to write, debug, and maintain larger systems, you will grow from junior software engineer to software engineer.

When a software engineer, you begin to come into your own: you develop skills and learn theory that will power your rise to ever greater heights.

Description

A software engineer has a strong grasp of development principles and can work independently on complex tasks. They design and implement robust systems that meet requirements.

Requirements

  • Makes steady progress on large and unfamiliar code bases
  • Resourceful in finding solutions to novel problems
  • Provides constructive code reviews for other engineers
  • Proficient in multiple programming languages and paradigms
  • Understands software design patterns and system architecture

Timeframe

You can expect to go from junior software engineer to software engineer in around 2 - 4 years.

Senior Software Engineer

The senior software engineer is the workhorse of our industry. Many projects live or die based on the percentage of senior software engineers working in them.

A highly coveted title, the harsh reality is that many so-called “senior” software engineers suffer from title inflation. No one can really be called a senior software engineer unless they’ve been working professionally for a decade or more. Even then, due to lack of interest or ability, some will never graduate to senior software engineer.

A lot of engineers think that they have made it once they attain the position of senior software engineer. In some ways, they have, as job applications become easier given the wealth of industry experience seniors demonstrate.

But in other ways, senior software engineer is just the starting point for the profession.

Description

A senior software engineer has extensive development experience and leads the design and implementation of large-scale systems. They are domain experts who mentor junior engineers.

Requirements

  • Deep expertise across the software development lifecycle
  • Quickly learns and applies new languages and tools
  • Understands, maintains, and debugs software written by other engineers
  • Proactively identifies and mitigates technical risks
  • Drives improvements to engineering practices and processes

Timeframe

With sufficient breadth and depth of experience, and the right mentors, you can expect to go from software engineer to senior software engineer in around 4 - 6 years. This means that the road to becoming a senior software engineer takes a decade or more.

Lead Software Engineer

In any team of senior software engineers, at least one of them will often stand out. This individual combines a passion for their finely-honed craft with the experience necessary to absorb both the small picture and the big picture, the technical side and the business side.

Combined with an ability and willingness to communicate proactively, both to colleagues and to management, these rare engineers have cultivated leadership skills, and they quickly become the go-to engineer on the team for the toughest challenges.

At Ziverge, demonstrating these leadership skills is what gets you promoted from senior software engineer to lead software engineer (unlike at some other companies, at Ziverge, lead software engineer does not imply management responsibilities of any kind).

Description

A lead software engineer emerges as the go-to expert on any team they join. Their deep knowledge and ability to drive projects make them highly sought-after for guidance and advice.

Requirements

  • Consistently recognized as the most impactful resource on the team
  • Provides technical direction that is widely respected and followed
  • Proactively identifies and resolves complex technical roadblocks
  • Collaborates cross-functionally to align technical and business objectives
  • Comfortable giving positive and negative constructive feedback

Timeframe

For those with the aptitude and drive, you can expect to go from senior software engineer to lead software engineer in around 4 - 6 years.

Staff Software Engineer

As you climb the ladder of principal engineer, the next stop on your journey is that of staff software engineer.

Though also subject to title inflation, a true staff software engineer is rare and highly valuable to an organization–literally the last person in a team the organization would lay-off in a crunch.

Staff software engineers have more experience than senior engineers, and combine their cultivated leadership skills with a technical ferocity that allows them to plow through problems that would stump some junior engineers for a lifetime.

Description

A staff engineer is a technical leader who drives innovation and shapes the organization's technical vision. They are multi-domain experts who tackle the most complex challenges.

Requirements

  • Consistently the most productive and impactful engineer on their team
  • Designs and troubleshoots complex, large-scale distributed systems
  • Implements highly performant and scalable architectures
  • Significantly influences the organization's technical strategy and direction
  • Recognized as a subject matter expert internally and externally

Timeframe

You can expect to go from lead software engineer to staff software engineer in around 4 - 6 years. Not everyone who wants to become a staff software engineer will become one, even given an unlimited amount of time.

Senior Staff Software Engineer

After becoming a staff software engineer, the next step on the ladder is that of the senior staff software engineer.

Senior staff engineers are not only remarkable engineers, but they have broader visibility outside the organization: they contribute to open source, they do novel work in some technical domain, they speak at conferences, and they have a name and reputation.

Senior staff engineers are a dream role model for every engineer to aspire to.

Description

A senior staff engineer is a world-class technical leader who pushes the boundaries of what's possible with technology. They are recognized thought leaders who make a major impact.

Requirements

  • Sets the bar for engineering excellence that others emulate
  • Leads critical open source projects and speaks at major industry events
  • Consistently delivers on even the most complicated, high-stakes projects
  • Drives adoption of cutting-edge technologies that yield competitive advantage
  • Mentors and grows engineering talent through their presence

Timeframe

You can expect to go from staff software engineer to senior staff software engineer in around 4 - 6 years. If you made it as far as staff software engineer, your goal of eventually progressing to senior staff software engineer is quite high.

Principal Software Engineer

The final step on the journey for many highly talented engineers is that of the principal engineer, the culmination of literally decades of experience across numerous projects.

Principal engineers have such depth they can tackle the greatest challenges, which would stump other engineers for decades. They do so with confidence, not because they know the answer to every problem, but because they have no fear (having been tasked with the impossible many times before) and they have developed systems that ensure steady progress.

A true principal engineer is a force of nature.

Description

A principal engineer is a visionary technical leader who defines the organization's technical direction. They own the overarching technical architecture and uphold the highest standards.

Requirements

  • Decades of experience across diverse codebases, languages, and problem domains
  • Adept from systems-level architecture down to low-level code optimization
  • Tackles daunting, never-before-solved challenges requiring innovation and R&D
  • Defines and promotes technical best practices and standards org-wide
  • Advises executives on aligning tech strategy with business priorities

Timeframe

Although this varies you can expect to go from senior staff software engineer to principal engineer in around 4 - 6 years. No one rightfully gets to the position of principal engineer without decades of experience spanning a multitude of diverse projects.

Engineering Fellow

Once in a while, a principal engineer's accomplishments are so great, they change the face of software engineering forever–and not one time, in a minor way, but consistently, in major ways.

These engineers take the last step on the ladder, to the engineering fellow.

The engineering fellow is literally the accomplishment of a lifetime, and the highest possible honor that a software engineer can attain.

Description

An engineering fellow is a world-renowned technical pioneer who shatters limitations with groundbreaking achievements. Recognized as one of the greatest engineers in the world.

Requirements

  • Globally recognized as a foremost expert in some technical domain
  • Leads transformational research and development; holds pioneering patents
  • Sought out to solve the most complex engineering challenges facing humanity
  • Trusted technology advisor to the C-suite and board of directors
  • Internationally celebrated thought leader, visionary and technical revolutionary

Timeframe

There is no set time frame for going from principal engineer to engineering fellow. The timeline is often driven by highly innovative technical contributions, such as multiple novel inventions and patents, or becoming globally recognized in multiple fields.

Summary

The journey to becoming a Principal Engineer is long and challenging, but ultimately rewarding for those with the passion and tenacity to see it through.

Starting as an intern, you'll progress through the ranks of junior, mid-level, and senior engineer, acquiring knowledge and experience along the way. As you grow, you may take on leadership roles like lead or staff engineer, driving innovation and shaping technical direction.

The truly exceptional may reach the heights of senior staff engineer, principal engineer, or even engineering fellow–a pioneer who shatters limitations and transforms software engineering.

This track  requires decades of hard work and continuous learning. But for those determined to succeed, the rewards are immense: tackling the most complex challenges, mentoring the next generation, and leaving a lasting legacy.

If you're ready to embark on this incredible journey, remember that every step counts. With dedication, hard work, and a passion for your craft, you too can climb the Principal Engineer ladder and achieve greatness.

If you want to continue your journey at Ziverge, please see our Careers page.

Continue reading

Tech Trends
March 4, 2024

The Programmer's Pathway

read article
Tech Trends
February 4, 2024

An Introduction to ZIO Kafka

read article
Tech Trends
February 4, 2024

Functional Design

read article

Subscribe to our newsletter

Stay ahead with the latest insights and breakthroughs from the world of technology. Our newsletter delivers curated news, expert analysis, and exclusive updates right to your inbox. Join our community today and never miss out on what's next in tech.