Adapting to the Future of Work in Tech

Rate this content
Bookmark

Anyone who worked in tech, for any amount of time, knows that the landscape is in constant motion. The technologies of today are obsolete tomorrow. The tools of the trade are in constant motion, and continuous upskilling is the bread and butter of all software engineers who survive the passing waves. The software engineers of the future are those who mastered 1 skill: adaptation. In this talk, I will address the evolution of our craft, and my predictions for the core competencies of the future.

This talk has been presented at C3 Dev Festival 2024, check out the latest edition of this Tech Conference.

FAQ

Vassim Dredia is a senior software engineer at GitHub who creates technical content in his free time.

The AI-assisted programming paradigm shift refers to the integration of AI tools like large language models (LLMs) and GitHub Copilot into the software development process, enhancing the efficiency and capabilities of developers.

Key historical figures include Grady Bush, Konrad Zuse, John Von Neumann, Roth Dietlbaum, Maurice Wilkes, Grace Hopper, Margaret Hamilton, Fred Brooks, Edgar Dijkstra, Barbara Liskov, Leslie Lamport, Brad Cox, Ed Yourdon, Eric Gamma, Mary Shaw, Jeff Dean, Kent Beck, Linus Torvalds, and Patrick Debois.

LLMs cannot be made entirely factual, cannot eliminate toxicity completely, and are not fully controllable. They can only perform a fraction of the development work and have limitations in producing consistently correct answers.

AI-assisted development will continue to improve, but human-level AI is beyond the near-term horizon. Developers should focus on understanding the fundamentals and leveraging AI tools to build more complex and impressive projects.

Junior developers should leverage AI tools to build more complex and impressive projects, dive deeper into specific verticals, and focus on understanding the fundamentals of software engineering and technology.

Understanding technology at a fundamental level allows developers to use it effectively, avoid speculation and fear, and build systems that are stable and well-balanced.

Ethical considerations include focusing on the ethical implications of technology, especially with the introduction of AI, and balancing legal and ethical aspects to ensure responsible development.

Retrieval augmented generation (RAG) is a mechanism used to make large language models (LLMs) more adaptive to specific environments by customizing them based on retrieved information.

Developers will act as users and builders of AI models, focusing on solving human problems and leveraging AI tools to enhance their capabilities while maintaining a deep understanding of technology and its implications.

Bassem Dghaidi
Bassem Dghaidi
28 min
15 Jun, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
The Talk explores the AI-assisted programming paradigm shift and the evolution of software engineering. It discusses the limitations of large language models (LLMs) and highlights the importance of balancing forces in software engineering. The future of programming is seen as models solving problems based on datasets. The Talk emphasizes the responsibility of creating a better future and the need to strike a balance between utilizing tools and building problem-solving skills. It also touches on the human dependence on AI and recommends resources for further learning.

1. Introduction

Short description:

I'm going to talk about the AI-assisted programming paradigm shift. Thank you for attending my tech talk. My name is Vassim Dredia, a senior software engineer at GitHub.

The future is now. I'm going to talk about the AI-assisted programming paradigm shift. So we're all going to be running out of a job. I think you need to look for something else to do in your life. Thank you very much for attending my tech talk. No, I'm just kidding. Let's get some things out of the way. My name is Vassim Dredia, I'm a senior software engineer at GitHub. I create technical content in my free time by working seven days a week. My partner is a Dutch psychologist, and no, she does not psychoanalyse me, as far as I know. This is a little bit about me, but I want you to retain what I'm going to say now in your minds throughout this entire talk, okay?

2. Exploring the Past

Short description:

Do we discover the future? Do we create the future? Or do we recreate the past? Understanding technology is crucial. Let's start with the past and the work of Grady Bush, the creator of UML. Computers used to refer to human beings. Konrad Zuse, John Van Neumann, and Roth Dietlbaum made significant contributions to software engineering.

