The difference between junior, middle and senior developer.

hrtval
4 min readJan 8, 2024

--

Hi!

Some time ago, I found myself contemplating the criteria used by developers to determine their proficiency levels. I wondered about the specific factors that place an individual in one of three distinct grades and pondered where I stood in this classification. What distinguishes the threshold that, when crossed, propels one’s grade upward?

In this piece, I aim to explore the disparities among developer grades (or levels, as you may prefer). Drawing from my experience of interviewing for a junior Flutter developer position, I wish to share my insights with you. If this topic piques your interest, I invite you to join the discussion. Your comments and feedback are highly valued, and I look forward to engaging with them.

My name is Alex

Allow me to introduce myself briefly. I’m Alex, an information security officer with a wealth of experience in guiding organizations through the intricacies of compliance. I specialize in identifying the necessary acts and documents essential to meet diverse requirements. Additionally, I am adept at overseeing the certification process, ensuring that your company or system aligns seamlessly with government standards in the realm of information security — a task that occupies my daily endeavors.

While my formal education concluded in 2008, my journey in information security commenced in 2004, granting me almost 19 years of invaluable experience in this dynamic field. Alongside my professional role, I have embraced a role as a university teacher, sharing my wealth of knowledge with aspiring information security officers.

My multifaceted career has equipped me with a spectrum of both soft and hard skills. I excel in interpersonal communication, adeptly navigating diverse scenarios. Known for my self-organization and responsibility, I consistently deliver work well before deadlines, showcasing my efficiency and dedication to excellence.

The developer

In 2015, my journey into app development commenced as I delved into learning Swift, eager to create applications for iOS. While I gained initial experience and successfully built a few iOS apps, my true evolution as a developer began at a later juncture.

My Swift proficiency served me well until I faced the challenge of creating an app for my personal project, spanning three platforms: iOS, Android, and Web. This is when I crossed paths with Flutter in November 2019. Motivated by the desire to craft my own CRM system for management companies, I immersed myself in Flutter development.

As I navigated the complexities of building the CRM system, a realization dawned on me — I aspired to become a proficient Flutter developer. Driven by this ambition, I actively sought a junior position, participating in around 7–8 interviews, including one with EPAM. Regrettably, I encountered setbacks in most of these attempts.

In my quest to understand where I stood in terms of expertise, I grappled with the question: What grade do I have as a developer, and how can I assess this?

The grades

The most prevalent developer grades, as highlighted in the title of this article, are commonly recognized as junior, middle, and senior. To gain a more nuanced understanding, let’s delve deeper into the descriptions available on the internet.

Junior Developer:

- Typically for individuals with minimal professional experience or recent graduates.

- Requires supervision and guidance.

- Focused on learning and gaining practical experience.

Mid-Level Developer:

- Demonstrates a solid understanding of programming languages and development concepts.

- Takes on more complex tasks and responsibilities.

- Works somewhat independently but may still seek guidance on challenging problems.

Senior Developer:

- Considerable experience and expertise in a specific technology stack or domain.

- Takes a lead role in projects, providing guidance to junior developers.

- Involved in architectural decisions and may mentor others.

If this classification holds true, I find myself in a position where the Junior level doesn’t quite align with my skills. I possess valuable experience and operate without the need for constant guidance. As for the perpetual journey of learning and gaining practical experience, I believe it’s a continuous process regardless of skill level.

On the other hand, the Senior developer tier doesn’t quite fit either. While I lack extensive experience and don’t take the lead in guiding junior developers, I actively contribute to architectural decisions — underscoring the belief that we are perpetual learners. The creation of app and system architectures serves as a continual learning path.

Hence, I currently identify myself as a Middle developer. However, I acknowledge that this classification may not be entirely accurate, as the quality of my code, though functional, may require refinement. While I can successfully develop entire systems with backend and client applications that function, there is room for improvement in the internal code quality.

The question

Now, I’m curious to hear from you. How do you go about defining your developer grade? Share your insights and experiences — I’m eager to learn from your perspective! Thanks!

--

--