Will AI replace software engineers?
No — Scott argues AI augments developer productivity but doesn't generate architecture or replace human judgment; engineers remain responsible for quality and product decisions.
Video Summary
AI is a productivity tool that augments about 70% of some engineers' code but doesn't replace architecture or human judgment.
Treat AI like an anonymous contributor: verify outputs, use CI/CD, testing, and code review to maintain quality.
The future depends on hiring and mentoring juniors — focus on fundamentals (HTTP, DNS, distributed systems) and communication.
Build meaningful, real-world projects that show initiative and problem-solving, not cookie-cutter demos.
No — Scott argues AI augments developer productivity but doesn't generate architecture or replace human judgment; engineers remain responsible for quality and product decisions.
Scott estimates roughly 70% of his code is AI-augmented, but it all flows through the same SDLC, testing, and review processes.
Prioritize fundamentals (HTTP, DNS, distributed systems), practice clear communication of intent, and use AI as a learning aid while verifying outputs and explaining your thought process.
Build meaningful, real-world projects that solve problems or serve a community — not generic tutorials or clones — and show impact and ownership.
Treat AI output like anonymous contributions: enforce CI/CD, tests, code reviews, dependency checks (e.g., Dependabot), and keep a human in the loop to verify correctness.
"Every era panics. Now we're in the fourth decade of panic. The craft hasn't changed. AI does not generate architecture."
Scott Hanselman discusses the recurring anxiety within the software engineering community, highlighting how various technological shifts, including the rise of AI, have provoked cycles of fear about the future of programming. He emphasizes that while tools evolve, the fundamental craft of software engineering remains constant.
Hanselman recalls his personal experiences since he began coding in 1984, noting past fears regarding changes in programming practices, such as syntax highlighting and auto-complete features, leading to claims that programming was "over." He believes that each evolution introduces powerful tools but does not diminish the quality and creativity that skilled developers can produce.
"AI loves to be a sycophant. It loves to make a feature. AI does not generate architecture."
Hanselman shares his observations on how AI has impacted his coding workflow, noting that about 70% of his current code is augmented by AI tools. However, he stresses that the integrity of the software development life cycle (SDLC) must be maintained.
He compares AI's contributions to code with contributions from anonymous sources in open source software. By treating AI outputs as suggestions rather than definitive code, he highlights the importance of human oversight in the development process, ensuring quality control through tools like Dependabot.
"AIs make mistakes. Humans make mistakes. Random internet people make mistakes. That's why human agency and responsibility matters more than ever."
Hanselman underscores the necessity of human responsibility even when using AI tools, reiterating that the final responsibility for code quality rests with the developer. Mistakes from AI-generated code can lead to failures in apps and systems, making it crucial for developers to maintain oversight.
He points out the importance of verifying AI suggestions just as one would with code from unknown contributors, stressing that maintaining a human in the loop is vital to ensuring that errors are caught and corrected.
"Take a second and breathe. Vibrating with tokens is unhealthy."
Hanselman advises developers to approach AI tools mindfully, suggesting that excessive reliance on AI can be overwhelming and lead to burnout. He advocates for a balanced approach to using AI, focusing on improving one's skills rather than becoming overly reliant on technology.
He shares an example of how he uses an AI tool to manage his overwhelming to-do list by tailoring it to his emotional state, allowing him to prioritize tasks in a way that is manageable while also considering his well-being. This personal project exemplifies his belief that AI should complement human effort rather than replace critical thinking and emotional awareness.
"AI tools help us code faster, but how are new developers supposed to learn to code with these tools?"
Experienced engineers can leverage AI tools to boost productivity and efficiency, making it easier to complete tasks like fixing builds or managing backlogs. However, for newcomers to coding, there are significant concerns about the learning process in the context of AI support.
There is a belief that the software engineering profession could collapse if companies stop hiring early-career developers, as they are essential for the future pipeline of senior engineers.
Companies often rely on their competition for experienced hires, which reinforces the importance of nurturing junior talent within organizations.
"We should rename junior roles to create a supportive environment that encourages learning."
The current system of internships and apprenticeships may inadvertently place junior developers in a lower status compared to their senior counterparts, creating a power dynamic that can discourage questions and learning.
By adopting a nurturing approach similar to nursing, where experienced personnel are designated as "preceptors," companies can create an environment that fosters learning and growth for juniors.
The emphasis should be on senior engineers not only to excel in their roles but also to cultivate the next generation of talent, enhancing their teaching skills in turn.
"We're facing an avalanche of challenges in junior hiring; where is the next generation of talent going to come from?"
There is a growing trend of companies downsizing their junior hiring efforts, which may stem from pressures to reduce costs and increase efficiency.
The speaker emphasizes the importance of mentorship and sharing knowledge to increase the pool of qualified engineers, as many experienced professionals may not be engaging in this crucial aspect of their roles.
The future of the software engineering profession depends on the ability to foster and develop junior talent.
"Focus on the basics; understanding foundational concepts is key for landing a job."
For those looking to start a career in software engineering, a strong grasp of fundamental concepts such as HTTP, DNS, and distributed systems is vital.
Communication skills are equally crucial, as programming is about clearly expressing intent so that the code compiles and runs smoothly.
Juniors should practice articulating their thought processes during code reviews and harnessing tools, like Copilot Chronicle, to improve their understanding of coding patterns.
"Create projects that you're passionate about instead of just replicating others."
Juniors should focus on developing unique projects that reflect their interests and contributions to their communities rather than submitting cookie-cutter projects like simple games.
The speaker encourages developers to work on meaningful projects that could benefit others and demonstrate initiative, such as creating websites for local organizations or personal interests.
When presenting their portfolios, candidates should highlight impactful work that shows their commitment to solving real-world problems, as this is more likely to catch the attention of hiring managers.
"If you have made a tool for an audience of one, then you could put it up here."
The creation of tools can lead to unexpected communal benefits; a tool initially made for personal use can be shared widely.
For instance, platforms like GitHub allow users to submit issues, creating a vast database that supports many projects.
Fun and inventive tools exist, such as simple interactive applications like a click light that activates AI or a virtual coloring book aimed at relaxation and stress relief.
Concepts that seem trivial can turn out to be engaging and useful, illustrating the importance of creativity in tech projects.
"It's okay to not want to work on something today."
Effective project management involves acknowledging personal interests and not forcing oneself to make progress on every project every day.
One should prioritize projects that resonate more personally while still keeping an eye on the overall timeline and responsibilities.
Tools and methodologies, such as continuous integration/continuous deployment (CI/CD), are important for maintaining a digital workspace and ensuring that projects can evolve without excessive manual effort.
It's also essential to balance project workload; if a project becomes stale, interventions are necessary to revitalize it or it may be left unattended.
"You just don't need a database."
Complex database structures are often unnecessary for many applications; developers can achieve efficiency through simpler structures, especially for static websites.
Utilizing static files and relying on efficient caching can lead to quicker load times and overall system performance.
The speaker highlights success with projects that run efficiently on just a few JSON files without the need for more complex database systems.
The emphasis is on creating a fast, simple, and scalable infrastructure instead of overthinking the system architecture.
"You should study software engineering."
There is a clear distinction between computer science, AI, and software engineering; the latter is emphasized as the most practical pathway for those looking to work in shipping applications.
Proficiency in English is recommended as a critical skill due to the language's predominance in the tech industry, likened to the versatility of JavaScript in programming.
Developers are encouraged to explore tools like GitHub Copilot to enhance their productivity and creativity in coding practices.
Whiteboard interviews are viewed positively, as they provide insight into a candidate's thought process and problem-solving approach rather than just their technical answers.
"Will AI replace software engineers? It better not. I hope not, too. That would be bad."