

Coding Chats
John Crickett
On Coding Chats, John Crickett interviews software engineers of all levels from junior to CTO. He encourages the guests to share the stories of the challenges they have faced in their role and the strategies and tactics they have used to overcome those challenges providing actionable insights other software engineers can use to accelerate their careers.
Episodes
Mentioned books

Dec 11, 2025 • 57min
AI-assisted software engineering: challenges and opportunities
Coding Chats episode 57 - Owain Lewis and John Crickett explore the role of AI in software engineering, discussing the integration of AI into production systems and the challenges faced by AI engineers. They delve into the nuances of AI application, from building scalable systems to the importance of human oversight in AI-driven workflows.Chapters00:00 Defining the Role of AI Engineer03:13 Exploring Large Language Models (LLMs)06:15 Use Cases for LLMs in Business09:22 The Non-Deterministic Nature of AI12:12 AI in Software Engineering: The Future15:11 The Role of AI in Code Review17:53 The Bottleneck of Requirements Gathering20:38 Leveraging AI Throughout the Software Lifecycle29:53 Leveraging AI for Efficient Documentation30:47 AI in API Design and Review32:22 Spectrum Driven Development with AI34:06 The Role of Requirements in Software Engineering40:05 The Future of Programming Languages and AI49:54 Understanding Context and Prompt Engineering56:38 Exploring Related ContentOwain's Links:Substack: https://newsletter.owainlewis.com/subscribe AI Engineer: https://skool.com/aiengineerJohn's Links:John's LinkedIn: https://www.linkedin.com/in/johncrickett/John’s YouTube: https://www.youtube.com/@johncrickettJohn's Twitter: https://x.com/johncrickettJohn's Bluesky: https://bsky.app/profile/johncrickett.bsky.socialCheck out John's software engineering related newsletters: Coding Challenges: https://codingchallenges.substack.com/ which shares real-world project ideas that you can use to level up your coding skills.Developing Skills: https://read.developingskills.fyi/ covering everything from system design to soft skills, helping them progress their career from junior to staff+ or for those that want onto a management track.TakeawaysAI engineering involves building software with AI, focusing on production systems.AI engineers bridge the gap between AI model builders and software developers.Understanding AI's unique paradigm is crucial for effective system architecture.AI should be used minimally and where it makes sense, not everywhere.Human oversight is essential in AI-driven workflows to ensure reliability.Large language models (LLMs) are a significant focus in current AI trends.AI can enhance business processes through automation and natural language interfaces.AI's role in software engineering includes improving code quality and efficiency.AI tools can amplify both good and bad engineering practices.Experimentation and building real projects are key to learning AI engineering.

Dec 4, 2025 • 37min
So you think you can lead a team of software engineers?
Coding Chats episode 56 - Paul Grenyer discusses his journey to writing a book on team leadership, sharing insights on the differences between leadership and management, common mistakes new leaders make, the importance of delegation, and building trust within teams. He emphasizes the need for curiosity in understanding both technical and business domains, and reflects on the role of AI in software development. The discussion culminates in insights from his book, which aims to guide new leaders in navigating their roles effectively.Chapters00:00 The Journey to Team Leadership08:44 Leadership vs Management10:33 Common Mistakes of New Leaders15:58 The Importance of Delegation19:46 Curiosity in Leadership22:33 Insights from the Book27:57 The Role of Technical Skills in Leadership31:58 The Impact of AI on Software EngineeringPaul's Links:Paul's website: https://paulgrenyer.com/John's Links:John's LinkedIn: https://www.linkedin.com/in/johncrickett/John’s YouTube: https://www.youtube.com/@johncrickettJohn's Twitter: https://x.com/johncrickettJohn's Bluesky: https://bsky.app/profile/johncrickett.bsky.socialCheck out John's software engineering related newsletters: Coding Challenges: https://codingchallenges.substack.com/ which shares real-world project ideas that you can use to level up your coding skills.Developing Skills: https://read.developingskills.fyi/ covering everything from system design to soft skills, helping them progress their career from junior to staff+ or for those that want onto a management track.TakeawaysLetting go of doing the work is crucial for leaders.Listening to your team is essential for effective leadership.Delegation is often the hardest skill for new leaders to master.Building trust requires admitting mistakes and being approachable.Curiosity about team members' experiences can lead to better solutions.Technical knowledge helps leaders mediate and understand team dynamics.AI can enhance productivity but requires careful implementation.Leadership is about guiding a team towards a common goal.Understanding the business domain is vital for effective leadership.Encouraging a fun and open team culture fosters collaboration.

