Staff software engineer Ahmad joined me to share insights from designing complex systems at Shopify. We discussed distributed systems, managing technology landscapes, testing strategies, flexible architectures, leadership skills, understanding roles, and optimizing teams.
Key takeaways involve tackling uncertainty, tailoring methods to teams versus rigid recipes, testing guiding principles over metrics, solving business challenges, and incrementally converging on solutions via hypothesis testing.
▬▬▬▬▬▬ Resources & References 📕 ▬▬▬▬▬▬
Ahmad's LinkedIn: / aalhour
▬▬▬▬▬▬ Chapters 🕐 ▬▬▬▬▬▬
00:01:02 - Ahmad Alhour's background
00:03:37 - Is it better to have a diversified career path?
00:07:14 - How should staff+ engineers work with managers?
00:09:36 - Solving the merchants' fraud problem
00:18:45 - What's the tech stack used at Shopify?
00:23:55 - Transactions in event-driven architectures
00:26:04 - How do you do geo-replication with Kafka?
00:28:13 - MySQL and data replication
00:32:14 - How do you do database migrations and transitions?
00:33:54 - Microservices and distributed transactions
00:36:12 - The noisy neighbour problem
00:37:15 - How do you guarantee isolation of scale units?
00:39:15 - How to set up a cache server for a multi-tenant environment?
00:40:56 - GraphQL in production
00:43:13 - How do you package and release internal API clients?
00:47:03 - Unit testing, integration testing, and end-to-end testing
00:50:22 - How complicated should unit tests be?
00:53:37 - The art of software development
00:58:18 - Software development is an optimization problem
01:08:35 - Conclusion
▬▬▬▬▬▬ Connect with me 👋 ▬▬▬▬▬▬
Twitter: / bassemdy
GitHub: https://github.com/link-
LinkedIn: / bassemdghaidy
Facebook: / bassemdy
Blog: https://blog.bassemdy.com
▬▬▬▬▬▬ Support the channel 💜 ▬▬▬▬▬▬
Every little bit helps ✨
Become a member of the channel: https://glich.stream/yt_members
Get access to Patreon exclusive perks: https://glich.stream/patreon
1 time support: https://glich.stream/coffee_shop
#glichstream #softwareengineering #programming #coding