Job cuts everywhere! How do you keep your IT Job safe? Or, indeed, any job safe? Read this article to find out how you can become irreplaceable even in today's job market..
I wanted to link to the appropriate news sites, but there were over 300 news articles about IT company layoffs in the USA alone since January 2024.
So, I let Microsoft Copilot (GPT-4) summarize the news of the layoffs in the US for me.
This was the result:
Here is a summary of tech layoffs at major companies from January 2024 onwards:
Microsoft
January 2024: Microsoft started the year by cutting roughly 9% of its gaming unit’s workforce, which is about 10,000 jobs. The layoffs were part of a cost-cutting measure and a shift towards AI.
May 2024: Microsoft closed Arkane Austin, Tango Gameworks, and more game studios as part of cuts at Bethesda.
Google
January 2024: Google started the year by cutting several hundred jobs across the company. The layoffs impacted employees within Google’s hardware and central engineering teams, as well as employees who work on Google Assistant.
May 2024: Google laid off staff across key teams like Flutter, Dart, and Python.
Meta
November 2022 to May 2023: Meta cut thousands of staff during four separate rounds of layoffs. The layoffs reduced the company’s global headcount by about a quarter since November 2022.
January 2024: Meta announced the redundancy of 13% of its staff, totaling over 11,000 employees.
Amazon
January 2024: Amazon announced layoffs of hundreds of employees in its Sales, Marketing, and Global Services organization, as well as a few hundred positions in its Physical Stores Technology team.
February 2024: Amazon confirmed that “a few hundred” jobs across its healthcare units would be cut.
April 2024: Amazon announced layoffs of hundreds of employees in its film and television studios division in addition to its streaming platform, Twitch.
Apple
March 2024: Apple notified 614 workers in multiple offices that they were losing their jobs, with the layoffs becoming effective on May 27.
April 2024: Apple cut over 600 employees following the closure of its self-driving EV project.
Other Major Tech Companies
January 2024: 19,350 employees laid off.
February 2024: 15,589 employees laid off.
March 2024: 7,403 employees laid off.
April 2024: 22,153 employees laid off.
Worldwide Phenomenon
I realized this was a global phenomenon, so I asked GPT-4 for the global number of layoffs continent-wise and for the total number of layoffs.
This was the answer:
United States
Total layoffs: Approximately 45,052 tech workers.
European Union
Total layoffs: Approximately 81,000 tech workers.
Asia
Total layoffs: More than 70,000 tech workers in the first quarter of 20243.
This brings the total number of tech layoffs worldwide since January 2024 to approximately 196,052.
Nearly 200,000 IT workers have been laid off worldwide in four months since Jan 2024. But why?
Generative AI. Free and Accurate Coding of Large Language Models.
The software developer’s worst nightmare - and best dream - (depending upon where you are) - has come true.
We now have Code-LLMs that generate better code than many humans, especially when operated by a world-class expert in Prompt-Engineering.
So, now, one person with excellent LLM knowledge can do the work of 10 people who have worked without LLMs mostly.
And some people who had average Code-LLM knowledge.
Hence, the job cuts (although the volatile global economy, which led to cost-cutting across verticals, also contributed).
So, what can a software developer do today? To ensure that he/she is not replaced by an AI?
Six simple words:
Full Stack - (with Ops)
Open Source - (with own projects)
Prompt Engineering - (coding with LLMs)
Full Stack
A Full Stack Developer is a type of programmer who has a broad knowledge of all the different layers involved in application development.
These layers include:
Front-end: This is the part of the application that users interact with. It’s built using languages like HTML, CSS, and JavaScript, as well as frameworks like React, Angular, and Vue.js.
Back-end: This is the part of the application that runs on the server. It’s responsible for things like business logic, database operations, and server configuration. It’s built using languages like Java, Python, Ruby, Node.js and frameworks like Django, Rails, or Express.js.
Database: This is where the application’s data is stored. Full Stack Developers need to understand how to design databases, write queries, and update data. They might work with SQL databases like MySQL or PostgreSQL or NoSQL databases like MongoDB.
DevOps: This involves setting up the infrastructure that supports the application, like servers and cloud resources. It also involves tasks like deployment, monitoring, and automation. Tools like Docker, Kubernetes, AWS, and Azure might be used here.
Version Control Systems (VCS): These are tools that help manage changes to the source code. They allow developers to keep track of different versions of their code and merge changes made by different developers. Git is the most commonly used VCS.
Testing: This involves writing code to automatically test the application and ensure it behaves as expected. This can include unit tests, integration tests, and end-to-end tests. Tools like Jest, Mocha, or Selenium might be used here.
APIs: Full Stack Developers often need to work with APIs (Application Programming Interfaces), which allow different software applications to communicate with each other. This can include REST APIs, GraphQL APIs, and APIs provided by third-party services.UI/UX Design: While not always required, some Full Stack Developers also have skills in UI/UX design. This involves designing the user interface and user experience for the application.
A Full Stack Developer doesn’t need to be an expert in all of these areas, but they should have a working knowledge of each and be able to navigate the full “stack” of technologies used in a project. They are often valued for their versatility and ability to contribute to many different parts of a project.
What are the ‘Ops’ terms, and why do we need them?
The “Ops” terms represent different aspects of the software development lifecycle, and understanding them can be very beneficial for a Full Stack Developer. Here’s why:
DevOps: This is a set of practices that combines software development (Dev) and IT operations (Ops). It aims to shorten the system development life cycle and provide continuous delivery with high software quality.
DataOps: This is an automated, process-oriented methodology used to improve the quality and reduce the cycle time of data analytics. It includes automated testing, monitoring, deployment, and orchestration of data pipelines.
MLOps: This is the practice of combining Machine Learning (ML) system development and ML system operations. It aims to provide end-to-end automation of ML workflows.
AIOps: This stands for Artificial Intelligence for IT Operations. It uses AI to automate and improve IT operations.
GitOps: This is a way of implementing Continuous Deployment for cloud-native applications. It uses Git as a single source of truth for declarative infrastructure and applications.
DevSecOps: This involves integrating security practices into the DevOps process. It aims to embed security in every part of the development process.
In essence, each of these “Ops” domains provides a set of best practices for a specific aspect of the software development lifecycle.
By understanding these, a Full Stack Developer can build applications that are more robust, reliable, secure, and efficient.
They can also collaborate more effectively with other teams in their organization that might be specialized in these areas.
So, as you can see, someone with all these skills would be extremely hard to let go.
Especially if he/she was an LLM expert and was the best at generating code with LLMs on their teams.
But sometimes, even Full Stack developers with all these attributes are laid off.
How do you stay safe, then?
Open Source
If you work on Open Source projects in your free time and are a solid contributor, that is a powerful differentiator.
That sets you apart even more powerfully than the Full Stack quality referred to earlier.
That means you have a worldwide presence, a passion for your job, and fantastic skills working with teams remotely.
Yes, Open Source was the first iteration of remote work in the technology world.
And then, suppose you are the author of a very popular open-source project that your company is using.
That makes you ALMOST IRREPLACEABLE.
You are truly a rock star, someone who almost can’t be replaced and probably knows the business domain inside out.
No company worth their salt will want to lay you off in that case.
ESPECIALLY - if you are also any form of a subset of the Full Stack skills referred to earlier.
This is one of the silver bullets.
But sometimes, even someone who is a full-stack developer and an open-source author of a project the company is using can be let go if he/she doesn’t have this technique below!
Prompt Engineering
The game has changed.
No longer do humans write code, except in exceptional cases.
Humans tell LLMs how to write code using a very clear and precise/imprecise technique called prompt engineering.
And expertise in prompt engineering - or the lack of it - is what has got software engineers laid-off or retained.
What do you need to know about prompt engineering?
See below.
Expertise in prompt engineering for generating code for large codebases
Understanding the codebase structure and architecture:
To effectively generate code that integrates seamlessly with a large codebase, it's crucial to have a deep understanding of the existing code structure, design patterns, and architectures used in the project.
Providing relevant context:
When generating code for a specific part of the codebase, it's essential to provide the LLM with relevant context.
Breaking down complex tasks:
Large codebases often involve complex functionalities and interrelated components, which should be broken up into simple, individual parts.
Specifying constraints and requirements:
Clearly communicating any constraints, limitations, or specific requirements to the LLM is crucial.
Iterative refinement:
Generating code for large codebases often requires multiple iterations and refinements.
Best practices for generating code with LLMs
Use clear and specific prompts: Provide clear and concise instructions to the LLM, specifying the desired functionality, input/output expectations, and any constraints or requirements.
Leverage code snippets and examples: Include relevant code snippets or examples in your prompts to provide the LLM with a frame of reference.
Use appropriate LLMs for the task: Choose LLMs that are specifically trained in code and have demonstrated strong performance in generating code.
Validate and test the generated code: Always review and test the generated code to ensure its correctness, efficiency, and compatibility with the existing codebase.
Iterate and refine: Iterate on the prompts, provide feedback to the LLM, and refine the generated code until it meets the desired quality standards.
Best LLMs for generating code
When it comes to the best LLMs for generating code, there are several options available, each with its own strengths:
OpenAI Codex: Codex is a variant of GPT-3 specifically trained on code. It has shown impressive performance on code generation tasks and can handle multiple programming languages. Codex has demonstrated strong results on benchmarks like HumanEval and APPS.
DeepMind AlphaCode: AlphaCode is a large language model trained on a vast amount of code. It has achieved remarkable performance on competitive programming challenges and has shown the ability to generate complete solutions to complex coding problems.
Anthropic Constitutional AI: Anthropic's Constitutional AI is an LLM trained with constitutional principles to ensure safe and ethical code generation. It has demonstrated promising results in generating high-quality code while adhering to specified constraints and guidelines.
IBM Project CodeNet: Project CodeNet is a large-scale dataset and benchmark for code generation and understanding. It includes a diverse set of programming problems and supports multiple programming languages. LLMs trained on Project CodeNet have shown strong performance in code generation tasks.
Google Gemini Pro 1.5: This LLM has a context length of one million tokens, making it ideal for digesting large codebases in one go. It also has unmatched accuracy in most programming problems and is one of the most accurate code-generating LLMs available on the market today. The context length gives it an advantage that the other LLMs on this list can’t match.
So Now You Know
If I were a developer today, I would:
Learning Prompt Engineering in Great Detail first -
Then, start contributing to open-source and create a popular open-source project of my own -
And finally, at leisure, in my spare time, learn Full Stack Development.
It’s actually unfortunate that this article lists the most important techniques in reverse order!
Focus on Becoming a Prompt Engineering Expert - First!
If you don't have this technique today -
You got nothin’, baby!
To become irreplaceable, learn Prompt Engineering first!
I cannot stress this more strongly.
And prompt engineering to generate code that has 100% Test Coverage is more of an art today than a science.
But that is what is required today.
Most of all.
Conclusion
Once you are a master prompt engineer - that alone could make you keep your place.
But do contribute to open source as well.
And do remember the tools involved in Full-Stack Development.
If you have all three components - or even just Prompt Engineering Mastered, with a great open-source portfolio -
No company will ever lay you off.
That is my firm conviction.
Disagree?
Have you been laid off despite being strong in all three areas?
Share your story in the comments below!
I want to hear it.
Because you will be the exception and not the rule.