One day I felt that I can envision the different levels of a software engineer. I started to think of the zero level as naivety, with no knowledge of software development, and to the last level 10, being able to be as if a God that masters all of the fields including programming language, academic knowledge like data structure and algorithm, open source contribution, complete and solid hands-on knowledge on different cloud infrastructure, and having the ability to be as a CTO in an IT company.
The purpose that I start to think about this is I found lots of engineers in the company. They might work close to you. But you think he/she is not easy to collaborate with because of the different skill levels they have and so-on-so-forth you might have several bad experiences with him/her. Therefore, the level system in your mindset will help you to quickly identify yourself also your team members so that you can facilitate the talk every time you get a chance.
With this level system, if you are only a developer without leading responsibility, you can identify yourself so that you know who can consult with and find the proper senior to guide your future direction to growth. And if you are a manager or a team lead, you can manage each project by assigning proper tickets to qualified team members or assigning a senior developer to mentor a junior developer. So let's get into the level system below.
Level 0 - Naive / No Experience,零知識
- Little to no knowledge of programming languages or software development.
- Limited understanding of basic computing concepts.
- May require significant guidance and training to perform even simple tasks.
Level 1 - Beginner (Hello World),初學者
Example: Writing a Simple Web Page
- At this level, an engineer can create a basic web page using HTML and CSS to display "Hello, World!" This demonstrates their understanding of basic web development concepts.
- The engineer is capable of understanding and implementing simple code examples and tutorials.
- They may struggle with more complex programming challenges and require close supervision.
Level 2 - Junior Developer (Algorithm Homework),完成畢業專題
Example: Building a To-Do List Application
- The engineer can build a simple To-Do list application using a programming language like JavaScript. This involves creating an interface, adding tasks, and marking them as completed.
- They are familiar with basic data structures like arrays and loops, and can implement algorithms such as sorting and searching.
- May need assistance in troubleshooting errors and understanding more advanced coding patterns.
Level 3 - Intermediate Developer (Basic Application),完成產業交付的軟體功能
Example: Developing a Weather Forecast App
- The engineer develops a weather forecast application that provides real-time weather information for a user's location. This involves integrating with a weather API, displaying data, and implementing basic user interactions.
- They are comfortable working with APIs and external libraries to add functionality to their applications.
- Can independently complete tasks within their domain and able to prove the quality of your code, but may require guidance on more complex features.
- Able to work smoothly with other team members by using version control tools, like Git.
Level 4 - Senior Developer (Complex Feature),整合多個模組滿足客戶完整需求
Example: Adding Social Authentication to a Blog Platform
- The engineer enhances a blogging platform by adding social media authentication options. Users can log in using their social media accounts, improving the user experience and security.
- They are skilled in debugging and optimizing code and have a good grasp of software architecture principles, like SOLID
- Capable of independently designing and implementing new features with good extensible, maintainable, and traceable code standards, but may seek guidance on highly specialized or cutting-edge technologies.
- Well-known knowledge of several best practices in the development cycle and ability to quickly decrease the development cycle.
- Responsible to do code reviews on junior engineers.
Level 5 - Lead Developer (Scalable Service),構建隨需求增加易擴展的服務
Example: Leading the Development of a Ride-Sharing App
- The engineer leads a team to build a ride-sharing app that can handle thousands of simultaneous users. This involves designing the backend infrastructure, optimizing location-based services, and ensuring reliable real-time updates.
- Proficient in architectural design, performance optimization, and project management.
- Capable of mentoring and guiding junior developers, and may participate in architectural decisions.
- Making decisions on the project best practices and the detailed techniques of accountable projects.
Level 6 - Staff Engineer (Underlying Infrastructure),建構依需求所需的基礎架構
Example: Designing a Microservices Architecture
- The engineer designs a microservices architecture for a complex application. They create a system with decoupled services, containerization, and orchestration using tools like Kubernetes.
- They have deep expertise in software design patterns, distributed systems, and cloud-native technologies.
- Often lead cross-functional teams and drive technical direction for larger projects.
- Able to identify the scope of architecture and manage the cost-down infrastructure.
Level 7 - Senior Staff Engineer (High Concurrent Users),百萬級別的服務調校
Example: Revamping a High-Traffic Online Marketplace
- The engineer leads a team to revamp an online marketplace that experiences high traffic during sales events. They optimize the database, implement caching strategies, and ensure high availability.
- Proficient in performance tuning, database optimization, and designing systems to handle millions of concurrent online users.
- Capable of providing technical leadership on critical projects, influencing engineering best practices, and orchestrating solutions for scaling challenges.
Level 8 - Principal Engineer (Influencing Strategy),決定公司產品的方向與策略
Example: Shaping the Cloud Strategy
- The engineer plays a key role in shaping the company's cloud strategy. They evaluate cloud providers, make decisions about hybrid or multi-cloud architecture, and ensure compliance and security.
- Possess strong business acumen and contribute to strategic planning beyond technical decisions.
- Often collaborate with executive leadership and mentor other engineers.
Level 9 - Distinguished Engineer (Industry Expert),產業專業顧問
Example: Innovating Through Research and Development
- The engineer contributes to the industry by leading research and development projects. They might invent new algorithms, publish research papers, and speak at conferences.
- Recognized as a subject matter expert, influencing the field through innovation and thought leadership.
- Provide guidance on challenging technical problems and contribute to long-term organizational growth.
Level 10 - Chief Technical Officer (Data-Driven Company),首席技術官
Example: Building and Managing a Data-Driven Company
- The CTO builds and manages a data-driven company that offers advanced data analytics services to clients. They define the company's vision, lead research and development, and guide the creation of cutting-edge data products like those offered by Palantir.
- Responsible for setting the technical direction, driving innovation, and aligning technical strategies with business objectives.
- Represent the company's technical vision externally and establish strong industry relationships.
😁
Good work!