Do we discover the future? Do we create the future? Or do we recreate the past? For some people, this might be a very trivial question. What are you talking about? For the philosophers among us, this is a very... They've gone probably on a very deep dive right now, analysing what's going on with this question, and thinking about all the possible ways we could influence the future and the things that we build moving forward. So keep this in mind as we go through this.

I want us to understand the technology, because understanding it allows us to effectively use it. A lot of people look at technology, and they start using it without really understanding it on a fundamental level, and that creates a whole new world of speculation about, you know, doomerism, about what's going on in the future, people being afraid. In order to not be afraid, you have to first understand. In order for us to understand, I'm going to make my argument in three different pieces that I'm going to go through right now.

We are going to start with the past. None of this would have been possible without the great work of Grady Bush. He is the creator and founder of the UML. I'm pretty sure you've used UML diagrams before. These are the brainchild of Grady. But also Grady has done a fantastic job in archiving and building, whatever we're going to see now, on the history of computing. So let us start our journey in the year 1842. Did you know that computers used to refer to actual human beings? Some of you might know. Some of you might not. But in that era of time, the term computation started with Annie Cannon and her group of Harvard computers. And their job was to actually catalog the stars that we see in the night sky. Back then, computers used to refer to human beings doing some cataloging work, some form of computation, some form of calculation that is sometimes a bit tedious, sometimes a bit difficult for others to do. And this is where computing has actually started back then.

Now we're not going to go through all of these different dates. But I want to talk about some of these, some highlights, because I want to illustrate a point about the history of software engineering. Konrad Zuse created the language Planck Calcule, where in another universe, Germany might have been, you know, the leader in terms of computation and in terms of, you know, creating everything we see in the world. All of the companies that Konrad has created have paved the way for a lot of the technology companies that are now in our world. And we see them in today's world. Who doesn't know John Van Neumann? If you've taken any computer science or engineering course, you've probably seen the CPU architecture, which was the brainchild of this polymath and polyglot in every sense of the word. John Van Neumann was a genius back in his time and his impact is still left until today. Roth Dietlbaum worked on the ENIAC computer and she co-developed the programming system for that machine. And the reason why I'm bringing up these people is that each one of them has introduced new terms and new words and new concepts into our vocabulary.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Impact: Growing as an Engineer
React Summit 2022React Summit 2022
27 min
Impact: Growing as an Engineer
Top Content
This Talk explores the concepts of impact and growth in software engineering. It emphasizes the importance of finding ways to make the impossible possible and the role of mastery in expanding one's sphere of impact. The Talk also highlights the significance of understanding business problems and fostering a culture of collaboration and innovation. Effective communication, accountability, and decision-making are essential skills for engineers, and setting goals and finding sponsors can help drive career growth. Feedback, goal setting, and stepping outside of comfort zones are crucial for personal development and growth. Taking responsibility for one's own growth and finding opportunities for impact are key themes discussed in the Talk.
On Becoming a Tech Lead
TechLead Conference 2023TechLead Conference 2023
25 min
On Becoming a Tech Lead
Top Content
The role of a Tech Lead involves shaping the roadmap, helping the team be more effective, and working on important projects. Lessons learned include encouraging idea sharing, avoiding taking on all the work, and focusing on delegation. Tech Leads focus on the outcome, involve the team in decision-making, and make plans based on how different pieces will interact. The role of a Tech Lead is to focus on engineering and guide the team in figuring out how the whole system should fit together. Architecting can become problematic when it loses touch with the coding part, resulting in implementation issues.
Effective Communication for Engineers
TechLead Conference 2023TechLead Conference 2023
36 min
Effective Communication for Engineers
Top Content
Today's Talk covers the four building blocks of communication: people, message, context, and effective listening. It emphasizes the importance of considering the perspective of others and tailoring messages to the recipient. The Talk discusses different types and channels of communication, and the need to align them with the intended message. It also highlights the significance of soft skills in communication and provides techniques for effective communication and assessing soft skills in tech interviews. Cross-cultural communication and the impact of bluntness are explored as well.
Imposter Syndrome-Driven Development
TechLead Conference 2023TechLead Conference 2023
31 min
Imposter Syndrome-Driven Development
Imposter syndrome is a common experience that can lead to self-doubt and feeling like a fraud. The speaker shares their personal journey with imposter syndrome in school and throughout their career in software development. They discuss the challenges and doubts they faced, as well as the strategies they used to overcome imposter syndrome. The importance of support from managers, celebrating achievements, and sharing experiences to help others are highlighted. The talk emphasizes the need to embrace imposter syndrome and use it as a motivator for personal growth.
You Do Have Time to Build it Twice
React Summit 2022React Summit 2022
21 min
You Do Have Time to Build it Twice
Top Content
Today's Talk focuses on software rewrites, specifically the transition from jQuery to React. The speaker shares their experience of rewriting a jQuery app to React, highlighting the benefits of the rewrite in terms of improved user experience and increased conversions. Approaches to software rewrites are discussed, including the page-by-page approach which allows for product innovation. The speaker emphasizes the importance of prioritizing rewrites or refactors for startups. The Talk concludes with insights on testing, server-side functionality, and the overall value of the rewrite.
Engineers Learn to Negotiate
React Summit Remote Edition 2021React Summit Remote Edition 2021
8 min
Engineers Learn to Negotiate
During this Talk, the speaker emphasizes the importance of negotiation skills in the tech industry and how it can help grow one's career. Mirroring and labeling are discussed as effective techniques in building trust and reducing negative emotions. The concept of being a sponge is introduced, highlighting the significance of listening attentively in negotiations. The Talk concludes by emphasizing the importance of communication and negotiation skills for engineers and encourages self-reflection and improvement.