Nov 27, 2025 • 34min
Rust in production at planet scale : lessons learned deploying Rust code to millions of devices
Coding Chats episode 55 - Emma Nedelcu discusses her experience managing teams that transitioned to Rust at Amazon Prime Video. She highlights the reasons for choosing Rust, including its performance and safety features, and the challenges faced during the transition from JavaScript. Emma explains the importance of over-the-air updates, device constraints, and effective onboarding strategies for engineers. The conversation also covers testing strategies, managing technical debt, and hiring practices for Rust teams, emphasizing the need for a mindset focused on problem-solving and adaptability.Chapters00:00 Introduction to Rust and Its Adoption03:49 Performance Gains with Rust06:37 Challenges of Over-the-Air Updates09:36 Onboarding Developers to Rust12:33 Team Collaboration and Trust14:53 Testing Strategies for Rust Applications17:38 Trade-offs and Considerations with Rust20:13 Hiring and Team Building for Rust23:02 Advice for Organizations Considering Rust26:00 Managing Technical Debt in Rust28:48 Conclusion and Final Thoughts33:52 Exploring Related ContentLINKSEmma's Linkshttps://www.linkedin.com/in/emmanedelcu/John's Links:John's LinkedIn: https://www.linkedin.com/in/johncrickett/John’s YouTube: https://www.youtube.com/@johncrickettJohn's Twitter: https://x.com/johncrickettJohn's Bluesky: https://bsky.app/profile/johncrickett.bsky.socialCheck out John's software engineering related newsletters: Coding Challenges: https://codingchallenges.substack.com/ which shares real-world project ideas that you can use to level up your coding skills.Developing Skills: https://read.developingskills.fyi/ covering everything from system design to soft skills, helping them progress their career from junior to staff+ or for those that want onto a management track.TakeawaysRust was chosen for its performance and safety guarantees.Transitioning from JavaScript to Rust involves a steep learning curve.Over-the-air updates are crucial for device management.Device constraints significantly impact application performance.Onboarding to Rust can take about three months for JavaScript developers.Building trust within teams is essential for fast-paced development.Testing strategies must be robust to handle diverse devices.Rust's compile-time checks require strict runtime discipline.Compiling for WebAssembly requires careful optimization to manage bundle size.The Rust ecosystem is maturing but still evolving.Organizations should engage with the Rust community for better integration.Prototyping can effectively demonstrate Rust's potential to stakeholders.Managing technical debt in Rust involves understanding complexity depth.Hiring for mindset and adaptability is more important than experience.Ideal Rust engineers should have a deep understanding of low-level systems.Candidates should demonstrate initiative and impact in their projects.

Nov 20, 2025 • 56min
The power of soft skills in software engineering
Coding Chats episode 54 - Nikki Maginn and John Crickett explore the critical role of soft skills in engineering, emphasizing the importance of communication, emotional intelligence, and collaboration. They discuss how engineers can bridge the gap between technical expertise and customer-facing roles, the art of asking questions, and the significance of building trust and meaningful connections. The dialogue also touches on the balance of confidence and humility in leadership, the power of storytelling, and the necessity of understanding context in communication. Ultimately, the conversation highlights that soft skills are essential for engineers to thrive in their careers and contribute effectively to their teams.Chapters00:00 The Importance of Soft Skills in Engineering03:14 Bridging the Gap: Engineers and Customer Interaction06:26 Nature vs. Nurture: The Art of Asking Questions09:06 Effective Communication: How to Ask the Right Questions12:06 Understanding Context: The Key to Effective Dialogue14:53 Navigating Emotional Reactions in Communication17:36 Feedback and Conflict Resolution: Building Better Relationships20:57 The Efficiency of Communication in Engineering23:32 The Role of Emotions in Engineering26:38 Team Dynamics: The Myth of the 10x Developer29:08 The Importance of Communication in Engineering31:29 Empowering Teams to Reduce Meetings34:40 Communicating with Impact38:21 Building Trust with Non-Technical Stakeholders42:11 Creating Meaningful Connections48:53 Owning Your Confidence as an EngineerNikki's Links:Website: www.insideoutengineering.com LinkedIn: https://www.linkedin.com/in/nikki-maginn/John's Links:John's LinkedIn: https://www.linkedin.com/in/johncrickett/John’s YouTube: https://www.youtube.com/@johncrickettJohn's Twitter: https://x.com/johncrickettJohn's Bluesky: https://bsky.app/profile/johncrickett.bsky.socialCheck out John's software engineering related newsletters: Coding Challenges: https://codingchallenges.substack.com/ which shares real-world project ideas that you can use to level up your coding skills.Developing Skills: https://read.developingskills.fyi/ covering everything from system design to soft skills, helping them progress their career from junior to staff+ or for those that want onto a management track.TakeawaysEngineering success relies on effective communication and collaboration.Engineers must learn to translate technical work for broader understanding.Emotional intelligence is crucial for engineers in customer-facing roles.Asking the right questions is a teachable skill.Building trust requires meaningful connections with colleagues.Navigating difficult conversations is essential for team dynamics.Context is key in understanding reactions and emotions in communication.Confidence should be balanced with humility in leadership roles.Storytelling can enhance the impact of technical communication.Investing in relationships leads to more efficient conversations.

