In software development, to achieve a complete vertical implementation, there are at least four major knowledge areas (stacks), including:

  1. Frontend Development
  2. Backend Development
  3. DevOps
  4. Cybersecurity

Each of the major stacks also has many sub-stacks, such as:

  1. Asynchronous Programming
  2. Software Architectures
  3. Concurrent Programming
  4. Performance Profiling
  5. Testing
  6. Performance Testing
  7. Database
  8. Logging
  9. Infrastructure as Code
  10. Container
  11. Networking
  12. High Availability
  13. Authorization
  14. Authentication
  15. Key Management and many more.

Experience and quality of implementation differ in each sub-stack. So, if someone says they are a Full Stack Developer, but they are not aware of their proficiency in each stack, it is difficult to determine their actual level of expertise.

If every Full Stack Developer were professionally proficient in every area, this would not be a problem. But when everyone has high expectations of Full Stack Developers, and most of the time these expectations are not met, it misrepresents all Full Stack Developers.

I believe that if you want to reach professional proficiency in each stack, and assuming that you’re learning continuously, I think each stack requires a minimum of 10,000 hours of learning and implementation. Four stacks require a minimum of 40,000 hours, but because of the interrelated nature of knowledge, it can be learned faster, and to become a professional Full Stack Developer, a minimum of 30,000 hours is required.

Here’s the difference between an ideal Full Stack Developer and a non-ideal Full Stack Developer:

Non-ideal Full Stack Developer:

  • Just finished a 3-month Full-time Full Stack Developer Course and calls themselves a Full Stack Developer
  • Only capable of doing CRUD applications with React + Node.js + MongoDB
  • Manually deploys CRUD applications to AWS
  • Configures AWS DNS + Load Balancer + HTTPS

Ideal Full Stack Developer:

  • Has spent a significant amount of time in each stack
  • Capable of efficiently doing the following vertical implementation:
  • Building Web/iOS/Android/Hybrid Frontends
  • Integrating with Backends (e.g. Node.js, Ruby on Rails, etc.)
  • Setting up DevOps (e.g. AWS, Google Cloud, etc.)
  • Implementing Cybersecurity measures (e.g. encryption, firewalls, etc.)
  • Ensuring High Availability and Performance
  • Continuously improving the architecture, performance, and scalability of the system
  • Providing suggestions and feedback on the design, development, and testing processes.

Leave a Reply

Your email address will not be published. Required fields are marked *