
Sign up to save your podcasts
Or


Coding Chats episode 60 - John Crickett and Paul discuss the transformative impact of AI on software engineering, exploring topics such as spec-driven development, the importance of small batches, and the challenges of requirements gathering. They delve into the evolving role of AI tools, the need for effective communication, and the balance between productivity and code quality. The discussion also touches on the future of AI in development, the significance of ownership in coding, and the potential for specialized AI agents to enhance workflows. Paul shares valuable tips for leveraging AI in software engineering, emphasizing the importance of joy, working in small units, and maintaining humility in the face of rapid technological change.
Chapters
00:00 AI in Software Engineering: A New Era
03:36 The Revelation of Prompt-Driven Development
06:08 Spec-Driven Development vs. Waterfall
09:16 The Importance of Small Batches in AI Development
12:05 Ownership and Responsibility in AI-Generated Code
14:57 The Challenges of Outsourcing and Communication in Software Development
20:15 The Future of Programming and Communication
23:38 AI Tools and Upstream Bottlenecks
27:18 Understanding JetBrains' AI Integration
31:40 User Experience and AI Interaction
35:42 Opinionated Workflows in Software Development
37:24 Finding Joy in AI-Assisted Engineering
Paul's Links:https://buildermethods.com/agent-os
John's Links:
John's LinkedIn: https://www.linkedin.com/in/johncrickett/
John’s YouTube: https://www.youtube.com/@johncrickett
John's Twitter: https://x.com/johncrickett
John's Bluesky: https://bsky.app/profile/johncrickett.bsky.social
Check 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.
Takeaways
AI is revolutionizing software engineering practices.
Spec-driven development formalizes the way we instruct AI agents.
Small batches improve productivity and maintain context.
Ownership of code is crucial for long-term success.
Quality of code generated by AI is more important than quantity.
Effective communication is key in AI-assisted development.
Specialized AI agents will enhance the development process.
JetBrains is evolving its tools to integrate AI effectively.
Developers should find joy in their work, even with AI assistance.
Humility is essential as we navigate the future of AI in programming.
Coding Chats episode 59 - Josh discusses the AI agent framework Rig, its functionalities, and the benefits of using Rust for its implementation. He explains the concept of agents and embeddings, their applications, and the importance of managing context windows in AI models. Josh shares his journey of learning Rust, transitioning from a technical content writer to a co-maintainer of Rig, and the challenges faced while building a coding agent. He emphasizes effective prompting strategies and the importance of concise communication with AI models. The conversation concludes with insights on contributing to Rig and the future of AI frameworks.
Chapters
00:00 Introduction to Rig and AI Frameworks
02:56 Understanding Agents and Embeddings
05:24 Use Cases for Embeddings and Context Management
07:53 Benefits of Using Rig in Rust
10:10 Learning Rust and Overcoming Challenges
12:56 Transitioning to Rig and AI Focus
15:21 Building a Coding Agent: Challenges and Insights
17:45 Prompting Techniques and Best Practices
20:06 Contributing to Rig and Community Engagement
22:49 Final Thoughts and Future Directions
Josh's Links:
https://github.com/0xPlaygrounds/rig
https://www.rustnationuk.com/speaker/joshua-mo
https://www.linkedin.com/in/joshua-mo-4146aa220/
John's Links:
John's LinkedIn: https://www.linkedin.com/in/johncrickett/
John’s YouTube: https://www.youtube.com/@johncrickett
John's Twitter: https://x.com/johncrickett
John's Bluesky: https://bsky.app/profile/johncrickett.bsky.social
Check 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.
Takeaways
Rig is an AI agent framework that simplifies AI integration.
Agents in AI are often misunderstood due to marketing hype.
Embeddings serve as data representations for various applications.
Retrieval augmented generation is a common use case for embeddings.
Managing the context window is crucial for effective AI performance.
Using Rust for Rig provides type safety and performance benefits.
Learning Rust can be challenging but rewarding with the right approach.
Josh transitioned from content writing to engineering at Rig.
Building a coding agent revealed the complexities of AI.
Concise prompts are essential to avoid overwhelming AI models.
In this special holiday episode of Coding Chats, John Crickett answers audience questions about software engineering careers, the impact of AI, programming languages, and the importance of leadership. He discusses how to rebuild an engineering career, the significance of meaningful projects, and the readiness of self-taught developers. The conversation also touches on insights gained from hosting the podcast and the evolving landscape of software development.
Chapters
00:00 Introduction to the Coding Chats Holiday Special
00:22 Rebuilding an Engineering Career in 2025
01:01 The Future of Software Engineering with AI
01:27 Learning Programming: Starting Points and Languages
02:27 Breaking the No Experience Loop for Developers
04:17 Meaningful Experience: Projects and Contributions
05:02 Self-Taught Developers: Readiness and Opportunities
06:07 Qualities of a Good Software Engineering Leader
06:52 Insights from 18 Months of Coding Chats
07:43 Architecture as a Strategic Concern in Engineering
John's Links:
John's LinkedIn: https://www.linkedin.com/in/johncrickett/
John’s YouTube: https://www.youtube.com/@johncrickett
John's Twitter: https://x.com/johncrickett
John's Bluesky: https://bsky.app/profile/johncrickett.bsky.social
Check 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.
Takeaways
Leverage AI to find answers quicker than before.
Reading and curiosity are key habits for growth.
All parts of software engineering will survive AI advancements.
Focus on learning computer science fundamentals first.
Choose programming languages based on your interests.
Building personal projects can help you get noticed.
Self-taught developers can be just as capable as those with degrees.
Good leadership adapts to the situation and team needs.
The software development field is diverse and evolving.
Architecture should be treated as a strategic concern.
Coding Chats episode 58 - John Crickett and Melinda Fekete delve into the concept of feature ops, emphasizing the importance of managing code in production effectively. They discuss feature flags as a mechanism for safe testing and releasing of code, the challenges of managing feature flags, and the significance of user feedback in software development. The conversation also touches on deployment strategies like canary releases, learning from recent outages, and the benefits of testing in production. Additionally, they explore the role of feature flag providers and the trade-offs associated with adopting feature flags in software projects.
Chapters
00:00 Introduction to Feature Ops
02:46 Managing Feature Flags Effectively
07:41 Deployment Strategies: Canary Releases and Gradual Rollouts
12:23 The Importance of Dogfooding and User Feedback
15:05 Learning from Recent Outages
19:13 Testing in Production and Its Benefits
21:51 Managing Feature Flags at Scale
27:01 Feature Flag Providers and Their Benefits
30:50 Involving Product Teams in Feature Flag Management
31:45 Trade-offs and Downsides of Feature Flags
39:35 Exploring Related Content
Melinda's Links:
A guide on working with feature flags in code: https://docs.getunleash.io/guides/manage-feature-flags-in-code
Open-source repo: https://github.com/Unleash/unleash
John's Links:
John's LinkedIn: https://www.linkedin.com/in/johncrickett/
John’s YouTube: https://www.youtube.com/@johncrickett
John's Twitter: https://x.com/johncrickett
John's Bluesky: https://bsky.app/profile/johncrickett.bsky.social
Check 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.
Takeaways
Feature ops focuses on managing code in production effectively.
Feature flags allow for safe testing and releasing of code without redeployment.
Managing the lifecycle of feature flags is crucial for maintenance.
Canary releases and gradual rollouts help mitigate risks during deployment.
User feedback is essential for improving software products.
Recent outages highlight the need for better feature management practices.
Testing in production can catch issues that staging environments may miss.
Feature flag providers offer tools for managing flags at scale.
Trade-offs exist when adopting feature flags, especially for smaller projects.
Effective management of feature flags can empower teams and improve deployment speed.
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.
Chapters
00:00 Defining the Role of AI Engineer
03:13 Exploring Large Language Models (LLMs)
06:15 Use Cases for LLMs in Business
09:22 The Non-Deterministic Nature of AI
12:12 AI in Software Engineering: The Future
15:11 The Role of AI in Code Review
17:53 The Bottleneck of Requirements Gathering
20:38 Leveraging AI Throughout the Software Lifecycle
29:53 Leveraging AI for Efficient Documentation
30:47 AI in API Design and Review
32:22 Spectrum Driven Development with AI
34:06 The Role of Requirements in Software Engineering
40:05 The Future of Programming Languages and AI
49:54 Understanding Context and Prompt Engineering
56:38 Exploring Related Content
Owain's Links:
Substack: https://newsletter.owainlewis.com/subscribe
AI Engineer: https://skool.com/aiengineer
John's Links:
John's LinkedIn: https://www.linkedin.com/in/johncrickett/
John’s YouTube: https://www.youtube.com/@johncrickett
John's Twitter: https://x.com/johncrickett
John's Bluesky: https://bsky.app/profile/johncrickett.bsky.social
Check 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.
Takeaways
AI 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.
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.
Chapters
00:00 The Journey to Team Leadership
08:44 Leadership vs Management
10:33 Common Mistakes of New Leaders
15:58 The Importance of Delegation
19:46 Curiosity in Leadership
22:33 Insights from the Book
27:57 The Role of Technical Skills in Leadership
31:58 The Impact of AI on Software Engineering
Paul'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/@johncrickett
John's Twitter: https://x.com/johncrickett
John's Bluesky: https://bsky.app/profile/johncrickett.bsky.social
Check 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.
Takeaways
Letting 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.
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.
Chapters
00:00 Introduction to Rust and Its Adoption
03:49 Performance Gains with Rust
06:37 Challenges of Over-the-Air Updates
09:36 Onboarding Developers to Rust
12:33 Team Collaboration and Trust
14:53 Testing Strategies for Rust Applications
17:38 Trade-offs and Considerations with Rust
20:13 Hiring and Team Building for Rust
23:02 Advice for Organizations Considering Rust
26:00 Managing Technical Debt in Rust
28:48 Conclusion and Final Thoughts
33:52 Exploring Related Content
LINKS
Emma's Links
https://www.linkedin.com/in/emmanedelcu/
John's Links:
John's LinkedIn: https://www.linkedin.com/in/johncrickett/
John’s YouTube: https://www.youtube.com/@johncrickett
John's Twitter: https://x.com/johncrickett
John's Bluesky: https://bsky.app/profile/johncrickett.bsky.social
Check 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.
Takeaways
Rust 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.
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.
Chapters
00:00 The Importance of Soft Skills in Engineering
03:14 Bridging the Gap: Engineers and Customer Interaction
06:26 Nature vs. Nurture: The Art of Asking Questions
09:06 Effective Communication: How to Ask the Right Questions
12:06 Understanding Context: The Key to Effective Dialogue
14:53 Navigating Emotional Reactions in Communication
17:36 Feedback and Conflict Resolution: Building Better Relationships
20:57 The Efficiency of Communication in Engineering
23:32 The Role of Emotions in Engineering
26:38 Team Dynamics: The Myth of the 10x Developer
29:08 The Importance of Communication in Engineering
31:29 Empowering Teams to Reduce Meetings
34:40 Communicating with Impact
38:21 Building Trust with Non-Technical Stakeholders
42:11 Creating Meaningful Connections
48:53 Owning Your Confidence as an Engineer
Nikki'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/@johncrickett
John's Twitter: https://x.com/johncrickett
John's Bluesky: https://bsky.app/profile/johncrickett.bsky.social
Check 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.
Takeaways
Engineering 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.
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.
Chapters
00:00 Introduction to Recruitment Challenges
03:37 Common CV Mistakes in Job Applications
09:19 The Evolution of Job Market Dynamics
14:56 Leveraging AI in Job Hunting
18:34 The Role of Cover Letters in Modern Applications
23:13 Understanding Salary Expectations and Market Trends
24:28 Market Recovery and Hiring Trends
28:01 The Impact of AI on Employment
28:53 Leveraging LinkedIn for Job Seekers
38:14 Navigating Recruitment in a Changing Market
40:52 The Rise of Project-Based Work
46:34 Final Tips for Job Seekers
LINKS
Mary'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/@johncrickett
John's Twitter: https://x.com/johncrickett
John's Bluesky: https://bsky.app/profile/johncrickett.bsky.social
Check 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.
Takeaways
One 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.
Coding Chats episode 52 - Robert Balicki discusses Isograph, an opinionated framework designed to simplify the development of data-driven applications, particularly with GraphQL and React. He explains the challenges faced in web development, such as over-fetching data and network waterfalls, and how Isograph addresses these issues by allowing developers to focus on specific components and their data needs. The discussion also covers the technical foundation of Isograph, built using Rust, and the challenges of compiler development. Robert emphasizes the importance of testing, CI/CD integration, and the potential for Isograph to scale effectively in large projects. He invites developers to get involved in the project and contribute to its growth.
Chapters
00:00 Introduction to Isograph
05:11 Understanding the Problem Isograph Solves
09:57 The Concept of Opinionated Frameworks
13:40 Exploring Network Waterfalls
16:43 Testing and CI/CD Integration
20:49 Scaling with Monorepos and Integration
27:57 Future Vision for Isograph
28:04 Understanding Isograph's Runtime and Compiler
29:40 The Influence of Rust in Compiler Development
32:04 The Challenges of Building a Compiler
35:53 Transitioning from Batch to Incremental Compilation
45:28 Leveraging Rust for Enhanced Developer Experience
52:55 Community Engagement and Future of Isograph
56:32 Exploring Related Content
LINKS
Robert's Links:
Isograph: http://isograph.dev/
John's Links:
John's LinkedIn: https://www.linkedin.com/in/johncrickett/
John’s YouTube: https://www.youtube.com/@johncrickett
John's Twitter: https://x.com/johncrickett
John's Bluesky: https://bsky.app/profile/johncrickett.bsky.social
Check 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.
Takeaways
Isograph simplifies building data-driven applications.
The framework is opinionated, promoting best practices.
Network waterfalls can degrade user experience.
Isograph allows for precise data fetching.
Testing is a key focus in Isograph's development.
Rust provides safety and performance benefits.
The framework aims to support SQL backends in the future.
Isograph encourages a full-stack development approach.
Community involvement is welcomed through Discord.
The developer experience with Isograph is superior to other frameworks.
From the publisher's feed

286 Listeners