Nov 13, 2025 • 48min
Perfect your CV - a guide for software engineers
Coding Chats episode 53 - John Crickett and Mary Fidler discuss the evolving landscape of job applications, focusing on common CV mistakes, the importance of showcasing skills and achievements, and the role of AI in recruitment. They explore the relevance of cover letters, salary transparency, and the current state of the job market, including signs of recovery. Mary emphasizes the significance of LinkedIn for job seekers and shares insights on adapting to the changing recruitment landscape, particularly for contractors.Chapters00:00 Introduction to Recruitment Challenges03:37 Common CV Mistakes in Job Applications09:19 The Evolution of Job Market Dynamics14:56 Leveraging AI in Job Hunting18:34 The Role of Cover Letters in Modern Applications23:13 Understanding Salary Expectations and Market Trends24:28 Market Recovery and Hiring Trends28:01 The Impact of AI on Employment28:53 Leveraging LinkedIn for Job Seekers38:14 Navigating Recruitment in a Changing Market40:52 The Rise of Project-Based Work46:34 Final Tips for Job SeekersLINKSMary's LinkedIn - https://www.linkedin.com/in/mary-fidler/Mary's Career Page https://trusttechrecruitment.zohorecruit.eu/jobs/Careers John's Links:John's LinkedIn: https://www.linkedin.com/in/johncrickett/John’s YouTube: https://www.youtube.com/@johncrickettJohn's Twitter: https://x.com/johncrickettJohn's Bluesky: https://bsky.app/profile/johncrickett.bsky.socialCheck out John's software engineering related newsletters: Coding Challenges: https://codingchallenges.substack.com/ which shares real-world project ideas that you can use to level up your coding skills.Developing Skills: https://read.developingskills.fyi/ covering everything from system design to soft skills, helping them progress their career from junior to staff+ or for those that want onto a management track.TakeawaysOne page CVs are a common mistake.Highlight achievements over duties in CVs.AI tools are increasingly important for developers.Cover letters are often unnecessary if CVs are strong.Salary transparency can build trust between candidates and recruiters.The job market is showing signs of recovery.LinkedIn is essential for job seekers to stand out.Contractors can provide cost-effective solutions for companies.Personal branding on LinkedIn can lead to job opportunities.Networking and asking for impact details can enhance CVs.

Nov 6, 2025 • 57min
Isograph: the future of data driven apps
Robert Balicki, the creator and lead developer of Isograph, delves into the future of data-driven applications crafted with GraphQL and React. He discusses the common pitfalls of over-fetching data and network waterfalls, and how Isograph's opinionated framework tackles these challenges by generating precise, per-screen queries. Robert also highlights the significance of testing, CI/CD integration, and scaling in large projects, fueled by Rust's robust capabilities. He invites developers to contribute to the evolving landscape of Isograph and its community.

