Read This And You Won't Worry About Being Replaced By an AI as a Software Developer

Written by thomascherickal | Published 2024/05/14
Tech Story Tags: future-of-ai | full-stack-development | job-cuts | ai-proof-your-job | prompt-engineering | open-source | ai-in-the-workplace | job-security

TLDRJob 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..via the TL;DR App

The Six Simple Words: Full Stack, Open Source, and Prompt Engineering. Why? Read On!

The Era of the Single Specialization is Over

Something absolutely shocking happened at technology companies in the world in the last one year.

Yes, technology - the ultra-safe, upper class, 100,000 USD+ annual salary jobs.

I wanted to link to the appropriate news sites, but there were over 300 news articles of 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 (with links):

Here is a summary of tech layoffs at major companies from January 2024 onwards:

Microsoft

Google

Meta

Amazon

Apple

Other Major Tech Companies

Learn more:

1.markets.businessinsider.com 2. techcrunch.com 3. usatoday.com 4. itpro.com 5. springboard.com 7. tech.co 8. spiceworks.com 9. apnews.com 10. tech.co 11. investorplace.com 13. crn.com 14. spiceworks.com 15. theguardian.com 16. finance.yahoo.com 17. computerworld.com 18. finance.yahoo.com 19. theguardian.com

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

European Union

Asia

This brings the total number of tech layoffs worldwide since January 2024 to approximately 196,052.

Learn more

1.dazeinfo.com 2. visualcapitalist.com 3. techopedia.com 4 todayonline.com 5.ibtimes.com

Nearly 200,000 IT workers laid off worldwide in four months since Jan 2024. But why?

Generative AI. Free and Accurate Coding 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, 1 person with excellent LLM knowledge can do the work of 10 people, who 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?

Four words:

  1. Full Stack - (with Ops and LLMs)
  2. Open Source - (with contributions and own projects)
  3. 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:

  1. Front-end: This is the part of the application that users interact with. It’s built using languages like HTML, CSS, and JavaScript, and frameworks like React, Angular, or Vue.js.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. Testing: This involves writing code to automatically test the application, to 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.

  7. 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.

  8. 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:

  1. 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.

  2. 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.

  3. 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.

  4. AIOps: This stands for Artificial Intelligence for IT Operations. It uses AI to automate and improve IT operations.

  5. 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.

  6. 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 that 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

  1. 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. Use natural language that is easy to understand and avoids ambiguity.

  2. Leverage code snippets and examples:

    Include relevant code snippets or examples in your prompts to provide the LLM with a frame of reference. This helps the model understand the desired code structure and style.

  3. Use appropriate LLMs for the task:

    Choose LLMs that are specifically trained on code and have demonstrated strong performance in generating code.

  4. Validate and test the generated code:

    Always review and test the generated code to ensure its correctness, efficiency, and compatibility with the existing codebase.

  5. Iterate and refine: Don't expect perfect code generation in a single attempt. 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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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:

  1. Learning Prompt Engineering in Great Detail first -

  1. Then start contributing to open-source and create a popular open-source project of my own -

  1. 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 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.

It’s that simple.

AI has arrived.

It’s after your job.

Master AI.

Before it masters you.

But keep up the passion.

Creating software is now easier than ever!

All the best!


Written by thomascherickal | Every Article Published Should Rank in the Top Ten in Google Search within 3 days @ 60 USD or a 50% price discount.
Published by HackerNoon on 2024/05/14