Ryan Riley: Leading a Software Engineering Team – Episode 316

Challenges

  • Balancing hands-on coding with team leadership in a long-term software engineering career.
  • Addressing the complexities of cloud costs and performance management.
  • Ensuring effective communication and collaboration within remote and local teams.

Solutions

  • Empowering team members to lead projects and grow their skill sets.
  • Implementing architectural patterns like JSON APIs and balancing between monoliths and microservices.
  • Developing strategies for supporting software in production and ensuring stability.

Benefits

  • Enhanced team productivity and efficiency through effective leadership.
  • Improved stability and performance of software systems.
  • Stronger team collaboration and skill development.

Ryan Riley is a Principal Software Engineer at Wise Rock in Houston, TX. He enjoys learning and collaborating on simple, creative solutions to problems, and implementing those solutions with others through teamwork, training, and mentoring. He has worked as a Solution Architect and Team Lead for local and remote teams, focusing on front-end UX and back-end, distributed applications, and APIs to delight customers across many industries.

Topics of Discussion:
[00:36] Intro to Ryan and his experience in software engineering leadership.
[04:10] Ryan’s early career journey and transition from the .com bubble to software development.
[06:17] How Ryan stepped into leadership roles through initiative and team collaboration.
[08:40] Balancing hands-on coding with team leadership in a long-term software engineering career.
[12:10] The importance of experience and technical knowledge for effective leadership in development teams.
[14:27] Empowering team members to lead projects and grow their skill sets.
[18:15] Key non-negotiables for young developers, including pull requests, testing, and small commits.
[21:28] Architectural patterns Ryan favors, like JSON APIs and balancing between monoliths and microservices.
[28:55] Key strategies for supporting software in production and ensuring stability.
[34:41] Challenges of cloud costs and performance and the importance of managing resources efficiently.