Oct 30, 2025 • 52min
From fire fighting to AI pair programming: Shane Harger's journey
Coding Chats episode 51 - Shane Harger shares her unique career journey from web development and graphic design to firefighting and back to tech, emphasizing the importance of pair programming, incident management lessons, and the evolving role of AI in software development. She discusses the significance of DevOps and platform engineering in enhancing team collaboration and efficiency, while also highlighting the value of junior developers in fostering a learning environment within teams.Chapters00:00 Shane Harger's Unique Career Journey05:32 Transitioning from Firefighting to Tech10:12 The Importance of Pair Programming15:01 Lessons from Incident Management20:02 DevOps and Platform Engineering Insights27:44 The Dynamics of Code Review and Pair Programming29:54 AI as a Partner in Programming34:03 Key Learnings from AI Pair Programming Experiments45:37 The Importance of Diverse Pairing in Development TeamsShane's links:https://www.linkedin.com/in/shaneharger/John's Links:John's LinkedIn: https://www.linkedin.com/in/johncrickett/John’s YouTube: https://www.youtube.com/@johncrickettJohn's Twitter: https://x.com/johncrickettJohn's Bluesky: https://bsky.app/profile/johncrickett.bsky.socialCheck out John's software engineering related newsletters: Coding Challenges: https://codingchallenges.substack.com/ which shares real-world project ideas that you can use to level up your coding skills.Developing Skills: https://read.developingskills.fyi/ covering everything from system design to soft skills, helping them progress their career from junior to staff+ or for those that want onto a management track.TakeawaysShane's career spans web development, firefighting, and consulting.Firefighting provided unexpected tech opportunities in incident management.Pair programming fosters camaraderie and knowledge sharing.DevOps emphasizes ownership and collaboration in software development.AI can assist in coding but lacks the human element of teamwork.Juniors bring fresh perspectives and questions that benefit teams.Effective incident management requires calmness and basic troubleshooting skills.Automation in DevOps enhances response times and reduces handovers.Product thinking is essential for infrastructure teams to meet customer needs.The transition from POC to production can be challenging without clear requirements.

Oct 23, 2025 • 56min
How to manage technical debt with Lou Franco
Coding Chats episode 50 - Lou Franco discusses the concept of technical debt, its implications for software development, and the importance of quantifying it. He emphasizes that technical debt is not just a financial metaphor but a real issue affecting developer productivity and team dynamics. The discussion also covers the role of managers in understanding and addressing technical debt, the importance of metrics, and the eight questions that can help teams evaluate their technical debt. Additionally, the conversation touches on the impact of AI on technical debt management, highlighting both its potential benefits and challenges.Chapters00:00 Understanding Technical Debt03:17 The Financial Metaphor of Tech Debt06:04 Defining Technical Debt: Internal vs External Effects08:59 The Role of Developer Productivity12:05 The Team Responsibility of Technical Debt14:51 Why Managers Should Care About Tech Debt18:05 Quantifying Technical Debt for Visibility20:57 Improving Developer Productivity23:43 Communicating Tech Debt to Executives26:41 Understanding Technical Debt and Its Management36:37 The Eight Questions for Managing Technical Debt46:29 AI's Role in Technical Debt: A Double-Edged SwordLou's Links:LinkedIn: https://www.linkedin.com/in/loufranco/Book: https://loufranco.com/tech-debt-bookJohn's Links:John's LinkedIn: https://www.linkedin.com/in/johncrickett/John’s YouTube: https://www.youtube.com/@johncrickettJohn's Twitter: https://x.com/johncrickettJohn's Bluesky: https://bsky.app/profile/johncrickett.bsky.socialCheck out John's software engineering related newsletters: Coding Challenges: https://codingchallenges.substack.com/ which shares real-world project ideas that you can use to level up your coding skills.Developing Skills: https://read.developingskills.fyi/ covering everything from system design to soft skills, helping them progress their career from junior to staff+ or for those that want onto a management track.TakeawaysTechnical debt is often misunderstood and miscommunicated.The financial metaphor of technical debt can be misleading.Technical debt can arise from changing technologies, not just poor choices.Developers experience anxiety due to technical debt affecting estimates.Managers need to understand the visible effects of technical debt.Quantifying technical debt helps in communicating its impact.The eight questions framework aids in evaluating technical debt.AI can assist in managing technical debt but requires careful oversight.Collaboration with other teams can provide valuable insights into technical debt.Technical debt should be viewed as a team responsibility, not just an individual issue.

