Juniors Are Doomed And This Is Good (LLMs Hype, Copilots, and The Turning Point)
Published: 2024-06-25 19:53:22

TL;DR
get good or quit tech

## Junior Engineering Is Hard

A junior engineer is a person who is just starting in tech. Be it frontend, backend, or operations, it is a person just starting out. How can you distinguish a junior engineer from a mid-level or a senior? Quite easy, actually. Here are the top 5 signs to catch a junior:

- Highly intensive desire to talk about tech
- Iressistable need to express an opinion
- Constant questions that can be googled
- Aggressive display of superiority over non-tech acquaintances
- Constant, loud, neverending, ear-numbing, complete and utter yapping

Ah, yes. The junior engineer, an alpha speciment indeed.

But what exactly are junior engineers doing in their daily worklife? Well, this has been a hot topic since I have been in tech. Let's explore more by looking deeper into three categories:

- Frontend
- Backend
- Operations

**Frontend**

Requirements for a junior frontend engineer role:

- HTML/CSS: Proficiency in HTML5 and CSS3, understanding of web standards, and responsive design principles.
- JavaScript: Good knowledge of JavaScript (ES6+), including DOM manipulation and JavaScript frameworks/libraries such as React, Vue.js, or Angular.
- Version Control: Familiarity with Git and GitHub or other version control systems.
- Web Performance: Basic understanding of optimizing web applications for maximum speed and scalability.
- Cross-Browser Compatibility: Understanding of how to ensure consistency across various browsers and devices.
- Debugging: Basic skills in using browser developer tools to debug and profile applications.
- API Integration: Experience with RESTful services and APIs.
- Build Tools: Familiarity with build tools such as Webpack, npm, or Yarn.

You need to know HTML and CSS. You need to know JavaScript. You need to know your way around a library like React. GIT. SEO and PageSpeed Insights. Tailwind, Bootstrap, Flexbox, Grid. Be able to write unit tests. REST, CORS, data transformation. Builders.

Often you will also be required to understand UI/UX principles. You will need to participate in scrum and agile rituals. You will also find yourself bashing your head against technologies like Docker, be required to at least once troubleshoot a CI/CD pipeline in Github Actions, Azure DevOps, or Gitlab, and worst of all - experience the absolute horror of *rebase and merge*.

All of this while nobody takes you seriously because you are *only doing frontend*.

Takeaway: being a frontend sucks.

**Backend**

Requirements for a junior backend engineer role:

- Programming Languages: Proficiency in one or more backend programming languages such as Python, Java, Ruby, Node.js, or PHP.
- Database Management: Understanding of relational databases (e.g., MySQL, PostgreSQL) and non-relational databases (e.g., MongoDB, Redis).
- API Development: Experience in designing and developing RESTful APIs and/or GraphQL APIs.
- Version Control: Familiarity with Git and platforms like GitHub, GitLab, or Bitbucket.
- Server Management: Basic knowledge of server, networking, and hosting environments (e.g., Linux, Apache/Nginx).
- ORM Frameworks: Experience with Object-Relational Mapping frameworks like SQLAlchemy, Hibernate, or Django ORM.
- Security: Basic understanding of security principles and practices, including data protection and authentication.
- Testing: Familiarity with backend testing frameworks and tools, such as JUnit, pytest, or Mocha.
- Containerization: Basic knowledge of containerization tools like Docker.

Again, you need to know a programming language. You need to be slightly *(he-he)* proficient in SQL, and NoSQL. You need to understand and be able to apply the concept of caching. You need to understand the difference between REST and GraphQL. GIT. ORMs (what even is this). S E C U R I T Y. Testing. Docker. Kubernetes. Packer. And so on.

Being a backend at least comes with bragging rights. You can also lie to your friends that you are a haxxer.

Takeaway: being a backend still sucks but has its perks

**Operations**

Opinion too long, too lazy to explain. [read this as a start, more incoming](https://www.geeklore.io/articles/devops-by-kubeden-chapter-1-5WyKP)

In short: operations guys are cool, aways have been, always will be.

We went over the roles, now the question - **will there be junior engineers in the future?**

No. Let me elaborate.

## "Evolution, Dummy!"

Junior engineering hasn't always been like this. A few years ago, you would have done perfectly fine with just a programming language and a library.

**What changed?**

Evolution happened, dummy.

As with any other area of our lives, we evolved. A top performer will always inspire. Top performers through the years pushed harder and harder and left a mark with every push. We got inspired, and we tried to mirror their behavior, their achievements, and their success. Some of us could, others couldn't. But regardless of the outcome for each of us, we all collectively became better.

We entered a "new normal" of knowing more, raising expectations, and accelerating our field.

Sure, there has been a few cracks in the transmission like the mass layoffs after Covid but ultimately the machine is moving. And it's moving fast.

Should you be scared? It depends.

## Ain't No Rest For The Junior

There will not be junior engineers as the ones we are used to observing and meeting around us today. The junior engineers of the future will be all-round experts. A guild of generalists, proficient in everything we are now struggling to get good at. Skill issues will not be in their dictionaries.

Claude (the hottest new guy on the block) and ChatGPT (even though in it's depressive phase lately) are the tools defining the reality of software engineering that is to come. The epitome of acceleration. LLMs make learning faster, more action-based, and the dopamine reward of succeeding in doing simple tasks is hooking millions of people to code. This allows for a more rapid development of candidates, and will also cut the unworthy.

If you can't do a task, you are not supposed to be in tech. If you are scared of LLMs *"taking your job"*, you should find another job. The pressure will simply be too much for you to handle.

With this, I close my article and express my greatest respects to three individuals - **John McAfee, Terry A. Davis, and Alex Mahan**.

Peace.