Workshops on related topic

How To Design A Sustainable Freelance/Contracting Career
Node Congress 2022Node Congress 2022
39 min
How To Design A Sustainable Freelance/Contracting Career
WorkshopFree
Shane Ketterman
Alexander Weekes
2 authors
Ready to kickstart your freelance career or just getting started on your freelance journey? You’re in the right spot. Learn the tricks of the trade from the industry’s most experienced freelancers.
The independent talent movement is the future of work. If you’re considering leaving full-time employment for a career as a freelancer, now is the time to find your successful space in the independent talent workforce. More people are working freelance today than ever before, with the freelance marketplace now contributing $1.2 trillion to the US economy. Some of the most in-demand roles for freelancers right now are senior developers with professional experience in React, Python, Blockchain, QA, and Node.js.
This workshop will help you design a sustainable and profitable full-time (or part-time) freelancing/contracting career. We will give you tools, tips, best practices, and help you avoid common pitfalls.
Designing A Sustainable Freelance Career
React Advanced 2021React Advanced 2021
145 min
Designing A Sustainable Freelance Career
WorkshopFree
Alexander Weekes
Rodrigo Donini
2 authors
Would you like to pursue your passions and have more control over your career? Would you like schedule and location flexibility and project variety? Would you like the stability of working full-time and getting paid consistently? Thousands of companies have embraced remote work and realize that they have access to a global talent pool. This is advantageous for anyone who has considered or is currently considering freelance work.>> Submit your interest on becoming a freelance engineer with Toptal and get a call with Talent Acquisition specialist <<

Freelancing is no longer an unstable career choice.

This workshop will help you design a sustainable and profitable full-time (or part-time) freelancing career. We will give you tools, tips, best practices, and help you avoid common pitfalls.
Table of contents

Module 1: Dispelling common myths about freelancing
Module 2: What does freelancing look like in 2021 and beyond
Module 3: Freelancing choices and what to look for (and what to avoid)
Module 4: Benefits of freelancing from a freelancer + case study
BREAK
Module 6: How to get started freelancing (experience, resume, preparation)
Module 7: Common paths to full-time freelancing
Module 8: Essentials: setting your rate and getting work
Module 9: Next steps: networking with peers, upskilling, changing the world
Module 10: Freelancer AMA