Oct 16, 2025 • 49min
An introduction to cybersecurity - from physical breaches to digital intrusions
Coding Chats episode 49 - John Crickett and Kev Milne delve into the critical realm of cybersecurity, exploring its various facets from social engineering to the importance of penetration testing. They discuss the evolution of attacks, the role of AI, and the significance of mainframes in modern security. The conversation also highlights the career paths in cybersecurity and the necessity for continuous investment in security measures to protect digital assets.Chapters00:00 Understanding Cybersecurity03:38 The Evolution of Attacks: Physical vs. Digital06:18 Social Engineering: The Art of Deception09:15 The Importance of Penetration Testing12:02 Career Paths in Cybersecurity14:49 The Diverse Landscape of Cybersecurity17:56 The Necessity of Ongoing Security Measures20:34 The Cost of Neglecting Cybersecurity25:48 The Evolution of Wi-Fi Security27:04 Mainframes: The Misunderstood Giants28:15 Mainframe Security: Myths and Realities30:02 The Challenge of Legacy Code32:20 Balancing Security and Functionality34:12 Defense in Depth: A Security Strategy35:35 AI's Role in Cybersecurity37:50 The Threat Landscape: Script Kiddies and Beyond38:34 Training the Next Generation of Cybersecurity Experts41:36 The Importance of Conferences in CybersecurityKev's Links:LinkedIn: https://www.linkedin.com/in/kevinmilne/Website where folks can obtain the Mainframe Offensive Security Tester course, download the Gibson Mainframe Simulator or purchase the Cyber Coach labs: https://offensivesec.orgTry out some free labs Kev has created: https://cyber-coach-labs-bd010da0.base44.app/FreeLabsJohn's Links:John's LinkedIn: https://www.linkedin.com/in/johncrickett/John’s YouTube: https://www.youtube.com/@johncrickettJohn's Twitter: https://x.com/johncrickettJohn's Bluesky: https://bsky.app/profile/johncrickett.bsky.socialCheck out John's software engineering related newsletters: Coding Challenges: https://codingchallenges.substack.com/ which shares real-world project ideas that you can use to level up your coding skills.Developing Skills: https://read.developingskills.fyi/ covering everything from system design to soft skills, helping them progress their career from junior to staff+ or for those that want onto a management track.TakeawaysCybersecurity is essential for protecting digital assets.Social engineering remains a significant threat today.Red teaming involves advanced penetration testing techniques.Understanding networking is crucial for aspiring penetration testers.Mainframes are still vital for processing transactions.AI can both aid and complicate cybersecurity efforts.Continuous investment in cybersecurity is necessary for businesses.Penetration testing should be a standard practice for all companies.Security requires a layered defense approach.Conferences are valuable for staying updated in cybersecurity.

Oct 9, 2025 • 49min
Career growth strategies in software engineering: start-ups vs bigtech
Coding Chats episode 48 - John Crickett and Gilad Naor explore the differences between working at startups and big tech companies, discussing the pros and cons of each environment. They delve into career growth, the importance of mentorship, and the balance between specialization and generalization in tech careers. The discussion also covers the management track versus individual contributor roles, the role of managers in creating positive change, and the significance of interview preparation. Additionally, they highlight the value of side projects and the necessity for managers to build empathy through understanding various roles within their organizations. The conversation concludes with advice on taking ownership of one's career and the importance of continuous personal development.Chapters00:00 Startups vs. Big Tech: A Comparative Overview03:19 Navigating Career Growth in Tech06:08 The Reality of Big Tech Work09:06 Specialization vs. Generalization in Tech Careers11:39 The Management Track: Leadership vs. Management14:28 Creating Positive Change as a Manager17:14 Interview Preparation for Managers20:33 Choosing the Right Stories for Interviews26:59 Navigating Conflict in Technical Leadership29:12 Addressing Gaps in Management Experience32:15 Interview Strategies for Senior Roles35:17 Demonstrating Depth of Experience in Interviews38:52 The Role of Side Projects in Personal Development42:02 The Importance of Technical Empathy in Management47:32 Taking Ownership of Your CareerGilad's Links:Gilad's LinkedIn: https://www.linkedin.com/in/giladnaorGilad's Website: https://managementdeltas.com/ John's Links:John's LinkedIn: https://www.linkedin.com/in/johncrickett/John’s YouTube: https://www.youtube.com/@johncrickettJohn's Twitter: https://x.com/johncrickettJohn's Bluesky: https://bsky.app/profile/johncrickett.bsky.socialCheck out John's software engineering related newsletters: Coding Challenges: https://codingchallenges.substack.com/ which shares real-world project ideas that you can use to level up your coding skills.Developing Skills: https://read.developingskills.fyi/ covering everything from system design to soft skills, helping them progress their career from junior to staff+ or for those that want onto a management track.TakeawaysWorking at startups allows for a broader range of experiences.Big tech offers more mentorship opportunities for career growth.The term 'startup' can encompass a wide range of company sizes and structures.Career growth in tech often requires navigating internal mobility.Specialization can provide a competitive advantage in tech careers.Management and leadership are distinct roles that require different skill sets.Interview preparation is crucial for both managers and individual contributors.Building empathy as a manager involves understanding various roles in the organization.Side projects can help maintain technical skills and foster personal development.Taking ownership of your career is essential for success.


