Before selecting, please read description of every level, and choose the one that suits your experience
Technical skillset and duties
IDE: Juniors navigate the interface and operate IDEs efficiently using the taskbar.
API: They know how to handle the most frequently used APIs.
Frameworks: Junior devs have worked with some frameworks and know about the popular ones that are worth using within their language stack.
Database development: A junior knows DB basic design techniques, ACID properties, and transactions. Also, a junior can write simple, select statements to retrieve information from the database.
Programming languages: Junior developers are usually familiar with one programming language. They will pick it right away and implement a semi-stable solution that solves most of the problems in certain use cases.
Platforms & tools: Juniors have professional experience with about three platforms. Their knowledge of platform internals is only skin-deep. They are aware of alternatives to popular and standard tools.
Day-to-day duties: Juniors usually get the least complex tasks, those with little impact on the final product.
Teamwork and perspective
Independent work Certainly, juniors need close supervision. They need strong mentoring to grow their skills.
Teamwork A junior must stay engaged and absorb from the team as much knowledge as possible.
Vision The problem with juniors is that they are code-focused, rather than development-focused. This prevents them from getting the big picture.
Technical skillset and duties
IDE After using IDEs for quite a while, a middle dev has memorized the shortcut keys for most frequent operations, really speeding up the work.
API Intermediate levels have deep and solid knowledge of the main APIs.
Frameworks.
Frameworks Middles are tech-savvy with frameworks which helps them write clearer and shorter code.
Database development Mid-levels are good at managing databases. They can design normalized DB schemas while taking into account the queries that will be issued. Middle devs are well-versed in using database views, stored procedures, triggers, and user-defined data types (UDT). They are adept in the object-relational mapping technique (ORM) used for converting data between incompatible type systems. In order to speed up the query process, they apply knowledge of index syntax to create custom clustered and non-clustered indexes.
Programming languages A mid-level developer understands functional programming and knows when and how to apply functional concepts in any language.
Platforms & tools Middles have already worked with more than four platforms and possess a deep understanding of how the platform functions including code execution. They are very comfortable with their package manager tools.
Day-to-day duties Mid-level software engineers are not commonly entrusted with highly complicated tasks that may require an in-depth level of engineering knowledge. Meanwhile, they may be tasked with designing a piece of the application to be prepared for the further transition to a senior developer. They are already capable of turning tickets into solutions, providing estimates on tasks, and assisting in decomposing larger sections of work.
Teamwork and perspective
Independent work Mid-levels can deliver work with less supervision while being assigned to relatively routine tasks.
Teamwork Middles actively collaborate with team members, including designers, business analysts, and architects.
Vision Middle developers have deepened their understanding of development cycle scenarios which allows them to practice Agile methods more accurately. They see the results of the occurring problems and learn how to avoid them in the future.
Technical skillset and duties
IDE A seniors’ expertise allows them to write custom macros to optimize the workflow.
API A senior has written libraries to add more functionality or to automate the most frequent processes without having to write code for them.
Frameworks Seniors have enough knowledge to build their own custom framework.
Database development A senior is well-versed in database administration, performance, and index optimization. Usually, they do the delicate work of composing advanced select queries. Since seniors know a given database structure from the inside, they are familiar with the DB maintenance features, in particular, DB mirroring and DB replication. These are the methods of transferring data from a primary to a secondary database. Seniors understand the two-phase commit algorithm (2PC) applied for coordinating a distributed transaction (commit/abort). They can replace slow cursor-based operations with much more efficient JOIN statements, where possible.
Programming languages Besides functional programming and OOP, they work with concurrent and logic languages.
Platforms & tools Seniors have had professional experience with more than 6 platforms. They are already creating debuggers or other tools necessary to enhance the platform. Seniors are the source advice on platform internals.
Day-to-day duties The multifaceted responsibilities expand far beyond coding. Seniors brainstorm the right technological solutions to complex problems. They take charge of the team, coordinating its workflow to consistently produce business value
Teamwork and perspective
Independent work A senior is the one providing guidance.
Teamwork Seniors put the team first and are always trying to figure out what they can do to help the members. They have good soft skills while balancing between the client and the team.
Vision Seniors see the final goal — the problems that the finished application must solve. A long-term vision is a crucial point in bringing value to the end-user.