This article summarizes a conversation with Joe Atardi, a seasoned software engineer and author, about his 21 years in the industry. He shares his experiences, insights on AI's impact, the value of computer science degrees, and the enduring appeal of programming books.
Introduction
Quincy Larson, founder of Free Code Camp, welcomes Joe Atardi to the podcast. They discuss Joe's extensive experience as a software engineer, his writing career, and his unique perspective on the current state and future of software development.
The Path Not Taken: Why Not a CTO?
Despite possessing the skills and experience to be a founding CTO, Joe expresses his lack of interest in startups and entrepreneurship.
-
He acknowledges feeling pressure to pursue this path, driven by the "building in public" trend on social media.
-
However, he realized his strengths lie on the technical side, lacking interest and skills in marketing and business.
-
He prefers focusing on staying employable as a developer.
The Value of Being an Individual Contributor
Joe is content working as a Principal Engineer, an individual contributor role, without any managerial responsibilities.
-
He acknowledges the pressure some developers feel to move into management roles as they age.
-
However, he enjoys focusing on engineering problems and hasn't felt external pressure to pursue management.
-
He recognizes the Peter Principle, where individuals rise to their level of incompetence, highlighting the different skill sets required for technical and managerial roles.
Managing Up: Empathy for Your Manager
Joe emphasizes the importance of "managing up," understanding the pressures and motivations of your managers.
-
He acknowledges that managers with a development background tend to be more effective.
-
He believes learning programming is valuable even for those pursuing managerial roles, fostering empathy and understanding.
The Shifting Landscape: AI and the Future of Development
Joe discusses the impact of AI on software development and the evolving labor market.
-
He believes coding skills alone will become less valuable as AI improves at code generation.
-
He foresees a greater emphasis on fundamental skills like architecture, data structures, and algorithms taught in computer science programs.
-
He expresses some concerns about the long-term viability of a software development career due to AI.
The Enduring Value of Computer Science Degrees
Joe believes computer science degrees are becoming more valuable again after a period where self-taught developers and boot camps gained prominence.
- While acknowledging the success of many developers without formal degrees, he anticipates that fundamental knowledge will become crucial as AI handles more of the day-to-day coding tasks.
Early Influences: A Cool Uncle and MS-DOS
Joe recounts his early exposure to computers through his uncle, who worked in IT and fostered his interest in technology.
-
His uncle gifted him an IBM 286 clone, and he began experimenting with MS-DOS at a young age.
-
He fondly remembers writing QBasic code in high school and pursuing a computer science degree as a natural progression.
Navigating the AI Revolution: Career Advice
Joe offers advice for those considering a career path in the age of AI.
-
He suggests trades like being an electrician or a car mechanic might be less prone to automation.
-
He cautiously suggests that business roles may remain valuable, but the future is uncertain.
Dealing with the Hype: Separating Stake from Sizzle
Joe acknowledges the marketing hype surrounding AI and the desire of companies to reduce developer costs.
-
He believes there's a potential for companies to over-rely on AI, leading to messy code and a subsequent need for experienced developers to clean it up.
-
He compares the current AI fervor to the earlier push for offshoring, acknowledging potential cross-cultural communication and coordination issues.
Practical Knowledge from a CS Degree
Joe recounts the most valuable lessons he learned at UMass Lowell.
-
A two-semester sequence on UI development ignited his passion for front-end development and user interfaces.
-
He also values the fundamental knowledge of algorithms and data structures.
Alternative Learning Paths: For the Busy Parent
Joe offers advice for those who want to become software engineers but lack the resources or time for a formal computer science degree.
-
He emphasizes the importance of understanding one's own learning style, whether it's books, interactive tutorials, or videos.
-
He suggests starting with courses on platforms like Udemy and supplementing them with books.
-
Crucially, he stresses the importance of building projects to solidify learning and prevent forgetting.
Open Source Successes: The Emoji Picker
Joe shares the story of his successful emoji picker component, built in plain JavaScript without frameworks.
-
He describes the challenges of building a non-trivial application in JavaScript without frameworks.
-
He mentions that his emoji picker was used in a Starbucks promotion, a cool claim to fame.
-
He provides insights into when to retire an open-source project.
Finding Balance: Work, Family, and Personal Projects
Joe balances his career as a software engineer with writing books, contributing to open source, and spending time with his family.
- He acknowledges the desire for increased employability and exposure as motivations for his side projects, but ultimately he does it because he loves it.
Staying Humble: Imposter Syndrome and Respect for All Jobs
Joe expresses humility and acknowledges his ongoing struggle with imposter syndrome.
-
He believes every job is important and recognizes the value of skilled tradespeople like plumbers and electricians.
-
He highlights the importance of his work in security, helping to protect against supply chain attacks and vulnerabilities.
The Realities of Book Publishing: More Passion Than Profit
Joe provides a realistic overview of the book publishing process, including the monetary aspects.
-
He emphasizes that technical books are not a path to riches, with royalties often providing only a modest income.
-
He enjoys the process of writing, learning, and sharing his knowledge with others.
-
He shares insights into the different roles involved, such as acquisition editors, technical reviewers, and copy editors.
The Future of Technical Writing: Will AI Take Over?
Joe contemplates the future of technical books and the potential impact of AI.
-
He acknowledges the possibility that AI could make it more challenging for authors to create unique and valuable content.
-
However, he believes the human touch and unique perspectives will remain valuable.
Future Aspirations: Architect Role and Continued Growth
Joe envisions his future career path as potentially moving towards an architect role.
- He recognizes the importance of developing soft skills, communication, and business acumen to succeed in such a role.
A Time Capsule of Advice: Find a Mentor
If he could send advice back to his younger self, Joe would emphasize the importance of finding a mentor early in his career.
- He also suggests becoming more well-rounded and learning about business and life beyond just coding.
A Final Shout-Out: Thank You, Uncle Mark!
Joe acknowledges the positive influence of his uncle, Mark Robert, in shaping his interest in technology.
Conclusion
The conversation ends with Quincy thanking Joe for his time and insights, and expressing Free Code Camp's commitment to providing open learning resources. Joe expresses having had a great time and thanks Quincy. The conversation ends with a reminder to all to keep coding.