POPULARITY
In this episode of the Laravel Podcast, host Matt Stauffer sits down with Chris Sev, Laravel's new Director of Developer Relations, to explore his background and the evolving role of DevRel. They dive into exciting updates in the Laravel ecosystem, including the launch of Laravel Cloud, new starter kits, the VS code extension, and the redesigned Laravel website. The discussion also covers the importance of backward compatibility, upcoming community events, and the continuous evolution and support within the Laravel community.Matt Stauffer's TwitterChris Sev's TwitterLaravel TwitterLaravel WebsiteTighten WebsiteLaravel CloudLaravel RedditJoe Dixon AMA on RedditSuggestion Box----- Editing and transcription sponsored by Tighten.
In this episode of The Business of Laravel podcast, Matt Stauffer interviews David Watson, founder of RiskAdvisor, a SaaS platform for independent insurance agents. David shares his journey from being a non-technical founder to running a successful business, emphasizing the importance of marketing and sales skills in entrepreneurship. He discusses the challenges he faced transitioning from a no-code solution to a more robust code-based platform and offers insights into building a strong team. David also explores how AI can be leveraged to drive sales growth in the insurance industry.Matt Stauffer TwitterTighten WebsiteDavid Watson FacebookDavid Watson LinkedInRiskAdvisor WebsiteHow to Win Friends and Influence People-----Editing and transcription sponsored by Tighten.
In this episode of The Business of Laravel podcast, Matt Stauffer interviews Gilbert Pellegrom, Engineering Manager at Stripe and former Co-founder/CTO of Lemon Squeezy. Gilbert shares his journey from self-taught developer to entrepreneur, building Lemon Squeezy to simplify selling digital goods online. They discuss technical challenges using Laravel, the role of community and branding in hiring, and the bootstrap mindset that led to their acquisition by Stripe. Gilbert reflects on leadership, soft skills, and balancing personal passions—like his love for cars—with the joy of building meaningful projects.Matt Stauffer TwitterTighten WebsiteGilbert Pellegrom TwitterGilbert Pellegrom LinkedInGilbert Pellegrom's Website-----Editing and transcription sponsored by Tighten.
In this episode of the Business of Laravel podcast, Matt Stauffer talks with Alex Millar, CTO and founder of GovAI, about his journey from selling his previous venture, Bonfire, to adopting Laravel for his latest project. Alex shares how Laravel improved his two-man team's efficiency and his experience as a newcomer to the framework. They discuss challenges in adopting new tools, the importance of documentation, architecture testing, and strategies for entrepreneurial success. Alex also offers insights on leadership, communication, and how small, well-executed details can drive significant growth.Matt Stauffer TwitterTighten WebsiteAlex Millar's WebsiteAlex Millar TwitterGovAI WebsiteMinMaxing Software Costs TalkRandall Stutman: The Essence of Leadership [The Knowledge Project Ep. #96] "")Jim Dethmer: Leading Above the Line [The Knowledge Project Ep. #60]TED: Speaking so People Want to ListenAlex's READMEYou can email Alex at alexander.millar@gmail.com.-----Editing and transcription sponsored by Tighten.
In this episode of the Laravel podcast, host Matt Stauffer is joined by Taylor Otwell and Jess Archer at Laracon Australia to discuss the new Laravel Nightwatch product and answer listener questions about the Nightwatch announcement. They dive into the development timeline, team dynamics, and the integration of Nightwatch with existing Laravel tools like Pulse, Horizon, and Telescope. The conversation also covers the tech stack used for Nightwatch, the challenges faced during development, and future integrations and features planned for the product.Taylor Otwell's Twitter Matt Stauffer's TwitterJess Archer's Twitter Laravel Twitter Laravel Website Tighten Website Nightwatch Announcement Video from Laracon AUJess Archer's Talk at Laracon US ----- Editing and transcription sponsored by Tighten.
In this episode of the Laravel Podcast, hosts Matt Stauffer and Taylor Otwell explore the latest updates in the Laravel ecosystem, highlighting new features, tools, and enhancements designed to improve the developer experience. They cover the introduction of php.new for simplified PHP installation, a new composer script for easier app setup, and the beta release of Inertia.js V2. The discussion also includes upcoming features in Laravel Cloud and the ongoing debate between popular development tools like Sublime Text and VS Code. Additionally, Taylor shares his process for writing documentation for Laravel. Taylor Otwell's TwitterMatt Stauffer's TwitterLaravel TwitterLaravel Website Tighten WebsiteInertia V2 Website----- Editing and transcription sponsored by Tighten.
In this episode of the Business of Laravel podcast, Matt Stauffer sits down with Jason Johnson, Chief Information Officer at Sweetwater, a leading provider of musical instruments, pro audio equipment, and comprehensive support services for musicians and audio professionals. They discuss Sweetwater's impressive growth, how Laravel plays a key role in their technology stack, and the critical importance of building a strong company culture. Jason shares valuable insights on hiring practices, the significance of diversity in tech, and the power of vulnerability in leadership. He also emphasizes the need for continuous learning and highlights the importance of making intentional, business-driven decisions in both technology and team management.Matt Stauffer TwitterTighten WebsiteJason Johnson LinkedIn Extreme Ownership BookUpstream Book168 Hours BookSweetwater LinkedInSweetwater Careers-----Editing and transcription sponsored by Tighten.
In this episode of the Business of Laravel podcast, Matt Stauffer interviews Jason McCreary, the founder of Shift. They discuss Jason's role and journey in the Laravel community, the functionality of Laravel Shift as an automation tool for upgrading Laravel versions, and the importance of keeping Laravel applications up to date. Jason shares his experience in building a successful SaaS product for developers, offers advice for aspiring founders and business owners, and discusses the unique challenges and rewards of being a solo founder.Matt Stauffer TwitterTighten WebsiteJason McCreary TwitterShiftJason's Twitter ThreadJason's Video on Adding an SMS Admin Action to Download LogsJason's Article on SMS admin in 8 lines of codeOrigin story of Shift-----Editing and transcription sponsored by Tighten.
In this episode of the Business of Laravel Podcast, Matt Stauffer sits down with Jon Behr, VP of Engineering at FM, to discuss his journey into the company and FM's use of Laravel. FM operates three major brands—Musicbed, Film Supply, and Stills—which license music, provide film clips, and sell premium stock photography. John shares insights into the ground-up rewrite of the Musicbed app using Laravel, highlighting the importance of choosing "boring technology" to ensure stability. They also explore topics like scalability, clear communication within engineering teams, and the intricacies of hiring and firing developers.Matt Stauffer TwitterTighten WebsiteJon Behr TwitterJon Behr LinkedIn FM WebsiteMusicbedFilmsupplyChoose Boring Technology Blog PostBecoming an Effective Software Engineering Manager BookRadical Candor BookFM Careers Page-----Editing and transcription sponsored by Tighten.
In this episode of the Laravel podcast, we address some listener-submitted questions regarding the recent investment in Laravel and the announcement of Laravel Cloud. We explore the motivation behind Taylor taking investment, the goals of Accel, and what the future holds for Laravel and its ecosystem. Plus, we cover the future of Laravel Forge and give you a glimpse of what migrating your projects from Forge to Laravel Cloud might look like.Taylor Otwell's Twitter Matt Stauffer's TwitterLaravel TwitterLaravel WebsiteTighten WebsiteSpecial Announcement - Accel invests $57M into Laravel Products & Open-Source Framework VideoLive Q&A re: $57M fundraise, Laravel Cloud, & the future of LaravelPodcast Suggestions Laravel Cloud-----Editing and transcription sponsored by Tighten.
In this episode, recorded live at Laracon US, we talk about the current moment we're seeing in the Laravel world, reflecting on Laravel's evolution and where it stands today. We also dedicate time to answering your questions from Laracon US, mainly about Laravel Cloud, bringing insights directly from the heart of the Laravel community.Taylor Otwell's Twitter Matt Stauffer's TwitterLaravel TwitterLaravel WebsiteTighten WebsitePodcast Suggestions Laravel Cloud-----Editing and transcription sponsored by Tighten.
In this episode of the Business of Laravel Podcast, Matt Stauffer sits down with Chris Morrell, the CEO and CTO of InterNACHI, the largest trade organization for residential and commercial property inspectors globally. Chris shares his insights on leading a technology-driven business in the home inspection industry and explains how InterNACHI leverages Laravel to deliver education, certification, and business tools for home inspectors. He discusses the challenges of broadening their service offerings while emphasizing the importance of making strategic, focused decisions. Additionally, Chris shares his experiences with the hiring process for Laravel developers and highlights the advantages of active participation in the Laravel community.Matt Stauffer TwitterTighten WebsiteChis on MastodonInterNACHI WebsiteChris Morrell TwitterChris Morrell on GitHubRadical Candor BookBooks by Tim FerrissFinancial Management of a Marketing Firm BookChris's Podcast - Over EngineeredGretel Package-----Editing and transcription sponsored by Tighten.
In this episode of the Business of Laravel Podcast, Matt Stauffer sits down with Matthew Davis, the CTO of Mumsnet, a leading social platform for parents in the UK. They discuss Mumsnet's full-scale transition to Laravel, unpacking the challenges and victories of their ground-up rewrite. They dive into the technical architecture behind their hosting and how they're leveraging machine learning to personalize content for their users. The discussion also covers the nuances of hiring Laravel developers and why finding the right culture fit is crucial for avoiding micromanagement and fostering independence in the workplace. Matthew Davis offers incredible insights on building trust between engineering and product teams and highlights how Laravel can be a game-changer for boosting productivity and driving real business value.Matt Stauffer TwitterTighten WebsiteMatthew Davis Twitter Mumsnet WebsiteMumsnet LinkedInRandical Candor Book Conflicted by Ian Leslie Growth Levers by Matt Lerner Matt Stauffer's Empathy Gives You Superpowers Talk - Laracon EU 2015 -----Editing and transcription sponsored by Tighten.
In this episode of the Business of Laravel podcast, Matt Stauffer interviews Greg Skerman, Director of Technology at iSeekplant, Australia's leading online construction marketplace. They discuss Greg's role, the benefits and challenges of a service-oriented architecture, and working with non-technical stakeholders. Greg emphasizes the importance of scaling people alongside technology, the value of experimentation, and the ability to swiftly revert changes. He highlights the advantages of frequent deployments, such as risk mitigation and quicker rollbacks, and their positive impact on staff retention. Greg also offers advice for aspiring leaders, stressing the importance of soft skills, openness to different approaches, and engaging with the community and mentors for career growth.Matt Stauffer Twitter Tighten Website Greg Skerman TwitterGreg Skerman LinkedInGreg's PodcastGreg's Substackiseekplant WebsitePostHogTurn the Ship Around BookGreg's 2023 Laracon AU TalkLaracon AU 2024-----Editing and transcription sponsored by Tighten.
After a short break, we're back and the countdown to Laracon US is on! Join us as we discuss the upcoming Laracon US and the journey from local meetups to bigger Laravel events. We also explore the future of Nova and Filament, two key admin panel tools in the Laravel ecosystem. Plus, we're answering more of your questions! We cover open-source projects by the Laravel team, coding styles within the Laravel community, the use of Livewire and Alpine for front-end development, testing practices, PWA support in Laravel, and database query optimization.Taylor Otwell's Twitter Matt Stauffer's TwitterLaravel TwitterLaravel WebsiteTighten WebsitePodcast Suggestions Built with Laravel-----Editing and transcription sponsored by Tighten.
In this episode of the Business of Laravel podcast, host Matt Stauffer interviews Michele and Mathias Hansen, the founders of Geocodio, a SaaS that provides hassle-free geocoding, built with Laravel. They discuss their motivation for creating the service, born from their own need for reliable geocoding data, and explore the challenges and benefits of working together as a couple, including how their roles have evolved as the company has grown. They also highlight the importance of listening to user feedback and customer input throughout the development process and share their experiences in hiring and building a remote team.Matt Stauffer Twitter Tighten Website Michele Hansen Twitter Mathias Hansen TwitterGeocodio WebsiteMichele's book - Deploy Empathy -----Editing and transcription sponsored by Tighten.
What set two developers on a quest to build custom tooling to enforce their code style preferences? Today's episode is a story that starts with two independent projects—Tighten's `tlint` and InterNACHI's `laralint`—but meanders to all the right places, including the future of PHP itself, the intersection of bikeshedding and art, and so much more.
In this episode of the Business of Laravel podcast, host Matt Stauffer sits down with Ben Holmen, CTO of the Boutique Hub, a community of boutique owners and brands dedicated to strengthening small businesses. Ben shares insights into his role, where he juggles infrastructure, people, code, and business objectives.Ben discusses the challenges and successes of using Laravel, key decisions as a CTO, and integrating with Shopify. He also shares his personal journey from being a programmer to leading a team, highlighting the critical role of communication and trust in a remote setup. Plus, we explore his latest experiment, the Pair-amid Scheme, where he pairs with strangers to spark collaboration and growth in the developer community.Matt Stauffer Twitter Tighten Website Ben Holmen Twitter Ben Holmen's WebsiteThe Boutique HubPair-amid SchemeRadical Candor Book-----Editing and transcription sponsored by Tighten.
In this episode of the Business of Laravel podcast, host Matt Stauffer interviews Aaron Francis, co-founder of Try Hard Studios, beloved Internet personality, Laravel developer, and all-around Internet nice guy. Aaron shares his journey from his days at a property tax company to his bold leap into entrepreneurship, sharing insights into his evolution every step of the way. He discusses moving beyond the "hustle era" to what he terms the "Try Hard era," emphasizing the importance of concerted effort and determination in achieving success. Tune in to learn about Aaron's background, his passion for creating educational content, and the exciting ventures he's currently pursuing in the world of Laravel development.Matt Stauffer Twitter - Matt Stauffer (@stauffermatt) on XTighten Website - Tighten | Software Development for Web + Mobile | Laravel + Vue.jsAaron Francis Twitter - @aarondfrancisAaron Francis Website - aaronfrancis.comTry Hard Studios - tryhardstudios.comRadical Candor - https://www.radicalcandor.com/37 Signals - https://37signals.com/books/Brené Brown - https://brenebrown.com/-----Editing and transcription sponsored by Tighten.
In this episode, we dive into listener-generated questions. Join us as we cover a wide range of topics, from hangups in new Laravel apps and best practices for bigger apps, to the impact of AI tools on our workflows. We'll discuss common mistakes when building your first Laravel application, tips for documenting APIs, Laravel's transformative impact on business, and what Inertia needs to become feature complete.Taylor Otwell's Twitter - https://twitter.com/taylorotwellMatt Stauffer's Twitter - https://twitter.com/stauffermattLaravel Twitter - https://twitter.com/laravelphpLaravel Website - https://laravel.com/Tighten Website - https://tighten.com/Podcast Suggestions - https://suggest.gg/laravelpodcast/ideasMatt's talk on JSON:API: https://youtu.be/C01dvypo4O4?si=BDZKfz-bxeZK3AzvSpatie Query Package: https://github.com/spatie/laravel-query-builderBusiness of Laravel Podcast: https://businessoflaravel.com/-----Editing and transcription sponsored by Tighten.
In this week's episode of the Business of Laravel podcast, host Matt Stauffer talks with Caleb Porzio, a prominent figure in the Laravel community and the creator of Livewire and Alpine.js.Caleb shares his unconventional journey from being a self-proclaimed "terrible employee" (at Matt's company!) to becoming a successful self-employed educator and entrepreneur through his company, Wireable LLC.He also shares insights into his strategies for turning open-source projects into sustainable businesses and building a dedicated audience through educational content and documentation sites related to the tool's niche.Matt Stauffer Twitter - https://twitter.com/stauffermattCaleb Porzio Twitter - https://x.com/calebporzioTighten Website - https://tighten.com/Livewire: livewire.laravel.comAlpine.js: https://alpinejs.dev/Adam Wathan's Blog Post: https://adamwathan.me/the-book-launch-that-let-me-quit-my-job/-----Editing and transcription sponsored by Tighten.
In this episode of the Laravel podcast, Matt and Taylor explore a variety of topics, including ones suggested by listeners! Taylor shares insights from his recent trip to San Francisco, where he participated in an open-source discussion panel hosted by the venture capital firm, Accel. They also discuss the current state of PHP, how it is perceived by other programmers, and what the Laravel community can do to keep PHP relevant and attractive. Additionally, they dive into the challenges and benefits of delegation in business, offering tips on delegating tasks, managing email inboxes, and the importance of creating systems that can operate without constant oversight.Taylor Otwell's Twitter - @taylorotwellMatt Stauffer's Twitter - @stauffermattLaravel Twitter - @laravelphpLaravel Website - Laravel - The PHP Framework For Web ArtisansTighten Website -Tighten | Software Development for Web + Mobile | Laravel + Vue.jsPodcast Suggestions - https://suggest.gg/laravelpodcast/ideasAccel Twitter - https://twitter.com/AccelOnramp to Laravel - onramp.devShawn Blanc Twitter - https://x.com/shawnblanc?lang=enThe E-Myth Revisited Book - https://www.amazon.com/Myth-Revisited-Small-Businesses-About/dp/0887307280-----Editing and transcription sponsored by Tighten.
In our very first episode, Matt had the pleasure of speaking with Ian Landsman, affectionately known as the 'Godfather of Laravel,' where they discussed his long history with Laravel and his business journey. Ian shared insights into his primary venture, UserScape, and its flagship product, HelpSpot, a help desk application he started 20 years ago. They also talked about taking a bet on Taylor and Laravel early on, bootstrapped startups, and more!Matt Stauffer Twitter - https://twitter.com/stauffermattIan Landsman Twitter - https://twitter.com/ianlandsmanTighten Website - https://tighten.com/HelpSpot - https://www.helpspot.com/UserScape - https://userscape.com/LaraJobs - https://larajobs.com/The SaaS Playbook - https://saasplaybook.com/The Startups For the Rest of Us Podcast (Rob Walling) - https://www.startupsfortherestofus.com/Gail Goodman's Talk - https://businessofsoftware.org/talk/how-to-negotiate-the-long-slow-saas-ramp-of-death/-----Editing and transcription sponsored by Tighten.
Welcome back to another episode of the Laravel podcast! In this episode, we dive into the exciting release of Laravel 11 and discuss its impact since it has been out in the wild. Taylor also shares his insights on the release and other recent developments in the Laravel ecosystem, including the launch of Herd Pro. Additionally, we discuss the new hires at Laravel, including Andre Valentin, Chris Fadao, Mohammed Said, and Alyssa Mazzina and touch on the topic of open-source sustainability.Taylor Otwell's Twitter - https://twitter.com/taylorotwellMatt Stauffer's Twitter - https://twitter.com/stauffermattLaravel Twitter - https://twitter.com/laravelphpLaravel Website - https://laravel.com/Tighten Website - https://tighten.com/Laravel 11 - https://laravel.com/docs/11.x/releasesLaravel Careers - https://laravel.com/careersLaravel Reverb - https://laravel.com/docs/master/reverbLaravel Herd - https://herd.laravel.com/Laravel Herd for Windows - https://herd.laravel.com/windowsLaravel Valet - https://laravel.com/docs/11.x/valetChristoph Rumpel Forge Productivity Tweet: https://x.com/christophrumpel/status/1773738874264600608?s=20Andre Valentin Twitter - @theandreval Laravel Director of EngineeringChris Fidao Twitter - @fideloper Laravel Infrastructure EngineerMohammed Said Twitter - @themsaidAlyssa Mazzina Twitter - @alyssamazzinaLaragon - https://laragon.org/Django - https://www.djangoproject.com/Spatie - https://spatie.be/Laracon US - https://laracon.us/-----Editing and transcription sponsored by Tighten.
(Posted in the middle of Season Six, to take advantage of new features in our podcast hosting platform)
In this episode of the Laravel Podcast, we are diving into the highlights of Laracon EU including the unveiling of Laravel 11 and the introduction of Laravel Reverb. Taylor Otwell shares insights on the streamlined application structure and new features in Laravel 11. We also discuss the launch of Laravel Herd for Windows and Herd Pro, offering power user features for local development, and provide some exciting updates about the upcoming Laracon US.Taylor Otwell's Twitter - https://twitter.com/taylorotwellMatt Stauffer's Twitter - https://twitter.com/stauffermattLaravel Twitter - https://twitter.com/laravelphpLaravel Website - https://laravel.com/Tighten Website - https://tighten.com/Laracon EU Photo Gallery Tweet - https://x.com/LaraconEU/status/1755957896209113444?s=20Laravel Reverb - https://laravel.com/docs/master/reverbLaravel 11 - https://laravel.com/docs/master/releasesThiery Laverdure's Project - https://github.com/tlaverdure/laravel-echo-serverPusher - https://pusher.com/Ably - https://ably.com/Laravel Herd - https://herd.laravel.com/Adam Wathan Twitter - https://twitter.com/adamwathanJess Archer Twitter - https://twitter.com/jessarchercodesLuke Twitter Downing Twitter - https://twitter.com/lukedowning19Daniel Coulbourne Twitter - https://twitter.com/DCoulbourneJoe Dixon Twitter - https://twitter.com/_joedixonPhilo Hermans Twitter - https://twitter.com/Philo01?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5EauthorLaracon US - https://laracon.us/Laracon CFP Talk Submission Form - https://docs.google.com/forms/d/e/1FAIpQLSdlyTDvqeKNB3r-wVNmDBlE23oHKEL4m8lzL5nci0YPH_5WYA/viewform-----Editing and transcription sponsored by Tighten.
In this episode of the Laravel Podcast, we talk about the recent announcement of hiring a new head of engineering at Laravel and the impact it will have on the future of Laravel. We also dive into the upcoming conferences and events, including Laracon EU, Laracon US, and Laracon India. Additionally, we talk about Typesense, a potential alternative to Meilisearch and Algolia for self-hosted search functionality.Taylor Otwell's Twitter - https://twitter.com/taylorotwellMatt Stauffer's Twitter - https://twitter.com/stauffermattLaravel Twitter - https://twitter.com/laravelphpLaravel Website - https://laravel.com/Tighten.co - https://tighten.com/VP/Head of Engineering at Laravel - https://frequent-pick-a8d.notion.site/VP-Head-of-Engineering-at-Laravel-149b566a670841f7a74b3e904e261693Laracon EU - https://laracon.eu/Laracon US - https://laracon.us/Laravel Herd - https://herd.laravel.com/Laravel 11 - https://laravel.com/docs/master/releasesLaravel Live Denmark -https://laravellive.dk/Laravel Live UK - https://laravellive.uk/Laracon India - https://laracon.in/Caleb Porzio Twitter - https://twitter.com/calebporzioLivewire: https://laravel-livewire.com/ThePrimeagen Twitter - https://twitter.com/ThePrimeagenThe Factory - https://www.thefactoryindeepellum.com/Eric Barnes Twitter - https://twitter.com/ericlbarnesJoe Dixon Twitter - https://twitter.com/_joedixonJames Brooks - https://twitter.com/jbrooksukFreek VAn der Herten Twitter - https://twitter.com/freekmurze?lang=enPeter Suhm Twitter - https://twitter.com/petersuhmMichele Hansen Twitter - https://twitter.com/mjwhansenLaracon AU Twitter - https://twitter.com/LaraconAULaravel Scout - https://laravel.com/docs/10.x/scoutTypesense - https://typesense.org/Algolia -https://algolia.com/Meilisearch - https://www.meilisearch.com/Elasticsearch - https://www.elastic.co/elasticsearchLaravel Sail - https://laravel.com/docs/10.x/sailLaravel Vapor - https://vapor.laravel.com/Early Vapor Tweet - https://x.com/taylorotwell/status/1748782542663131442?s=20Tailwind CSS - https://tailwindcss.com/-----Editing and transcription sponsored by Tighten.
In this episode of the Laravel Podcast we are packing it in! We're diving into the freshest drops, like FrankenPHP, Cashier Quickstarts, and the buzz about the upcoming Laravel Worldwide Meetup. We'll also weigh Cashier against Spark, discuss boot service providers for all your apps, pit Pest versus PHPUnit for testing, and get into the details of how we manage our teams.Taylor Otwell's Twitter - https://twitter.com/taylorotwellMatt Stauffer's Twitter - https://twitter.com/stauffermattLaravel Twitter - https://twitter.com/laravelphpLaravel Website - https://laravel.com/Tighten.co - https://tighten.com/Taylor and Ramus Tweet - https://x.com/taylorotwell/status/1732607829239116057?s=20Chris Fidao Frankenphp video - https://youtu.be/q6FQaaFZVy4?si=MU1AAi7-UNgLH-NiLaravel Worldwide Meetup - meetup.laravel.comColin DeCarlo Twitter - https://twitter.com/colindecarloVehikl Twitter - https://twitter.com/vehiklCashier Quick Start - https://laravel.com/docs/10.x/billing#quickstartDries Vints Twitter - https://twitter.com/driesvintsIan Landsman Twitter - https://twitter.com/ianlandsmanIan Boot Service Tweet: https://x.com/ianlandsman/status/1744903740329443588?s=20Eric Barnes Twitter - https://twitter.com/ericlbarnesTaylor Test Runner Poll Tweet - https://x.com/taylorotwell/status/1744729110163988949?s=20Lambo - https://github.com/tighten/lamboMatt's video Pest as a Test Runner - https://www.youtube.com/watch?v=W3tfEtbMTEIRemote - https://basecamp.com/books/remoteLastlings - https://www.lastlings.com/Harry Styles - https://www.hstyles.co.uk/Don't Worry Darling - https://www.imdb.com/title/tt10731256/Spider Man soundtracks - https://music.apple.com/us/album/spider-man-into-the-spider-verse-soundtrack-from/1453876765 & https://music.apple.com/us/album/metro-boomin-presents-spider-man-across-the-spider/1690685331Jamila Woods - https://www.jamila-woods.com/-----Editing and transcription sponsored by Tighten.
In this episode of the Laravel Podcast, we revisit a Laravel Snippet from 2019 in which Taylor talks about how he comes up with ideas for products.We also cover how to build your audience, how to balance perfection and just shipping, and how to finish what you've started.Whether you identify as a programmer or harbor aspirations of entrepreneurship, this episode promises to offer valuable insights and inspiration for the successful launch of your software products. Taylor Otwell's Twitter - https://twitter.com/taylorotwell Matt Stauffer's Twitter - https://twitter.com/stauffermatt Laravel Twitter - https://twitter.com/laravelphp Laravel Website - https://laravel.com/ Tighten Website - https://tighten.com/ Laravel Snippet: https://blog.laravel.com/laravel-snippet-15 Forge - https://forge.laravel.com/ Pennant: https://laravel.com/docs/10.x/pennant Tailwind: https://tailwindcss.com/ Vapor - https://vapor.laravel.com/ Envoyer: https://envoyer.io/ Nova: https://nova.laravel.com/ Spark: https://spark.laravel.com/ Digital Ocean: https://www.digitalocean.com/ Pusher: https://pusher.com/ How to Win Friends and Influence People Book: Amazon link Adam Wathan Twitter: https://twitter.com/adamwathan Steve Shoger Twitter: https://twitter.com/steveschoger Aaron Francis Twitter: https://twitter.com/aarondfrancis Nova Packages: https://novapackages.com/ Built for Pulse: https://builtforpulse.com/ Justin Jackson Twitter: https://twitter.com/mijustin -----Editing and transcription sponsored by Tighten.
In this episode, we're unwrapping the highlights from Laracon AU, with a special focus on Laravel Pulse leading our discussion. Taylor takes the reins to guide us through the origins and functionality of Laravel Pulse, a health monitoring tool for your Laravel applications.We then shift our discussion to Laravel first party packages. Taylor openly shares insights into his decision-making process—revealing how he selects packages to join the Laravel family and when it's time to bid them farewell.Our conversation doesn't end there though. We also look at the future of Laravel and examine the strategies used for continually injecting innovation and fresh ideas into the Laravel ecosystem. Taylor Otwell's Twitter - https://twitter.com/taylorotwell Matt Stauffer's Twitter - https://twitter.com/stauffermatt Laravel Twitter - https://twitter.com/laravelphp Laravel Website - https://laravel.com/ Tighten.co - https://tighten.com/ Laravel Pulse: https://pulse.laravel.com/ Laracon AU - https://laracon.au/ Bugsnag: https://www.bugsnag.com/ Cashier: https://laravel.com/docs/10.x/billing Docker: https://www.docker.com Forge - https://forge.laravel.com/ Herd: https://herd.laravel.com/ Horizon: https://laravel.com/docs/10.x/horizon Inertia - https://inertiajs.com/ Livewire: https://laravel-livewire.com/ Lumen: https://lumen.laravel.com/docs/10.x Mix: https://laravel-mix.com/ Next.js: https://nextjs.org/ Passport: https://laravel.com/docs/10.x/passport Pennant: https://laravel.com/docs/10.x/pennant Sentry: https://sentry.io/for/php/ Tailwind: https://tailwindcss.com/ Telescope: https://laravel.com/docs/10.x/telescope Tony Messias Twitter: https://twitter.com/tonysmdev Valet: https://laravel.com/docs/10.x/valet Vapor - https://vapor.laravel.com/ -----Editing and transcription sponsored by Tighten.
Join us in this episode as we discuss the new Livewire + Volt Functional API stack for Breeze and its capabilities. We also demystify essential testing best practices to keep your code scandal-free and away from front-page mishaps. Uncover the art of crafting meaningful tests, evaluate the pros and cons of Pest vs. PHPUnit, venture into the realm of traits and inheritance, and determine the optimal number of tests for your project. Tune in for a jam-packed episode brimming with insights and strategies to elevate your testing game.• Taylor Otwell's Twitter - https://twitter.com/taylorotwell• Matt Stauffer's Twitter - https://twitter.com/stauffermatt• Laravel Twitter - https://twitter.com/laravelphp• Laravel Website - https://laravel.com/• Livewire Volt - https://livewire.laravel.com/docs/volt• Laravel Folio - https://laravel.com/docs/10.x/folio• PEST - https://pestphp.com/• Podcast: Pest, With Nuno Maduro: https://laravelpodcast.com/episodes/pest-with-nuno-maduro• PHPUnit - https://phpunit.de/• Inertia - https://inertiajs.com/• Tighten.co - https://tighten.com/• Docker - https://www.docker.com/company/• Vala's Pumpkin Patch - https://www.valaspumpkinpatch.com/----- Editing and transcription sponsored by Tighten.
Jake and Michael are joined by Matt Stauffer to discuss his journey and taking over more of an operational role within the consultancy he co-founded, Tighten.This episode is sponsored by Workvivo.Show links Matt Stauffer Tighten Introducing Laravel Valet Laravel Valet 4 beta announcement Valet multi-OS support branch
5 minutes with DTCC's Matt Stauffer and Behar Cami .In just 5 minutes, we'll explore the world of post-trade financial services by way of new ideas, insight snippets, emerging trends, and thought-provoking questions. In this episode, tune in to hear Matt Stauffer, DTCC Managing Director, Head of Institutional Trade Processing, and Behar Cami, DTCC Managing Director, Head of IT Solutions Delivery, provide insight into the critical intersection of technology and DTCC's Institutional Trade Processing (ITP) business.Episode Details:Head to our podcast page to learn more and subscribe today via email or on all major podcast streaming platforms. Copyright 2022 - DTCC. All rights reserved. DTCC, DTCC (Stylized), TAKE 5, and the Interlocker Graphic are registered and unregistered trademarks of The Depository Trust & Clearing Corporation.The information and views contained herein are provided for informational purposes only and should not be relied on for any other reason. This material is not intended to be relied upon as a forecast, research, legal or investment advice and is not a recommendation, offer or solicitation to buy or sell any securities or to adopt an investment strategy. The information and views expressed are current as at the date of this document, but subject to change and do not necessarily reflect the views of DTCC and no assurances are made as to their accuracy. Any reliance upon information in this material is at the sole risk of the recipient. Where the information contained in this material is from third party sources, this information is from sources believed to be reliable, but DTCC has not independently verified any of the information contained herein and does not assume any liability for it nor any obligation to modify or update it. This Service is governed by applicable Rules, Procedures, and Services Guide for each DTCC subsidiary, which contain the full terms, conditions, and limitations applicable to this Service.
Jake and Michael discuss Australians pronouncing words, Matt Stauffer's glorious beard, with a treacherous detour into recent political discussion, before correcting course to migrating Bootstrap to Tailwind CSS.This episode is sponsored by Workvivo and Makeable.dk.Show links How Australians pronounce words James Smith Matt Stauffer's glorious beard Windy Laravel Jetstream's Blade components
Dan Sheetz & Matt Stauffer (Managing Director & Technical Director, respectively) join us this week for the last episode of season 3 to talk all about the Tighten Manifesto - how it was created, what it aims to achieve, how to live up to it, and more. Recorded live at Tighten's 2022 Onsite in Gatlinburg, TN.
The Laravel Podcast brings you Laravel and PHP development news and discussion. Season 5 consists of Matt Stauffer interviewing the creators of the most popular packages in the Laravel ecosystem.
Michele's Website - https://mjwhansen.com/Michele's Twitter - https://twitter.com/mjwhansenGeocodio - https://www.geocod.io/Software Social, Podcast - https://softwaresocial.dev/Deploy Empathy, book - https://deployempathy.com/Brene Brown - https://brenebrown.com/Empathy Gives Us Superpowers, Matt Stauffer, video - https://www.youtube.com/watch?v=fMFjO2szDnkHow To Talk So Kids Will Listen...And Listen So Kids Will Talk, book - https://www.amazon.com/How-Talk-Kids-Will-Listen/dp/0743525086Book Preview: Deploy Empathy by Michele Hansen with Justin Jackson, video - https://www.youtube.com/watch?v=QtBrIcO5aUoNever Split The Difference by Chris Voss, book - https://www.amazon.com/dp/B018FHCPDO/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1Four Types of Trauma Response - https://lifestance.com/blog/four-types-trauma-response/
Steph talks about binging a few Things Worth Learning podcast episodes and particularly enjoyed an episode that featured one of thoughtbot's design directors, Sameera Kapila. Sam shared her expertise about management and inclusion, and Steph shares her favorite parts. Chris shares the story of a surprising error and the resulting journey through database transactions and Sidekiq that eventually resolved the issue. He also shares some follow up on the broken build and the merging process changes they introduced (spoiler, the process changes have been rolled back). Leading Inclusively, with Sameera Kapila - Things Worth Learning Podcast (https://www.youtube.com/watch?v=eiV6_3pZFc0) How to Skim a Pull Request (https://thoughtbot.com/blog/a-smelly-list) Isolator (https://github.com/palkan/isolator) aftercommiteverywhere (https://github.com/Envek/after_commit_everywhere) timefora_boolean (https://github.com/calebhearth/time_for_a_boolean) Transcript: STEPH: Oh man, I'm about to stop eating my pop-tart. I'll put it away. It's within distance. I'm going to eat it. CHRIS: Your high-fat content unfrosted pop-tart. STEPH: You know, surprise Sunday twist: it has icing on it. CHRIS: Steph, who even are you? STEPH: [laughs] CHRIS: There are a few canonical anchor facts that one knows about other people, and when one of those... STEPH: I like to keep everyone, including myself, on their toes. CHRIS: Or you've just secretly accepted that the icing adds another textural flavor adventure component. It's just better with icing. STEPH: All right, all right, all right. There's a complicated answer to this. And the complicated [chuckles] answer to this is that the more organic ingredients that I recognize when reading about pop-tarts are by a particular company, and they all have frosting on them. And the more generic pop-tarts that don't have frosting on them, I don't know how to pronounce a lot of those ingredients. So I'm like, no, but okay, I still eat them. But I prefer the ingredients I can pronounce. So I either go with the ingredients I can't pronounce or have a little bit of frosting on my pop-tart. And I'm going with the non-cancer route for today. CHRIS: For today, in this moment, and accepting the frosting. Okay, all right. Well, that is complicated. [laughs] It's tricky out there. Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Chris Toomey. STEPH: And I'm Steph Viccari. CHRIS: And together we're here to share a bit of what we've learned along the way. So, Steph, what's new in your world? STEPH: Hey, Chris. So the weather, I'm going to talk about the weather for a little bit. [chuckles] It's been almost non-stop rain for the past several days, which is fine. I'm sure it's great for plant life. But it's really hard on my dog Utah because then we can't go outside for our normal walks and playtime. Although he is my four-legged water baby because he absolutely loves water, and puddles, and playing in the rain. So he's very fine with going outside and playing for a long time. But then I have to essentially give him a full-on bath before I want to bring him back in. So not wanting to have to give him a bath each time, in the spirit of improvising, we started finding more indoor games to play. And I've started teaching him to play hide and seek. And he's not great at it mainly because he will only stay until I'm out of eyesight, and then he will come and find me. And so I have to be really, really fast at finding a hiding spot to like dash around a corner or hide behind the door. But I think he enjoys it because he will find me and then he seems very excited. And we go back, and we play again. And so I just have to work on teaching him to wait a bit longer so I can find better hiding spots. CHRIS: When you said that, at first, I was like, how did you teach him to hide? But I realize he's only playing the seek part of the game, and you're only playing the hide part of the game. STEPH: [laughs] CHRIS: I'm just so used to you exchange roles back and forth. First, you hide, then you seek, and then you switch it up. That would be a lot to get your dog to be like, now I'm going to secretly hide. STEPH: [laughs] I'd be very impressed. Yes, we have very distinct roles in this game. I am the one that always counts and hides. But he's a very good seeker. So that's been fun. We just got to work on getting a little better at it. But on a more tech-related note, one of the design directors at thoughtbot, Sameera Kapila, who also goes by Sam, was a guest on the podcast Things Worth Learning, which is hosted by Matt Stauffer. And Matt is also the host of The Five-Minute Geek Show and The Laravel Podcast. And in the show Things Worth Learning, Matt meets with individuals that are excited to share something that they're deeply passionate about; maybe it's tech, maybe it's not. And I've binged a couple of those episodes. And I really like how you can choose between the podcast format or the YouTube format. So then you can really watch the conversation unfold, which I know you and I a couple of times have thought it would be fun if people could see us because there are so many facial emotions and gestures that go along with conversations. So it was really delightful. And speaking of delightful, Sam shared her expertise about management and inclusion. And I definitely recommend listening to the episode because I can't share everything that Sam shared. But a couple of the topics that Sam mentioned that I really enjoyed and would love to chat about, so the first one is about helping someone, in this case, someone that you manage that comes to you with a concern. So there's often a presumption that just because someone comes to you with a concern or an issue that they've experienced at work, that they're the ones that will also want to work to address that concern, and that's often not true. It can be true; maybe that person wants to be involved. But they're often coming to you in the leadership or management role to say, "Hey, I've had this issue," and they really want help with that instead of walking away with homework for it. Because then that trains people to essentially be in this mindset of well, if I bring up this concern, then I'm going to be the one that has to address it, even if I'm the one that's most negatively impacted by this. And addressing this concern could be actively harmful to me. And she shared a really great real-world example from her own experience where her and another co-worker had noticed a concern about the hiring process. And her and that co-worker got together, and they talked about the concerns. They even rehearsed for the meeting because they were trained by the tech industry to say, "Hey, if you bring up a concern, you're going to be responsible for addressing and then resolving that concern." And so they had that meeting with the person in leadership. And they were pretty nervous about how it was going to go. And that person in leadership said to them, "Thank you both so much for sharing that. That must have been such a burden. And this is my responsibility to fix. And here are what my next steps are." And that was amazing because it allowed Sam and the other person to go back to client work. And they also received follow-up conversations about how that issue was being addressed. So there was even that feedback loop as to how things were going to change. And I have a personal example that...I really resonated with the example that Sam provided because I remember there are different teams that I've been a part of, where often I was one of the few women engineers on the team. And so we often have conversations about how do we get more women engineers into the company? And they're wonderful conversations. But there's a part of me that always felt resentful about, like, why am I here? Why am I the one fixing this? I understand I have some more insight and expertise, and experience in this area. But I was also frustrated by the fact that I was the one that was in that meeting often with other women, and it felt like our responsibility to fix this. And I used to feel bad about feeling resentful towards that. Because I was like, shouldn't I want to help other people? And I do. But Sam's example really helped remind me and clarify that yes, just because there's a concern doesn't necessarily mean you should be the one to address it. And it really takes everybody involved, or it takes leadership to step up and address that concern. CHRIS: Oh, that's really interesting the way Sam is framing that and describing the situation of not having any problem that you bring in be now your work to solve. Like, oh, I found the issue, and now we've got to go do this. But the idea that you can bring something to light and then be able to walk away from it. And the particular thing that you were saying that if your interaction is always that when you reference something when you bring in a concern that then your manager works with you to figure out how you can solve it, then you get this mental block of like, well, do I even want to say anything? Because I don't want to try and deal with big, amorphous unclear issues. So maybe I just won't even say anything. And so this as a way to make sure that there's room for all of the conversation is a really interesting framing that I hadn't really thought about, frankly, but it's very interesting. I haven't seen this interview either. So I'm definitely excited to give this a look because Sam is wonderful. And the topic that you're describing here sounds fantastic as well. STEPH: Yeah. There was an important moment for me where...one of my managers is Matt Sumner, who's been on the show. And when Matt was my manager, at one point, we were having a one on one, and we would often go for walks for our one on one. And I mentioned something about "I have this concern, or I have this problem, but I don't really know how to fix it. So I'm not sure I'm ready to talk about it." And Matt, in his delightful way, was like, "We can still talk about it. You don't have to have an answer or a solution." I'm like, "Yeah, but I feel like I should be able to fix it. Like, if you have a concern, or if you have something that you want to gripe about, then you should come to the table with solutions for it." And Matt was like, "No, you don't need to do that at all. We can totally gripe about stuff or talk about concerns and then either figure out the solutions together or go to other people for ideas." And that was really important to me because, like you'd mentioned, otherwise, it felt like this mental block where then it feels like you can't air out some of the things that you're worried about or have concerns about because then you think you're the only one responsible. And you may not be able to come up with the best solution. You may need other people to then help you strategize and come up with ideas. And I just love, love, love that part of Sam's discussion. And oh, there was one other part about the conversation. Well, there are lots of parts that were amazing. But another one in particular that blew my mind is about Comic Sans, the font, the font that everyone loves to hate. [chuckles] And I learned that it's one of the most legible fonts for kids. And it's one of the more accessible fonts for people with dyslexia. And it's actually recommended...I think there are still more academic studies that need to be done to really classify fonts that are best for people that have dyslexia. But Comic Sans is recommended by The British Dyslexia Association and the Dyslexia Association of Ireland. And there are some other really great posts that talk about the benefits of using a font like Comic Sans because the typeface has long ascenders and descenders and generous letter spacing and asymmetrical lowercase b and d to then help distinguish those letters. And I just thought that was so cool. This font that everybody wants to rip apart because it seems whimsical, unprofessional gets overused. There are lots of reasons, I suppose. [laughs] But there's a really big benefit to it, and it can help others. And I just found that very whimsical in itself. CHRIS: I love the idea that there are multiple levels of knowing about Comic Sans. First, you're just like, I don't even know the name, but it's that comic book-looking font. And then obviously, the next step is to be like Comic Sans? How could you ever use that? It's an atrocity. And then it's like, but actually, Comic Sans has some things going for it. And it is a really interesting consideration and something that you wouldn't necessarily think of. But then once you learn it, you're like, okay. Man, I wonder how many other things in the world have this interesting shape to them? Hmm. STEPH: Do you know the history behind Comic Sans? CHRIS: I do not. STEPH: I read about it fairly recently, but I'm probably going to botch some of the details. But I believe it was designed or created by Vincent Connare. And it was created for Microsoft. And Vincent was working on a project where I think there was a dog that was essentially going to have these bubbles that would then show you different parts of the application and walk you through the different features. And the dog had a very comic book feel to the character. And so then Vincent designed a font to go along with that comic book character, this dog and came up with Comic Sans. I don't think the dog actually launched with that particular font. But since the font was still developed, it was released as part of the available fonts. And there we go, there is the birth of Comic Sans. And then it just received so much love and ire all throughout history. [chuckles] CHRIS: There's something that you said there that I want to loop back on when you were talking about chatting with Matt Sumner and saying, "Here's this thing, but I don't know how to solve it. So I don't even want to bring it up." I really liked the framing that you gave and the fact that Matt was like, "No, no, we can still talk about it. We can at least explore this thing, have a conversation." I think that's really wonderful. There's a very similar thing that I experience a lot when doing code review, particularly when I'm in more of a leadership role within a team, which is I often want to highlight something that feels a little bit off to me in the code, but I may not have a specific solution. Like, I may see a variable name, or I may see a controller action that feels like it's the wrong shape or something. And I'll often name it but explicitly say, "I actually don't have a better idea here. So feel free to continue on with this, but I want to name it. So in case that sparks something in you, if you were also feeling some incongruousness, maybe it's worth you spending another minute to think about it, but I want to make sure my comment isn't blocking or otherwise making you feel uncomfortable." If I just come to you and I'm like, "This feels wrong," and that's all I say, that to me is unacceptable code review. Because now I want all of my code review feedback to be very actionable, it's either here's the thing that I feel strongly I think we should definitely change this. If you disagree, let's have a conversation. But yeah, this one definitely needs to change. Here's the thing that, like, I don't know, maybe we could break this into two lines and split it up. But if you don't like that, that's fine. Do whatever. And so then it's I've given the person my thoughts but given them clarity and a free rein to do whatever they want with that information. And then there are ones where I'm like, I don't even know what I think we should do here, but I think something. But if you don't have any ideas...like, I don't have any ideas specifically. If you don't have any ideas, it's fine. We'll continue on with this and maybe revisit it down the road. But I want to make sure each of those different tiers is actionable for the other person, and I'm not just giving them homework or something to be sad about because that would be bad code review. STEPH: I'm just imagining a PR comment that says, "I don't know what we should do here. But I don't think this is it," [laughs] and that just creating sadness. That's so interesting to me because I have flip-flopped with that opinion in regards to there are times that I very much resonate and do what you just said where I will point out to someone where I'm like, "I'm not sure why, but I just have concerns about this. And I don't know if you also ran into anything that was weird about this and would like to talk about it. I don't have any really great ideas, so I think this is good for now. And we should keep moving forward, so we're not blocked on it," but just wanted to, as you mentioned, highlight it in case it sparks something for the other person or for someone else that's reviewing the code. And then there are other times where I'll look at something, and I'm like, "Yeah, it's not great. There's something that feels brittle or potentially maybe hard to maintain or things like that. But I don't have a better idea." And I don't comment on it because I'm like, I don't want to distract that person or block them. And I do think it's good enough, and I don't have anything to add to the conversation, so I just leave it out. So it's interesting to me where is that line of when I feel like it's important enough to comment to then potentially spark some conversation versus just letting it go so then I don't add any distraction to their work? CHRIS: I think it's when the spidey-sense gets past 47%. It's a very specific number. I do the same thing where there's something, and I'm like, you know what? I can't even clearly express what about this makes me feel something off, and so I won't even comment on it, and I agree. And then there are things that trip past some magical line in the sand. And I'm like, you know what? I think I'm going to say something here, but I don't even have a recommendation. And then there's a whole spectrum of the nature of code review and, again, 47% being the specific number. STEPH: There's actually a thoughtbot blog post that correlates nicely to that concept of spidey sense. It's written by Mike Burns, and it's titled How to Skim a Pull Request. But essentially, grabbing from one of the lines here is where Mike presents an unexplained, incomplete, and arbitrarily grouped list of keywords that will cause us thoughtboters to read your code with more care and suspicion. [laughs] That feels perfectly aligned with that idea of spidey sense, spidey-sense 101. I'll be sure to include a link in the show notes. Or, you know, 40%. CHRIS: I think it was 47%. It's a very precise number. [chuckles] STEPH: Very precise nonsensical number. Got it. [laughs] CHRIS: If I'm making up fake statistics, I'm not going to have them round to an even 10. [laughter] STEPH: Makes it seem more legit somehow. CHRIS: Exactly. STEPH: But that's really the novelties that I wanted to chat about. Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. STEPH: What's new in your world? CHRIS: I have some follow up on a recent topic that we talked about. So we had a kerfuffle which I described where we had a branch that got merged and the rebase some stuff got out of hand. And so we introduced some process, the protected branch configuration within GitHub that required the branches to be up-to-date before they can be merged and CI to be passing. And everybody was happy. It was like, this is great. Turns out it was never turned on. That's actually the day I was like, man; this is really straightforward. There's been no annoyance here. And then I got to the point where it was like; this seems weird because we just merged a lot of things in rapid succession. I went and checked, and it turns out what I thought was the name of the branch protection rule in GitHub's UI is, in fact, a regular expression pattern. It might not be a full regular expression but like a wildcard pattern for the branch name to match to, and so it's specific. I created this rule, and in small, gray text underneath, it said, "This applies to zero branches." I missed that the first time but then the second time going back, I was like, oh, I actually wanted it to apply to more than zero branches. So I went back in and changed that. It's a great example of very subtle UI that just slipped past me. STEPH: I was going to say in your defense, the very subtle gray font to say, "This applies to zero," feels tricky. CHRIS: That...also, going through the work of creating this thing and if that results in zero branches that would match, maybe that's the thing to emphasize on creation. I would love that. Because in my case, I was trying very specifically to target an existing branch. There is the ability to say, "Oh, any bugfix-* named branch," if you're using branch naming strategies like that, you can use this for that sort of thing. So it may be that currently, there are no branches with that name. But in my case, I was just like, please, main, anytime anything is happening on main, that is what we want to do. I just needed to put the word main there. But anyway, once I actually turned it on, insufferable, absolutely not, cannot survive in this world. We have a relatively small team. There are three of us, and not everyone is even full-time, and my time is pulled in a lot of different directions. So I'm actually not pushing as much code as I might otherwise. Even with that, nope, absolutely not. Our CI is like; I don't know, five-ish minutes per run. Turns out, especially Monday mornings, we have a volley of things that will have been reviewed and trickled in through Friday afternoon. And then there's a bunch of work we want to land Monday morning. And then, just at any point, it turns out, yes, this was untenable. So we have turned it off. I would like to revisit this down the road and introduce the MergeQueue functionality, so the idea of being able to say, "Yeah, you just name when you want something to go in, and then the system will manage the annoying finicky work there." But for now, I had to give up on my dream of everything running on CI, on a feature branch, before it gets merged. STEPH: Ooph, that phrase, "I had to give up on my dream," that breaks my heart for you. [laughs] CHRIS: I may be going a little bit fanciful with my language but, like, a little. STEPH: [laughs] CHRIS: I liked this thing. I want to exist in that world. But it is not feasible given the current state of the world. And that will only get worse over time, is my expectation. So I get to revisit this when I have the time to more thoroughly figure a thing out. But for now, I don't know, merge whatever; it will be fun. STEPH: There's a small part of me that feels a little reassured that it was a terrible time, although I hate that it was a terrible time. But I have felt that pain on so many other projects where I am constantly waiting, and I'm constantly checking to be like, can I merge? Can I merge? Can I merge? And then I can merge, but then someone beats me to it. And I'm like, oh, then I got to restart. And I got to wait, and I'm constantly checking. So that feels like it helps validate my experience. [chuckles] I am excited for that MergeQueue. I would be super excited to try that out and hear about how it goes just because that seems more like the dream where you can just say, hey, I want this PR to go whenever it can go. Just take care of it. I want it to be rebased, whatever the flow is, and have it be merged, so I don't ever have to check on it again. CHRIS: But once we configured this, there was a new thing that appeared in the GitHub UI, which was auto-merge. And so that was a button where I could say like, "Hey, merge this whenever CI passes," which was a nice upgrade, but it didn't have the additional logic of and rebase as necessary. Or the more subtle logic of like, you don't actually want to rebase where you have five different branches that are all trying to merge, and they keep rebasing. You want to have the idea of a queue, and so you get in line. And you rebase when it's your turn, and then you run the CI. And you try and be as smart as possible about that. If anyone at GitHub is listening, I would love if you all threw this into your platform, and then you could ping Slack if anything went wrong. But otherwise, there are, like I said, existing tools. At some point, I will probably, I don't know, over a long weekend or something like that, sit down with a large cup of coffee and explore these. But today is not that day. STEPH: I'm excited to hear about that day. CHRIS: So that is a tale of woe and sadness. But luckily, I get to balance it out with a tale of happiness and good outcomes. So that's good. The happiness and good outcome story does start with trouble, as they always do. So we had a bug that occurred in the application where something was supposed to have happened. And then there was an email that needed to go out to tell the user that this thing had happened. And the bug popped up within AppSignal and said something was nil that shouldn't have been nil. Particularly, we're using a gem called Time For a Boolean, which is by Caleb Hearth. And he's a former thoughtboter and maintains this wonderful gem that instead of having a Boolean for like, is this thing approved, or is it paid? Or is it processed? You use a timestamp. And then this gem gives you nice Boolean-like methods on top of that timestamp. Because it turns out, very often just having the Boolean of like, this was paid, it turns out you really want to know when it was paid. That would be a really useful piece of information. And so, while you're still in Postgres land, it's nice to be able to reach for this and have the affordances of the Boolean-like interface but also have the timestamp where available. So anyway, the email was trying to process but that timestamp...let's pretend that it was paid as the one that matters here so paid at was nil, which was very concerning. Because this was the email that's like, hey, that thing was processed. Or let's say it was processed, actually, because that's closer to what it was. Hey, this thing was processed, and here's an email notification to tell you that. But the process timestamp was nil. I was like, oh no. Oh no. And so when I saw this pop up, I was like, this is very bad. Everything is very bad. Oh goodness. Turns out what had happened was...because I very quickly chased after this, looked in the background job queue, looked in Sidekiq's UI, and the job was gone. So it had been processed. I was like, wait a minute, how? How did this fix itself? Like, that's not the kind of bug that resolves itself, except, in this case, it was. This was an interaction that I'd run into many times before. Sidekiq was immediately processing the job. But the job was being enqueued from within the context of a database transaction. And the database transaction had not been committed yet. But Sidekiq was already off to the races trying to process. So the record that was being worked on, the database record, had local changes within the context of that transaction, but that hadn't been committed. Sidekiq then reads that record from the database, but it's now out of sync because that tiny bit of Sidekiq is apparently very fast off to the races immediately. And so there's just this tiny little bit of time that can occur. And this is also a fun one where this isn't going to happen every time. It's only going to happen sometimes. Like, if the queue had a couple of other things in it, Sidekiq probably would have not gotten to this until the database transaction had fully closed. So the failure mode here is super annoying. But the solution is pretty easy. You just have to make sure that you enqueue outside of the database transaction. But I'm going to be honest, that's difficult to always do right. STEPH: That's a gnarly bug or something to investigate that I don't think I have run into before. Could you talk a little bit more about enqueueing the job outside the database transaction? CHRIS: Sure. And I think I've talked about this on a previous episode a while back because I have run into this one a few times. But I think it is sufficiently rare; like, you need almost a perfect storm because the database transaction is going to close very quickly. Sidekiq needs to be all that much more speedy in picking up the job in order for this to happen. But basically, the idea is within some processing logic that we have in our system; we find a record, we do some work. And then we need to update that record to assign this timestamp or whatever it is. And then we also want to inform the user, so we're going to enqueue a job to send the email notification. But for all of the database work, we are wrapping it in a transaction because we want it to either succeed or fail atomically. So there are three different records that we need to update. We want all of them to be updated or none of them to be updated. So, therefore, we wrap it in a transaction. And the way we had written, this was to also enqueue the job from within the transaction. That wasn't something we were actively intentionally doing because those are different systems. It doesn't really mean anything. But we were still within the block of ApplicationRecord.transaction do. We're now inside of that block. We're doing all of the record updates. And then the last piece of work that we want to think about is enqueueing the job to send the email. The problem is if we're still within that database transaction if it's yet to be committed, then when Sidekiq picks up that job to run it, it will see the prior state of the world. And it's only if the Sidekiq job waits a little bit that then the database transaction will have been committed. The record is now updated and available to be read by Sidekiq in the correct updated state. And so there's this tiny little bit of inconsistency that can happen. It's basically because Sidekiq is going out to Redis, which is a distinct system. It doesn't have any knowledge of the database transaction at play. That's why I sometimes consider using a Postgres-backed background job system because then actually the job can be as part of the database transaction. STEPH: Cool. That's helpful. That makes a lot of sense the way you explained the whole you're actually enqueueing the job from inside that transaction. I'm curious, that prompts another question. In the case where you mentioned you're using a transaction because you want to make sure that if something fails to update so, everything gets updated together, in the event that something does fail to update because you were previously enqueueing that job from the transaction, does that mean that the update could have failed but that email would still have gone out? CHRIS: That does not. And the reason for that is because we're within dry-monad world. And so dry-monad will implicitly capture the ActiveRecord rollback, which I think is an exception that gets raised or somehow...But basically, if that database transaction fails for any reason and ends up getting rolled back, then dry-monads will not continue processing through the rest of the sequential operation. And so, therefore, even if we move the enqueuing of the email outside of the database transaction, the sequential nature of that processing and the dry-monad stuff that we have in play will handle that. And I think that would more generally be true because I think Rails raises an exception on rollback. Not certain there. But I know in our case, we're fine on that. And we have actually explicitly checked7 for that sort of thing. STEPH: So I meant a slightly different question because that makes sense to me everything that you just said where if it's outside of the transaction, then that sequential order won't fire because of that ActiveRecord migration error. But when you have the enqueuing inside of the transaction because then that's going to be inside of the sequential order, maybe before the rollback error gets raised. Does that make sense? CHRIS: Yes. I think what you're asking is basically like, do we make sure to not send the job if the rest of the stuff didn't succeed? STEPH: I'm just wondering from a transaction perspective, actually. If you have a transaction wrapped block and then you have in there, like, update this record, send email, end block, let's say update...well, I guess it's going raise because you've got probably like an update bank. Okay, so then yeah, you won't get to the next line. Got it. Got it. Got it. I just had to walk myself through that because I forgot that you probably...I have to visualize [laughs] as to what that code probably looks like. All right, that answered my question. CHRIS: Okay. So back up to the top level then, this is the problem that we have. And looking through the codebase, we actually have it in a bunch of different places. So the solution in any one of those cases is to just take the line of code where we're saying enqueue UserMailer.deliver_later take that line of code, move it outside of the database transaction, and make sure it only happens if the database transaction succeeds. That's very easy to do in one case. But my concern was this is a very easy failure mode to end up in. And this is a very easy incorrect version of the code to write. As far as I can tell, we never want to write the code where this is happening inside of the transaction because it has this failure mode. But how do we enforce that? That was the thing that came to mind. So I immediately did a quick look of like, is there a RuboCop thing I can do here or something? And I actually found something even more specific, which was so exciting to find. It's a gem called Isolator. And its job is to detect non-atomic interactions within database transactions. And so it's fantastic. I was like, wait, really? Is this going to do the thing? And so I just installed the gem, configured it where I wanted, and then ran the test suite. And it showed me every place throughout the app right now where we were doing this pattern of behavior like enqueueing work from within a database transaction, which was great. STEPH: Ooh, that's really nifty. I kind of want to install that and just run it on my current client's codebase and see what I find. CHRIS: This feels like something like strong migrations where it's like, yeah, this is great. I kind of want to have this as part of my core toolset now. This one feels even perhaps slightly more so because sometimes I look at strong migrations, and I'm like, no, no, no, strong migrations, I get why you would say that, but for reasons, this is actually fine. And they have configurations within it to say, like, no, this is okay. Isolator feels like it's always telling me something I want to know. So this, very quickly, I'm like, I think this might be part of my toolset moving forward on every single app forever. And actually, there's another gem that I used. It's made by the same team. So this is from the folks over at Evil Martians, which is another Rails consultancy out there in the world. And the Isolator gem is one thing that they've produced. And then I think the same author of it who is an Evil Martian's employee created the aftercommiteverywhere gem. So aftercommit is one of Rails' ActiveRecord callbacks. But in this case, it allows you to use it everywhere, as the name implies. And so rather than actually having to take that line of code out of the database transaction block, which is naturally where we would write it because that's how we think about the code and how we want to express it, you can just use this aftercommit method, wrap the call in that, so it's after_commit, and then a block. So either braces or do..end. That enqueueing of the email now just gets wrapped in that. And so what that does is it says, "Defer this until after the transaction commits. If the transaction does not commit, if we roll it back, then don't run it." And what was nice is the actual code change when I finally submitted all of this was add the gem to the gem file. And then everywhere that we're doing the wrong thing, which running the test suite told me, I just went in, and I wrapped that line in after_commit and a block. And it was such a nice, clean...like, I didn't have to move the code around or actually shift the lines, which was my first attempt at this. I was able to just annotate each of those lines and say, "You're special, you're special, you're special," And then I'm done. And again, the first gem told me every case where I needed to do that. It's like, well, this is a wonderful little outcome here. STEPH: That's really nice, yeah, how you can make the changes and then, like you said, re-run the test or re-run that gem, and it lets you know what else still needs to be updated. I'm intrigued where you mentioned you didn't have to move any lines, though. Maybe I just need to look at the gem and see it, but I'm still envisioning that you have your transaction do block. And then you're doing some things; you're updating records, and then you have your end. And then after that, it's when you want to enqueue the email. And with this after_commit, you actually added that method call inside of the transaction but then wrapped the call to Sidekiq to send the email inside of that block. CHRIS: Correct. Yeah. So it's basically like saying, "Here's almost an anonymous function." If you think about a Ruby block in that nomenclature, you're saying, like, here's some work to do when and if the transaction succeeds. And so it meant that I was able to keep the code in the way that we as humans would talk about it but deal with the murky details, and edge cases of database transactions, and Sidekiq, and whatnot. Sort of just handle it by saying like...it almost feels like an annotation or a decoration or something like that. But it was this, in my mind, almost like a perfect melding of I don't want to think about this. Oh, cool. Okay, here's a quick, easy way to deal with it but to not have to fundamentally change how I write the code. STEPH: Interesting. So I like all the things you're saying. I'll be honest, I'm not totally sold, and I'm trying to think of why. I think the benefits...one, as you mentioned, it's something you don't have to think about or at least signals to others that hey, maybe you should think about this to the extent that you use after_commit. And so that way, you don't have these asynchronous events taking place inside the transaction. So I like that visibility and communication to the rest of the team. Putting it inside of the transaction feels interesting. I don't know why; I feel a little weird about this. [laughs] I'm bringing my true self. CHRIS: That's fair. So if we're being honest, I solved this first by finding the Isolator gem. Well, I solved it first by just doing it manually. I went through the app, and I found all the places. And I was like, you know what? I'm worried that the next person authoring code like this, it's so easy to fall into this trap. Like, this is such a subtle little thing that our brains are not thinking about. And so I had first fixed it, and so I had a diff that involved moving lots of lines of code, every instance of this moved from being in the database transaction out of it. And that was fine. I was fine with that as a solution. But it was a little bit noisy because I was moving a bunch of lines. So then I brought in the Isolator gem. I actually reset that, and I went back to before I had made the fix, ran the test just to make sure Isolator was actually finding every instance. They did; that was great. So I was like, all right, cool. This is better because now I have this thing that will tell anyone when this happens. So I'm very happy about that. Because frankly, this is some hard-earned knowledge that I had to read Sidekiq and remember how database transactions work and convince myself of what was going on here and finally come to what I believe the solution is. And now Isolator is just like, cool, that's encapsulated. And it gives a very nice failure message in the test suite. So it's like, excellent. I really like this. But still looking at it, the diff, the amount of code that I had to change, it's like, well, naturally, this is how we want to write this code, but for reasons, we can't. And it's appeasing the computer more than it's appeasing the reader or the author of the code. And so then I happen to be reading through the Isolator gem's README, and they mention the aftercommiteverywhere gem. And I was like, oh, that's interesting. So one more time, I reset. And then I really tried fixing it with after_commit. And the look of the diff there felt nice to me because the lines got a little more on them, but they didn't move. And so it's like, this is how we naturally would have authored it, and now it works correctly. And I liked that. But I understand your hesitation because you're like, but the thing is, it's wrong. And so you've made the wrong not wrong anymore, but you didn't...and so I get your hesitation. I still like the fancy version. STEPH: Yeah, I think you just helped me figure out my grumpiness with it or why I'm not totally sold on it. And it was in regards to adding a dependency to avoid a noisy diff is the oversimplified version that I was processing or the reason that I was a bit grumpy about adding this other gem for that. But then you also just brought a lot of other really good reasons. One thing that you said that I do really like is adding tools that help us author code in a more natural style, the way that we want to highlight this process, and how this application does work, and how this business logic flows. So given in that light, that makes me feel better about it. But yeah, I think that was my initial grumpiness. I was like, it'll be a noisy diff. It's okay. CHRIS: I think I definitely share your hesitation, or you're like, hmm, that's an interesting reason to bring more code into the application. But at the same time, I think the counterpoint that comes to mind for me is we're using Ruby because of its expressiveness; at least, that's why I'm using Ruby. I really want the code that I write to be as close as possible to the thing that I would say to another human about like, oh okay, when a user signs up for the application, we need to create a record in our system, and then we need to send them an email. And then we need to do this other thing. And so, the closer that our code is to those words that I would use to describe to another human, the happier I am. And I will put in some pretty significant effort to hold that line as long as the code can also be correct. And so, the Isolator gem here does a great job of enforcing that correctness. And then after_commit allows me to still maintain that expressiveness and not have to think about the murky details as much or not have to reshape my code to match the murky realities of different persistence engines. But I do agree. I think it's a good thing to look at and ask, like, is it worth it? Are you sure? And in this case, I will say, "Yeah, I think so," but with that amount of certainty in my voice, [chuckles] which is not a ton. STEPH: I think this is going back to my days of working with dependency bot PRs where every time there was an upgrade for a gem, I always ask, what do you do here? [chuckles] Do we need to upgrade you? Can we just remove you from the codebase? So I'm fairly...I don't know, resistant is a strong word. I'm skeptical of when we're adding stuff in, and I just want to question the value that it's adding. But I want to circle back to something that you said, and that is hard-earned knowledge. And that part I understand so much where when you have gone through a fair amount of work to uncover an issue, and then you want to make sure that others don't have to go through that. This is a really nice way to highlight; hey, there's something that's tricky about computers and software here, and we need to watch out for that. And I want to help you lookout for that. Versus this is just inherit information where this needs to happen outside or after that transaction. And so that makes a really nice entry point where someone can look to say, "Why did we add this gem?" And then there's a commit message that goes with it that explains this is why we use this after_commit gem because we're specifically looking to avoid this type of bug. And I love that. CHRIS: Yeah, I think more lines of git commit message than diff on this one. So yeah, I wrote a short novel describing all of the features, describing the different pieces that are coming together. And then it's actually a +28 -6 diff. So it's a very small code change. But yeah, lots of story captured there. STEPH: And if you had just moved the lines, you could still have that commit message. But it's not likely that someone's going to look up that git commit change or that message that went along with it because they're not going to know to blame that one. But if they look at that particular edition of after_commit, they're more likely to find that historical context. So long story short, I think you have walked me through my initial grumpiness and provided some really good ways to avoid that really tricky failure mode for other developers. CHRIS: Well, thank you. I'm getting Steph's seal of approval starting from grumpy places. [laughs] I feel good. All right. STEPH: I'll have some special Stephanie's approval stickers designed and printed for you. CHRIS: I hope you're not joking because I very much want a yellow heart that says, "Steph-approved." STEPH: [laughs] CHRIS: And I can put it on PRs, and I can put it on the wall. [laughs] STEPH: Well, now I have to find a sticker designer and make a...well, it's just a yellow heart. I can probably handle this. I'm going to use Comic Sans. That will be the approved part. [laughs] Yellow hearts and Comic Sans for everybody. CHRIS: Well, with that absolutely fantastic call back to earlier parts of the episode, shall we wrap up? STEPH: Let's wrap up. CHRIS: The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes, as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeee! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.
10 years of Laravel, and the framework continues to grow stronger with the passing of each release. More and more talented developers are creating packages and contributing to the overall health of Laravel. We talk with Eric Barnes, Matt Stauffer, and Taylor Otwell. We talk about conferences, kids, PHP, and so much more.
Welcome to the Things Worth Learning show, where a curious programmer interviews fascinating people about their passions. Hosted by your friend, the host of the Five-Minute Geek Show and the Laravel Podcast, Matt Stauffer.
Jacob Baker-Kretzmar Twitter - https://twitter.com/bakerkretzmarJacob's GitHub Account - https://github.com/bakerkretzmarJacob's Website - https://bakerkretzmar.ca/Laravel Documentation: Helpers - https://laravel.com/docs/8.x/helpersLaravel Documentation: Collections - https://laravel.com/docs/8.x/collectionsRasmus Lerdorf Twitter - https://twitter.com/rasmusLaravel Documentation: Dataget - https://laravel.com/docs/8.x/helpers#method-data-getLaravel News: Laravel Collection “Tap” Method - https://laravel-news.com/collection-tapLaracasts: Fluent Strings Manipulations - https://laracasts.com/series/whats-new-in-laravel-7/episodes/2Laravel News: Using the Laravel Optional Helper and the New Optional Closure - https://laravel-news.com/laravel-optional-helperLazy Collections in Laravel - https://josephsilber.com/posts/2020/07/29/lazy-collections-in-laravelRefactoring to Collections, by Adam Wathan - https://adamwathan.me/refactoring-to-collections/Laravel: Up & Running, by Matt Stauffer - https://laravelupandrunning.com/ Episode SponsorshipTranscription sponsored by LarajobsEditing sponsored by Tighten
Jess Archer Twitter - https://twitter.com/jessarchercodesJess Archer Website - https://jessarcher.com/Jess Archer Blog - https://jessarcher.com/blog/Jess Archer GitHub - https://github.com/jessarcherLaravel Shift - https://laravelshift.com/GiftyDuck - https://giftyduck.com/BaseCode Podcast - https://basecodefieldguide.com/podcast/Laravel Documents: API - https://laravel.com/docs/5.8/api-authenticationLaravel Documents: Laravel Passport - https://laravel.com/docs/8.x/passportLaravel Documents: Laravel Sanctum - https://laravel.com/docs/8.x/sanctumRestful APINested ResourcesTransforming APIAPI ResourcesJSON API - https://jsonapi.org/Wikipedia Status Codes - https://en.wikipedia.org/wiki/List_of_HTTP_status_codesLaracon: “How to JSON: API Quickly and Easily in Laravel,” Matt Stauffer, video - https://vimeo.com/showcase/7060635/video/394206991Laracon: “Cruddy by Design” Adam Wathan, video - https://www.youtube.com/watch?v=MF0jFKvS4SILaracon: “The Laravel Developer's Guide to VUE SPAs,” Jess Archer, video - https://www.youtube.com/watch?v=Zv4bUXEwl20 Episode SponsorshipTranscription sponsored byLarajobsEditing sponsored byTighten
Christoph's Twitter Account - https://twitter.com/christophrumpelChristoph's Blog - https://christoph-rumpel.com/Christoph's YouTube Channel - https://www.youtube.com/user/christophrumpelHow I Built Laravel Core Adventures (Blog) - https://christoph-rumpel.com/2019/2/how-i-built-laravel-core-adventuresLaravel Core Adventures Video Course - https://laravelcoreadventures.com/Service Container - https://laravel.com/docs/8.x/containerService Provider - https://laravel.com/docs/8.x/providersFacade - https://laravel.com/docs/8.x/facadesEmpathy Gives You Superpowers (Video by Matt Stauffer) - https://www.youtube.com/watch?v=fMFjO2szDnk&ab_channel=LaraconEUIOC Container Beyond Constructor Injection (Video by Hannes Van De Vreken) - https://www.youtube.com/watch?v=WMT8txJHdKI&ab_channel=LaraconEUMastering the Illuminate Container (Video by Matt Stauffer) - https://speakerdeck.com/mattstauffer/mastering-the-illuminate-containerLaraCasts Service Container Fundamentals - https://laracasts.com/series/laravel-6-from-scratch/episodes/38LaraCasts Service Providers Are The Missing Piece - https://laracasts.com/series/laravel-6-from-scratch/episodes/41Demystifying Dependency Injection Containers (Video by Kai Sassnowski) - https://www.youtube.com/watch?v=y7EbrV4ChJs&ab_channel=LaraconEUThe Best Introduction to Laravel's Service Containers (Video by Christoph Rumpel) - https://www.youtube.com/watch?v=sETbdiWhVpM&ab_channel=ChristophRumpel 4 Ways the Laravel Service Container Helps Us Managing Our Dependencies (Blog) - https://christoph-rumpel.com/2019/8/4-ways-the-laravel-service-container-helps-us-managing-our-dependenciesNo More Encore (Band): The Let Down (Last Single Video) - https://www.youtube.com/watch?v=ITY3USF1hVINo More Encore (Band): We Are The Warriors (Last Album on iTunes) - https://music.apple.com/at/artist/no-more-encore/146681748No More Encore (Band): Live Video - https://www.youtube.com/watch?v=fugQNUY90iYNo More Encore (Band): Live Video - https://www.youtube.com/watch?v=A0Ayf2H8Iio Episode SponsorshipTranscription sponsored by LarajobsEditing sponsored by Tighten
Mon Valley Jeepers is always doing good, but now they are doing birthday rides! Birthday parties have definitely changed due to quarantine restrictions, but the Mon Valley Jeepers group has found their way to make birthdays special by rounding up all the jeeps and fire departments to come to your birthday party! Listen to what Matt Stauffer had to say to the Y'd Awake Morning Show about the cool way the group is giving back. For more information about their group, you can email them at MonValleyJeepers@hotmail.com
Tighten is relaunching Twenty Percent Time and we're starting Season 2 by talking with our CTO Matt Stauffer about all things hiring: when & why Tighten decides to hire, what we look for, what we wish people knew when applying, and more.
In this episode, I talk with Matt Stauffer about how he started Tighten, how he got into Laravel, why he's such an active member of the community, what he looks for when hiring developers and loads more! Matt shared a load of excellent advice that you can start using today in your career.Links Tighten onramp.dev Laravel Up and Running, by O'Reilly The Laravel Podcast Matt's Blog Matt's YouTube channel Matt's Twitch channel Matt on Twitter Guests: Matt StaufferHosted By: Matthew Setter.Thanks for tuning in to Free the Geek. If you'd like to be a guest on the podcast or know someone who'd make a great guest, email me: matthew@matthewsetter.com. This podcast is produced by Matthew Setter.
I would like to thank all the How To Code Well season two guests! Listen to the podcast here: https://howtocodewell.fm In 2020 we start season 3! In order of appearance here are the guests in this end of year special: Ted M Young https://howtocodewell.fm/guests/jitterted-ted-m-young/ Kyle Cook [Web Dev Simplified] https://howtocodewell.fm/guests/devsimplified-kyle-cook/ Kat Zieñ https://howtocodewell.fm/guests/kasiazien-kat-zieñ/ Matt Stauffer https://howtocodewell.fm/guests/stauffermatt-matt-stauffer/ Matt Brunt https://howtocodewell.fm/guests/Brunty-matt-brunt/ Anna Filina https://howtocodewell.fm/guests/afilina-anna-filina/ Jonan Scheffler https://howtocodewell.fm/guests/thejonanshow-jonan-scheffler/ Adam Culp https://howtocodewell.fm/guests/adamculp-adam-culp/ Jeremy Onion https://howtocodewell.fm/guests/balther74-jeremy-onion/ Matthew Glen https://howtocodewell.fm/guests/Mattyggg1-matthew-glen/ In order of episode appearance: EP 30 - Adam Argyle - Google CSS Developer Relations https://howtocodewell.fm/episode/31-google-css-chrome-developer-relations-adam-argyle/ EP 17 - Kimberley Cook - Learning Programming for Free at Codebar https://howtocodewell.fm/episode/17-learn-programming-for-free-at-codebar-kimberley-cook-interview EP 19 - John Jacob - Iteration Podcast https://howtocodewell.fm/episode/19-iteration-podcast-john-jacob/ EP 10 - Ash Furrow - Compassionate Software Development https://howtocodewell.fm/episode/10-compassionate-software-development-ash-furrow/ EP 38 - Gary Hockin - Twilio and Live Coding https://howtocodewell.fm/episode/38-twilio-and-live-coding-gary-hockin/ EP 24 - Stephanie Hurlburt - Binomial Making Better Web VR https://howtocodewell.fm/episode/24-binomial-making-better-web-vr-stephanie-hurlburt/ EP 25 - Stephen Doherty - Learning To Code After 30 https://howtocodewell.fm/episode/25-learning-to-code-after-30-stephen-doherty/ EP 27 - Jacques Woodcock - Amazon Software Development Manager https://howtocodewell.fm/episode/27-software-development-manager-at-amazon-jacques-woodcock/ EP 37 - Jessica Smith - Web Development Side Projects https://howtocodewell.fm/episode/37-web-development-side-projects-jessica-smith/ EP 06 - Nathaniel Smith - Open Source Recruitment https://howtocodewell.fm/episode/06-open-source-recruitment-nathaniel-smith-interview/ EP 43 - Jenna Charlton - Software Testing https://howtocodewell.fm/episode/43-software-testing-jenna-charlton/ EP 18 - Tom Vorel - Best Resources For Self Taught Web Developers https://howtocodewell.fm/episode/18-best-resources-for-self-taught-developers-tom-vorel/ EP 26 - Emma Wedekind - How To Be A Better Web Developer https://howtocodewell.fm/episode/26-how-to-be-a-better-web-developer-emma-wedekind/
Matt Stauffer joins me on the How To Code Well podcast to talk about why Laravel is so good! Matt is a technical director at 'Tighten', author, Twitch streamer, speaker and podcast host. He builds web systems with Laravel and other PHP related technologies and teaches Laravel on Twitch and his YouTube channel We talk about the difference between Laravel and other frameworks such as Zend and Symfony. Matt also gives some great advice to those looking to use Laravel as a PHP framework. Follow Matt Stauffer Twitter: https://twitter.com/stauffermatt Web: http://mattstauffer.com Twitch: https://www.twitch.tv/mattstauffer YouTube: https://www.youtube.com/channel/UChByJR-sX8CooIAc5nkV7Mg Follow Tighten: Web: https://tighten.co Twitter: https://twitter.com/TightenCo *** My Programming Courses *** Docker In Motion http://howtocodewell.net/docker-in-motion Use discount YTFISHER to get 40% off at Manning Publications Hands-on Microservices In Python - Packt Publishing: http://bit.ly/2S6aMYB - Udemy: http://bit.ly/2tD8S3Q Master Python Clean Coding - Packt Publishing: http://bit.ly/2NyUVkr - Udemy: http://bit.ly/2Y5E1tL *** Programming resources *** Programming books from Manning Publications: http://bit.ly/2BIrEx Udemy courses https://www.udemy.com/user/peter-fisher-8/ Skillshare courses https://www.skillshare.com/r/user/howtocodewell *** Merch *** http://howtocodewell.net/shop/merch *** Follow How To Code Well *** Twitter: http://twitter.com/howToCodeWell Youtube: http://bit.ly/2wf9ufB Twitch: http://twitch.tv/howtocodewell/ Instagram: http://instagram.com/howtocodewell/ Website: https://howtocodewell.net Join the Discord Channel: https://howtocodewell.net/discord Facebook: https://www.facebook.com/howtocodewell *** Subscribe to the news letter *** http://tinyletter.com/howtocodewell *** My Talks *** Using a Framework or Not - PHP South West https://youtu.be/T8R3YTrqt6U How To Put Your Docker Images On A Diet - PHP South West https://youtu.be/uiABt9axPNo Software Complexities - Peter Fisher - PHPSW: Learning About Complexities, August 2018 https://youtu.be/ZQ6AkyvEaHE DISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps support the channel and allows me to continue to make web development videos like this. Thank you for the support!
This week I’m speaking to Matt Stauffer. Matt is a partner at the web agency Tighten, developer, teacher, podcaster and author. Matt and I speak about his experiences with anxiety and depression, being a great employer and other things!
Jonas has just gotten his PR to Onramp reviewed and more tasty dev talk.
PHP powers a lot of the internet, but developers love to hate on PHP. Matt Stauffer, author of 'Laravel Up and Running' wants to change that. Matt tells us how to avoid the pitfalls of learning PHP and the best way to get started learning.
Bill Condo interviews Matt Stauffer at Laracon US 2019 in New York.
Jake and Michael recap some Laracon US 2019 highlights, and cover off the exciting annoucements form the conference.
An Interview with Lalit Vijay, Curator of Laravel Live India and Co-Founder ov StyleDotMe Lalit on twitter StyleDotMe Masters of Scale Reply All The Knowledge Project Inside Intercom Transcription sponsored by Larajobs Editing sponsored by Tighten Matt Stauffer: Welcome back to The Laravel Podcast, season three. Today I'm talking to Lalit Vijay, the original founder of Laravel Live India, the co-creator of some great meet-ups there, and much more, stay tuned. Matt Stauffer: Alright, welcome back to The Laravel Podcast, season three. Today I'm gonna be talking to Lalit Vijay, who is known in a lot of different ways. But interestingly, just like some of my favorite guests, a lot of you probably have never heard of him before, and a lot of you think he's the most amazing person on the planet and can't imagine why anybody wouldn't have heard of him. Matt Stauffer: And that's my favorite thing, where there's a community who knows him deeply and votes for him hundreds of times to come on the podcast. And then there's some of you who say, well who's that? So I'm excited for a new opportunity to share with you somebody who, who you didn't know about before, and afterwards, you're glad you had the chance. So first of all, introduce yourself. And when you meet somebody in the grocery store, what do you tell them that you do? Lalit Vijay: So, hi first to the whole audience of the Laravel Podcast. I have been following it, and it's a kinda great pleasure for me to be over here. Thank you Matt for that opportunity. And for me, I generally introduce myself as a backend lead and operation manager at StyleDotMe. And along with it, I curate meet-ups in India for the Laravel community because I want this thing to grow and reach to, across India in a really, really big way. Matt Stauffer: So if you meet somebody in the grocery store, and they say, what do you, and you say, oh I'm the backend lead of blah, blah, blah, StyleDotMe, do they say I don't know what that is, or because it's a product, do they more say well, I don't know what that is, but what's StyleDotMe? Are you usually able to kind of skip around the conversation of what you do by talking about what you're doing it for? Lalit Vijay: Fun fact, what happened in my day-to-day routine is since we are the founding members of our startups right, so we get really bogged up, and 80% of time may consumes with either my teammates or meeting new clients and handling the backend stuff at the company. All my grocery and all that stuff is actually delivered online so I just roll with it. Matt Stauffer: Okay, so do you go, I'm trying to think of a separate context. Do you go to the gym? Do you go to the coffee shop? Where do you actually randomly meet people who aren't in tech? Lalit Vijay: Okay so, at airports, whenever I'm traveling across India. Matt Stauffer: Perfect. Lalit Vijay: And at that point of time, I start mostly I talk around my product at StyleDotMe, what you do. And it's like we build augmented reality applications, SnapChat virtual lens or that's a business and application and then people start and then I show them the product and actually make them try it on themselves. So yeah, that's yeah. Matt Stauffer: Okay. So is StyleDotMe, will you talk about StyleDotMe because I'm sure it'll come up again. Is it more something that your primary people you're selling to is the retailer and then the retailer, Lalit Vijay: Right. Matt Stauffer: Do they get a white labeled version of it? Lalit Vijay: No. Matt Stauffer: So they're having their clients use StyleDotMe but then pick them in StyleDotMe or something. Lalit Vijay: Right, right. Matt Stauffer: Okay, got it, okay. So you said you're the backend lead. Lalit Vijay: Yes. Matt Stauffer: So what I assume is that it's a primarily mobile app that's consuming probably something Laravel-ish. What does your tech stack look like in general? Lalit Vijay: So at Laravel, we use very different like multiple stack. It's not just Laravel over there. So at StyleDotMe, the primary application runs on IRIS. And where the real, our Machine Learning model runs, and so it detects a face, it figure outs your exact ear points, your neck points and overlay the items on that. Now to make it happen, what we use is a, we use a file base for real time data communication across all the devices. What we use Laravel for is like primarily backend tasks for uploading all the inventory data, managing those inventory data and making sure that what should go live, what should not go live. So, whatever the things which our admin panel controls, this is basically in the Laravel. Apart from that, we do a lot of data processing, image processing and all that happens in Python. Matt Stauffer: Okay. Lalit Vijay: Yeah, so it's like a bit of diverse. Laravel is one sort of part of it. Matt Stauffer: Okay, and obviously I want to ask more questions about that, but usually what I want to dig into is who you are as a person. But again, like I said, since some people don't know who you are as a well-known person, I at least want to lay the groundwork a little bit. So, that's your day to day work. And you said you're a founding member of the startup, so, how much of your work is coding and how much of your work is organizational and people-related? Lalit Vijay: Okay, so that's interesting. Initially, it was a lot of coding. Matt Stauffer: Right. Lalit Vijay: Initial two years was a lot of coding time. But now, I think 80% coding and 20% operations and managing people. Matt Stauffer: Yep, yeah, totally. Okay, and then other thing that you're actually probably more known for at least in Laravel world is that you're the organizer. Are you the organizer or co-organizer? Are you the primary person? Of Laravel Live India. Lalit Vijay: So I started it, but now what I always wanted from the community is that everybody's part of it. And whoever each volunteer, each participant is actually organizer for me. So, whether it is Fahad this year, Rishalla is putting a lot of effort. So, all these people are the building blocks of the community. It's not something which I say that okay, this is what I'm doing. This is my community's doing, and they're helping me out. Matt Stauffer: I love it, that's a good attitude, man. So, you are the original founder and now one of many organizers of Laravel Live India, which is a very large, and it's in its third year now, right? Lalit Vijay: Yes. Matt Stauffer: The Laravel conference. Lalit Vijay: Yes. Matt Stauffer: So tell us a little bit about, to somebody who's never heard of it before, tell us a little bit about the conference. Lalit Vijay: Alright, so for Laravel Live, it started because it was just one reason that I didn't have enough time to visit Laravel EU or US, and I wanted those awesome speakers over here so that more Indian people can interact with them. And conferences not only just give you space for knowledge setting but also meeting new people, which helps you expand your view of the community and help you grow in very different ways. So that was the key thing, the motivation and one day I decided that someone has to do it so, why not me? So, let's do it. And then we did the first version of it, and the response was pretty good. And a few people got job via that conference. And once I heard that that helped me feel motivated further, for it that yeah someone is getting benefited out of it. That's awesome, let's do it again. And now, after two years, this year it's pretty nice now. We selected venue based on community vote. Our people selected for Mumbai for this year. And we are doing this on third of March, 2019. Matt Stauffer: Oh, that's coming soon man. Lalit Vijay: Yeah, yeah, so, we have announced our speakers. We are preparing for it, and hopefully we'll see a lot of people especially people, Freep is there. Then Nuno is there, then Rumpel is there. So, these are a few people from the community which a lot of people know. And then there are a lot of developers within India who are actively working out and, it's pretty fun to see and be part of this whole community. Matt Stauffer: Very cool. So, one of the things that I think blew a lot of folks' minds was hearing about Laravel Nigeria being as many people as it was. Do you have an estimated count of what the attendance for Laravel Live India's gonna look like this year? Lalit Vijay: It's, so this year we are for doing 150 fixed. Also a number of places expect to-- Matt Stauffer: Got it. Lalit Vijay: Yeah. Matt Stauffer: And then you also are connected to, and I don't know exactly what the story is, but a series of meet-ups as well. Could you tell us a little bit about those? Lalit Vijay: Yeah so with this, before this conference, I started it as a meet-up. And the first meet-up was Laravel Live Delhi. And that was, actually the first meet-up got only five people. Oh yeah, five people. So we started that small, and over the period of time, we have grown very much. And recently we did a meet-up in Ahmedabad. Now the first meet-up in there was an attendance of 70 people. Matt Stauffer: Wow, that's awesome. Lalit Vijay: Right, so it's the meet-up which started with five people has grown to a 70 people meet-up. And in terms of conference, we on the first year we had 60 people turn out, second year it was 110, and we are doing 150 this year. So yeah, it's going pretty good. Matt Stauffer: Now is there, in any of the areas that you're doing this, do you have a big PHP community as well that's much larger, or is Laravel kind of really the main space where any of this work is happening in terms of community organization? Lalit Vijay: So I think with Laravel Live, now the Laravel community is growing. And how I see is that it's not just Laravel community which is growing, it's actually the whole coding community growing, right. People, we need to learn new things and the whole PHP space is growing overall. The biggest event I have seen in India with PHP domain is WordCamp for the WordPress. Matt Stauffer: Yeah, that seems to be the case in most places. Lalit Vijay: Yeah, so recently it happened in Ahmedabad with over 1,000 people of audience. Matt Stauffer: Wow. So what is the biggest tech stack around you? Is it Laravel if people are doing the type of work you're doing or there are other tech stacks that more folks are focusing on? Lalit Vijay: I think I see a lot of people around me working around Python. So, Python is kind of the, and that one kind of biased with me is I work well with a lot of people who are into image processing, Machine Learning and all that stuff. So, I find people who are mostly working in that domain. And website development kind of people are like not my core sort of thing when we look at the main R&D at StyleDotMe happens on Machine Learning and image processing, which is basically either CC++ and Python. Matt Stauffer: I've got lots more questions about that, but we've got to pause because at this point in the podcast, I've got to learn about you. So, tell me a little bit about you. When was it that you first used a computer, and when did you first start realizing you were into coding? Lalit Vijay: So, in fact the first time I got an opportunity to use my computer was in my school. I think I was in grade second or yeah, I was in grade second. Matt Stauffer: Okay. Lalit Vijay: At that time, we went to school, our teacher asked us to, this is computer? And at that time, we used to have that bulky computer system with bulky monitors and all that stuff. And, so from class two to class sixth, it was just a object of fascination where whenever you go there, you love it. Matt Stauffer: Yeah. Lalit Vijay: Alright, it's something cool and what I used to do at that time is only play one game called Dave, which I remember right now. So after that, my real interest started into the computers was after class seventh. Matt Stauffer: Okay. Lalit Vijay: I started learning things, I made friends of my school teachers and then I started skipping my lunch breaks and gained experience into the computer classes. Matt Stauffer: Very cool. Lalit Vijay: So, I used to sneak into, but there was just one challenge. 'Til that point time, I didn't have access to internet. It was computer without an internet. So the place where I live is one of the like remotest place in India. Matt Stauffer: Oh really? Lalit Vijay: Yeah, so my hometown is a place called Kordoma in Chakan. And it's like surrounded by 30 kilometer of forest all around the middle of the place. Matt Stauffer: Wow. Lalit Vijay: So, finding internet connection was a big challenge. But then I actually got in touch with one person who used to tution me, and tutor for my subjects. And he got in a job at the district center of the place and they had the internet connection there. The government there had this connection. And then I kind of ask him that can I spend an hour or something on that? That gave me access to good internet connection. But after his transfer from that place, I came back to the same point, no internet access. Matt Stauffer: Right. Lalit Vijay: And during 2008 and 2009 and thereabout really I grew kind of big, I got personally an internet connection where I was getting a 2KBPS, 3KBPS kind of speed. Matt Stauffer: You're kidding. Lalit Vijay: Yeah, and I started learning from that. Matt Stauffer: That's enough for like Telnet, and that's about it. What are you gonna do with that? Lalit Vijay: Yes, so at that point, I was like super happy that I have my own internet connection having 3 Kbps of internet. In fact, I remember one incident where I used it. I had taken screenshots of when this net speed was like 6 Kbps, like yay, I got 6 Kbps of internet speed. Matt Stauffer: Did you say 2008 or 2009 was when that was happening? Lalit Vijay: Yes, yes. Matt Stauffer: That's very recent for you to have almost no functional internet. Lalit Vijay: Right because that's a really remote place in India. Matt Stauffer: Yeah. Lalit Vijay: That point I then again try to make more friends with the government people. Matt Stauffer: Right. Lalit Vijay: Got a high speed internet connection again, spent a lot of time on YouTube, and then I started building website for freelancing. And that was for me, grade, I was in high school at that time. Matt Stauffer: Okay, how'd you learn? Lalit Vijay: YouTube. Matt Stauffer: Really? Like you'd just search on YouTube for how do I make a website and people add tutorials there? Lalit Vijay: Yes, yes, and so I'm self-learner. So from my education background I'm electronics and communication engineer. Right, but coding has always been kind of fascinating. It has always been actually easy, alright. So, that was easy to us to do, so we did this. And after high school, I moved to Delhi for my engineering. Matt Stauffer: Okay. Lalit Vijay: And there, then I experienced good internet connection. Now-- Matt Stauffer: So what year was this then? Lalit Vijay: Current net speed we have in our office is one Gbps connection, and at my home I have-- Matt Stauffer: Okay, I'm sorry, I was saying what year is it, but go ahead though, what do you have at home? Lalit Vijay: Okay so currently I have a 10Mbps connection at my home so that works fine enough to me. I moved to Delhi in year 2012. Matt Stauffer: 2012, okay go it. Lalit Vijay: Yes, so four year of slow internet connection, but after 2012 I did my engineering and during my final year, I started my first startup. We ran it for two years, then moved out of that startup. Now, after that I am working on StyleDotMe from 2016. Matt Stauffer: Okay, so what was the group of people who originally started StyleDotMe? How many of you and was there any funding, or was there just a couple friends started this? What'd that story look like? Lalit Vijay: Okay, so after my first startup got set down, I was complete kind of freeze where I was thinking what next in my life right. So, after starting a company you always try to like, try to find why things happen and whatever, and I met a really awesome girl called Meghna Saraogi. And this girl individually made a small seed funding ground with very little money. I can say you something like, you can say 25 lakh rupees. It's like 30 thousand dollars. With that small money, she came from a different city to Delhi with a prototype application on which she has raised a small ground up funding. The whole team gathered over here. Our current CTO is currently a student, right. He is finally an engineering student, but-- Matt Stauffer: Wait, your current CTO or your original? Lalit Vijay: Yes. Matt Stauffer: He's still a student? Lalit Vijay: Yeah, yes, so-- Matt Stauffer: Okay. Just had to make sure I heard that correctly. Lalit Vijay: Yeah so, he's the founding team member also and he's current CTO, and he started as basically as we all started, then we started giving tags to each other and he's now CTO and I'm handling the operations. So, that guy is like, was a very bright guy. Meghna was super passionate about the product and she lead the kind of vision to the company. Akil is like really the Android developer, and he sold his first company for $100K in 2016 when he was in high school. Matt Stauffer: Okay. Lalit Vijay: And then he started to build multiple applications, around 20, 30 applications and being featured in all the good magazines, and he's doing pretty good right now with us. And he's the kinda key person in building this augmented reality application on the IRIS. Matt Stauffer: Okay so, of your team, what's the breakdown of web application developers versus machine learning type folks versus whatever else? Lalit Vijay: Alright so, at web application we have just an admin panel and I handle that. Now we have added one more developer for that and the rest, Ahkil, Dhruv, and me and Avinash co-develop for the machine learning and the Python part, and Ahkil primarily take care of iOS. Matt Stauffer: Okay cool. So one of the things that I always do when I'm gonna be interviewing somebody is I ask everybody at Tighten, do you have any questions that you have for this person? And sometimes they say oh, I've always wanted to ask them this, and sometimes it's a little bit more, you know, oh I'm just curious about this in general. So, one of the questions that someone asked was: of the folks you know in India, especially in the area around you, who do Laravel, and obviously that's not a lot of your team, but to the folks from different conferences, is it more common for people to be employed full time, or is it more common for there to be freelancers? Is there a big freelance, 'cause we're noticing that that's something that we notice to be different depending on the country. So for example, in the U.S. there's very, very few Laravel freelancers, but we've found a lot in quite a few European countries. So what's like it like in India? And obviously it's gonna be different based on the city. Lalit Vijay: Yeah I think India is a very vast country, right? Matt Stauffer: Yep. Lalit Vijay: So it's pretty different in different places. If you talk about Zanzibar and all the tier two cities, you'll find only the kind of people who are employed working on that. If you find in Dehli or Bangalore, you will find some good amount of freelancers too. Matt Stauffer: Okay, yep, and that was kind of my expectation. It's a little bit like that in the U.S., but not as much as I would've expected. There's less and less freelancers around-- Lalit Vijay: Yeah definitely, it's a challenge, it's a challenge to find good freelancers. Matt Stauffer: And one of the reasons they were asking that is what does it look like when your startup needs to grow, and you can't find enough folks to work? Are you doing training for people? What's that like for you? Lalit Vijay: So currently what we do is we hire people who have at least a year or two year of experience, and then train them based on that basis. Matt Stauffer: Yep, on the job, yep. And the benefit is they get the training, and you get someone who knows the things you want them to know, and yeah, totally understand that. Alright, so one of the things we were curious about knowing was we talked a little bit about how you got into programming, but what was it that first got you into Laravel? Lalit Vijay: So I was doing a lot of freelancing work between my high school to third year of college. So from 2010 onwards to 2013. And during that time I was working with multiple people. And it was mostly working in PHP Code and CodeIgniter. And during that time I was just searching around, saw what's coming up and one day stumbled upon this Laravel. And I just checked it out, how is it. And the first class actually didn't took off, and when I came back, I think it was version 3.8 or nine I guess that I first just liked, And I tried my hand and I felt okay, CodeIgniter is fine enough, it works good for me now. And when I got my hand again on 4.2 it was like completely changed, and it was wow, wow. This is pretty nice. And then I started moving my projects on Laravel, and I build up multiple application for a few five star hotels, for at that time I was working with, it was Ramada and Radisson, yeah, so for them I was working. So I built a few application for their internal kitchen order management system, and that's how my initial Laravel experience, in terms of real development came across. And then with every new version started loving more, because every six month you had something interesting, something nice, and the whole community started. So with CodeIgniter and the code base what I was filling from, 2011 to '14, I feel like the community was going downhill. Every year it was slowing down, slowing down, and there's nothing new coming up in the whole PHP ecosystem. And with this growing Laravel community you felt that yep, again we are getting somewhere. And actually people are talking about things, they are selling stuff and they're building. They are not stuck with one version with the same base of code, and you don't know what next going to come, right? So that excitement took me over, and I completely ditched CodeIgniter, and then I used Laravel for my first startup from scratch. That was 2014, '15, and we built the complete front end and back end on Laravel. That worked out very well for us. And I think after 4.2 they were looking back in terms of it was getting better with everything. Whenever I miss something, mostly like it was going to come in next version. Matt Stauffer: That's cool. So one of the other questions I got that I thought was really interesting was, could you think of any ways that developing Laravel applications in India, specifically with Indian audiences, is different than it might be somewhere else? Is there anything you think that folks outside of India might not know about the context or the audiences? One of the things that someone specifically mentioned, I actually talked to Marcel Plizio, and he mentioned the fact that you had said that you have to think about scale a little bit earlier sometimes, because there's so many people. So that, and anything else, are there any other aspects of developing in India that you think that other folks might not be aware of? Lalit Vijay: So the one thing which people think is, since India is a really diverse place, and there is a lot of dialects, but still the major verbal development happens in English only, and you don't really need localization. I think in going few down years from here now we will be seeing a lot of localization within the Indian community. Because a lot of new people coming on the internet, and the rate of acceleration of growth of newcomers coming on for online consumptions is really, really getting big, it's booming. And with that I think more localization will come into the play. For right now mostly it's the English, and the scale is the one reason, because you hit 10,000 users in very soon. And then. If you have 10,000 users you really don't feel like you've got anything until it's like 100,000, right? So yeah, so I think the first time I felt that was we were doing a really small activity, and I wasn't expecting that how much traffic I will get. And my systems are down, that was completely on Laravel. And the moment I saw what was the reason is my data was site down because number of requests per seconds I was handling was too high. It was like 300 requests per second. And for the activity with one influence, having I think 50,000 followers or something, make everybody bogged up on at the same time, I wasn't expecting that kind of response. So yeah, in India that happens, that you can really hit the numbers really fast. Matt Stauffer: Interesting, yeah. So are there any things that you just think of on every new project that, you know, of the folks without that context, 10,000 sign ups might be a six month goal, or a year goal for some folks, and for you you say well, I might hit that super early. Do you say oh, well here's one thing I do on every project that other folks might not have to think about, or something like that? Lalit Vijay: So with us, we always set up the system with load balancer and all the basic coordinates installation pre-loaded. And with us it has always been the case where we do, and then we start doing some out-of-the-box marketing activity. And for that specific duration, our users sort of grow 10 times, 15 times from the normal use cases, right? And that those cases you really need to be aware. But in 80% of the cases the growth is linear on developments you're not doing. With us, what happened currently is we dealing with a lot of enterprises consumers, right? And so we are currently dealing with, out of top 10 brands we are working with top five. So the moment they start, they start very small, like on few retail stores, and when they grow, your growth is going to be get like 10X once the pilot is done. So you just need to make sure that after a month, or two month you are not going to get stuck because the expansion or number of applications are running simultaneously has grown 10X. Matt Stauffer: So what kinda tools do you use to be aware of when you need to scale? What are you using for monitoring? Lalit Vijay: Okay, so currently I use AWS CloudWatch a lot to drag down all that stuff. And over here, since we had everything is enterprise consumers, we do have really on understanding, right? Because with enterprises you need to do a lot of integration and all that stuff before going live, even after the pilots. So we do know kind of base growth now we are going to have, and that's the kind of benefit of being a SAS company with B2B clients. So you have more predictability in terms of what kind of users you're going to see. Matt Stauffer: Is CloudWatch enough to give you everything that you need? Like let's say you know it's gonna happen, but you don't know, well, X number of users, what kinda resources they need. Can you get all that at CloudWatch, are you using a Blackfire, a New Relic, or an Eyewitness or something like that? Lalit Vijay: So the fun fact about us is that for us, the end people who are going to use Laravel back end is very, very limited. Currently we are just with 50 enterprises consumers, right? But they control almost 30% of the whole market's pie, right? So you exactly know the number of consumers, and they are going to sign up. So on the back end part, where the main Laravel meat is working, is really not all that traffic insane. The part where we have unpredictable kind of users is the end-consumer application which is installed in the retail stores. That is completely not on Laravel at all, that's on Firebase. And the machine learning model is within the application only, right, which we train on separate with the application. Matt Stauffer: Oh okay, so is Firebase taking the majority of that? So well the machine learning, is that running on your own servers, or is that in something like Lambda? Lalit Vijay: No, so we train our model on our own systems, and once the model is generated we separate along with the application. Matt Stauffer: Oh, okay, that makes more. Oh, so when you say the application, you mean the actual iOS application has all that embedded. Lalit Vijay: Yes, yes, yes. Matt Stauffer: Okay, so the actual calls from the front end user-facing application to the back end primarily hit Firebase? Lalit Vijay: Yes. With the Firebase even, so since we are working with retailers with a lot of different places where internet reliability is not constant, right? So we work in a way where you have offline storage of everything. So from the last point of internet connectivity you have everything there, and the application will run perfectly fine for you. The moment we got connected with a proper internet connection, we just sync the latest data for them. So number of request we've finally made to our servers is very, very, we try to limit them, because we need to make sure that it runs offline perfectly. Matt Stauffer: What is the tech stack that you're using to generate your iOS, are you using Swift, or? Lalit Vijay: No, it's a Native-C, Objective-C. Matt Stauffer: Okay, got it, I guess that makes sense since you were talking about using C and C++ for your machine learning, okay. Off the top of your head, is there one piece of technology that you predict is just gonna get huge that you're really excited about? Lalit Vijay: AR, yep. Matt Stauffer: Okay, tell me more, I mean as your average developer thinks about that, what should they be prepared to be learning and thinkin' about? Lalit Vijay: So in front-end development, I think AR will change the way currently people are solving, right? And if you see all the big players across the globe are playing and trying things to do in the right way, right? And in India what we see is all these retailers, the reason even after being a very small company in number of head counts we call, and the kind of startup we are, the kind of companies we are working with is like the biggest brand of the country, right? And the reason of that is the kind of innovation we are bringing on the table. So currently the product we have is the only product in this world which can do real-time augmented reality for the jewelers, with such high precision. So a lot of time we find that our model works better than what currently SnapChat has. And we have filed patents for that now. Matt Stauffer: That's very cool. Lalit Vijay: Yeah, so the kind of effort we are putting in in terms of building the fine product for the end consumers, and the kind of response we are getting from the end consumer is really fabulous, right? So just now imagine, today you are sitting there and you have to buy something for you wife, right? And let's say you're giving a surprise to her. What you will do? You will go to a store and you will try to see, this might look good, right? But how are you going to try on her? What we do there is you just take her picture, and put item on her. Matt Stauffer: I was just gonna ask, can I just hold a picture up in front of the camera? Lalit Vijay: Yes, yes, yes, so you just hold up a picture of her and see her wearing the jewelry which you wanted to buy for her. And then you can decide it much better. And this stuff is gradually, I see in a big way, everybody's asking us please give us the web version, but we are not doing it because the kind of quality which we are getting on the web version is not up to the mark, the kind of quality we are developing on the iOS native application, right? So I see a lot of demand in terms of AR, and every sort of company, from Amazon, to this Tiffany, to this L'Oreal Paris, all kind of beauty, jewelry, all domains are using crazily. Matt Stauffer: That's really cool. Lalit Vijay: Yeah. Matt Stauffer: Did all the work that Apple did recently to improve AR in the most recent versions, did that really make a big difference in the possibility for it to be big in the future? Lalit Vijay: We were very excited about ARKit, that that might help us a lot by reducing our work. But it didn't help it that much. It still requires a lot of work right now. The kind of output is not for the enterprises grade right now. Matt Stauffer: Got it, so you think in a couple years it might be different, but right now, for someone to do something at your level, you still have to be doing most of the work on your own. Lalit Vijay: Yes, yes, yes. Matt Stauffer: Okay, yeah. Yeah, I've definitely had that same perception. Alright, let me look at a couple of these other questions, 'cause we're runnin' short on time and I wanna make sure I get everything. If you get a day free, and all the sudden there's no work, and for some reason you can't work, the internet's down at work, whatever, what are you gonna go do with your time? Your favorite thing to do. Lalit Vijay: Okay, so I spend a lot of time while traveling or anything is listening podcast, and reading books. And if not that, then most likely I do not get enough time to spend with my girlfriend, so I do that, yeah. Matt Stauffer: If you don't mind me asking, what would your favorite thing to do with her? If time and money were no constraint, what would you wanna do? Lalit Vijay: Just sitting in a silent place with a mountain with a nice view. Matt Stauffer: Okay, I like that, cool. What are your top five podcasts? Lalit Vijay: Currently, the one which I really love is one, since I'm kind of startup guy, I spend a lot of time on Master of Scales. The other one is Laravel Podcast. So Master of Scale is from Reid Hoffman. Matt Stauffer: Okay, I didn't know he had a podcast. Lalit Vijay: Yeah, yeah, and that's a really nice podcast, especially for the startups. The kind of insights we get is really nice. And now let me just stop into my podcast. Okay, and then this is really nice. You might have heard this, Reply All. Matt Stauffer: Oh yeah, yeah, yeah. Lalit Vijay: Yeah, yeah, I love that, then there is a podcast by a company called Intercom, they have a nice podcast. Matt Stauffer: Yeah, definitely. Lalit Vijay: And then there is called The Knowledge Project, yeah. Matt Stauffer: Okay, I don't know The Knowledge Project, I'll make sure these are all linked in the show notes to everybody. But I can't believe that I didn't know that Masters of Scale existed, I'm just reading through the site and it looks really fascinating. Lalit Vijay: Yeah, it's a really nice podcast. Matt Stauffer: Okay, I think I'm gonna ask you one last question before we're done for the day. And my last question is: is there any either entrepreneur or technological person, or any startup where you say that's who I wanna be like, those are the people I look up to. Whether it's a single human being who's an entrepreneur, or a single human being who's a technologist, or we're at this startup and you say they're doin' it right. I wanna look to them for how to learn how to do it right. Lalit Vijay: I think for me, the kind of two persons to me personally. I take half trait from one person, and half from another, and I really just get inspired by both of them. One is kind of Elon Musk in terms of kind of vision he sets for himself, and another one is Mark Zuckerberg. And for him, the reason for that person is kind of, he know how to be in the business. He know how to beat the competition state out of. You have seen SnapChat, right? Matt Stauffer: Yeah, yeah, no, I get that. Yeah, he definitely knows what he's doing. I've often said, people say well why are they spending that money that way? And I says well you know what, if you've got that much fake money, you know, that's just purely based on your valuation, go do things that are gonna turn into real money. And they made some good decisions there for sure. Okay, so if somebody is super interested in everything you told us about, obviously they're gonna go check out StyleDotMe.com. I'll link it in the show notes if anybody gets lost finding it like I did. But how can they follow you, how can they keep up with you, and is there anything else you wanna plug while we're on the podcast? Lalit Vijay: So for me, I personally love to be on Twitter only. I do not tweet much, but I mostly love seeing how competition do. And the reason I do not tweet much is I really spend really little time on social media, because currently we are in a kind of growth phase of the startup, and we are very, very focused on that, and that's currently like life to us. So a lot of time goes over there. Matt Stauffer: Yep. Lalit Vijay: The next thing, people can follow me LalitVijay on Twitter handle, it's simple, it's LalitVijay. And what I wanted to know is yeah, people do check out Laravel Live India. It's really nice growing community. And if possible, just visit it and give it a try. You will love it, and I'm sure for that. Matt Stauffer: Well that's awesome. Well Lalit, thank you so much for your time, it was a total pleasure gettin' to know you a little bit, and I really do hope that I'm gonna be able to come see you guys there one day. I hear such amazing things about it that I'm lookin' forward to being able to do it one day. And thank you so much for your time today. Lalit Vijay: Sure, thank you so, and I think I will try to get you next year on Laravel Live. Matt Stauffer: Alright, fingers crossed.
An interview with Steve Schoger, designer and creator or co-creator of many online tools like Tailwind and Refactoring UI and Heroicons and Zondicons. Refactoring UI book Refactoring UI website @SteveSchoger on Twitter Transcription sponsored by Larajobs Editing sponsored by Tighten Matt Stauffer: Welcome back to the Laravel podcast season three. Today, I'm going to be talking to Steve Schoger, co-creator of Refactoring UI and about 10,000 other products you probably already use. Matt Stauffer: Stay tuned. Matt Stauffer: All right, welcome back to Laravel podcast season three. It has been a minute. It's been a couple months since the last one, and we're going to roll up, finish up season three. And I let you all vote on who you wanted to hear from. So, we got three people who were at the end. And the first one is Steve Schoger, designer extraordinaire, Twitter fame, making books, and making dollars. Matt Stauffer: And Steve and I have known each other for a while. We work together at Titan for a while. I've also learned a lot about design from him. So, I'm really excited to hear not about Steve the designer quite so much, but about Steve the person. Matt Stauffer: So, first of all, Steve, the first thing I always ask everybody is first of all say hi to people, and then second of all, if you're meeting somebody in the grocery store and they ask what do you do? How do you answer that question of them? So, let's get started with that. Steve Schoger: Yeah. Sure. I usually introduce myself as my formal title. I usually say UI graphic designer. Even that's weird, because depending on where you work, my job title might be different. It's either UI graphic designer, visual designer, but I usually say like, yeah UI designer. And usually they have a clueless look on their face. I usually say I design websites. Is the easy answer. Matt Stauffer: It feels like it's a little bit of a lame answer. I say the same thing all the time. I'm like, "I make websites." Steve Schoger: I know [crosstalk 00:01:48] get all technical, but they won't get it. Matt Stauffer: Exactly. Steve Schoger: And then some people are just completely like, if I'm talking to someone older, they'll be like, "Oh, so you design books?" I'm just like, "Yeah, I do." Matt Stauffer: It's easier to say yeah and move on and by your tomatoes than actually have to answer it. Steve Schoger: Yeah this conversations over. Matt Stauffer: Yeah. My go to for a while has been I make websites, and I'm getting more and more dissatisfied with it, because I did it for a good reason. It's hard to have that conversation with those people, but then everyone's like, "oh, can you make my website for my Mom and Pop Sausage Shop." Or something like that in WordPress. And I'm like, "No. No, I'm sorry." I know some people who make websites. So, now I'm like, "I make web applications." I don't know anyway. Matt Stauffer: So, okay. So, you are right now coming off the heels of a successful launch of Refactoring UI and everybody in the entire internet heard about this thing and it's super exciting, but just a couple years ago, you were working a nine-to-five, and you had not achieved the level of Twitter fame. So, we're going to walk through that process. But before we go there, I want to learn a little bit about who makes the man who we know today. Matt Stauffer: So, where are you from originally? And when did you first get into design? Even in the earliest stages. Whether it was drawing on your wallet at age three or whatever. What are the steps you can remember that really got you to the point where you realized that design or art or creativity in general were things you might be interested in long-term? Steve Schoger: Yeah. So, to your first question. I'm from Ontario, Canada, and I'm from a city called Kitchner. Which is about a hundred kilometers outside of Toronto. And it's a population of 200,000, is the city of Kitchener, but it's this Tri-City thing. There's three cities next to each other to make one big city, which is about about half a million people. And I actually grew up on a small town outside of ... that's the city I live in now, which is Kitchener, which is a city, a small town of 200, 300 people. Matt Stauffer: Wow. Steve Schoger: Yeah and and I started getting into design, I guess, when ... kinda what you said, I started drawing when I was a little kid. I guess, my mom put this miniature horse in front of me when I was ... I can't even recall this, it was like when I was a baby almost and I'd draw it, but I could ... she acknowledged that I could draw depth. You know when people draw a horse or something, they draw a stick figure or something, but I actually drew the depth of it. Matt Stauffer: The angle of it. Steve Schoger: Yeah, exactly. And she saw, "Okay. There's Talent here." And, I guess, that's the earliest form of what I do. So, I've always been into art and when I was younger, I wanted to be an animator/ I'd watch a lot of cartoons cool stuff. And I didn't really ... when I was younger, the job I have now was not even a job. So, I never designed on the computers until I got to like ... Actually, the first time I used Photoshop was my first day of college. Matt Stauffer: Okay. Steve Schoger: Yeah. So, I'd be doing art and stuff and I'd take graphic design courses in high school, but they're not computer based graphic design. It's school, low-budget, you're working with pen and paper, and you're drawing letters and stuff. Matt Stauffer: Using rulers and all that stuff. Steve Schoger: Yeah, exactly. Matt Stauffer: Now, what was that, because your teacher said, "Oh, there's all this newfangled stuff. But we want you to know the basics." Or was it not even in the context of the newfangled stuff and they just said this is what graphic design is? Steve Schoger: Yeah. I mean, I didn't really ... I guess, that's what I thought graphic design was, and then when I got to college then I started using Photoshop, and everyone around me in the classroom got a handle on Photoshop. They already knew their way around a little bit, but the course I took, it wasn't graphic design. It was multimedia design production. So, that's everything from graphic design to to video, to a little bit of development, to even a little bit of music production, because I didn't know I wanted to do graphic design. So, I took a ... but I knew I wanted to do something in media. Matt Stauffer: Okay. So, when you went up to college, you just said, "I want to do something media-related." And you were still trying to figure out what exactly, so you just tried a lot of different classes or? Steve Schoger: Well, it was a course called multimedia design and production. All those things I just said. And yeah, I just wanted to get my hands wet with everything, and figure it out from there. I didn't know what I wanted to do when I went to college. I didn't know what I wanted my career to be, let's put it that way. Matt Stauffer: But you did have a sense that it was going to be creative and you were going to making ... So, basically was that class the full spectrum of potential careers you were thinking of that point? Steve Schoger: Yeah. Matt Stauffer: Okay it was a perfect all-in-one experience on all them. Did you come out of that class then knowing graphic design is it? Or did it still take some time to figure it out? Steve Schoger: No, no, because like, I guess, in high school, I wanted to be a rock star in high school. Matt Stauffer: Yeah. Tell me more about this. Let's pause college. Tell me more about this. Steve Schoger: Yeah, I play guitar. I picked up a Guitar when I was grade eight. So when I was 12, I guess. And I got really into it, I'd spend four hours a day. I'd come home from high school and play guitar until I went to bed. Matt Stauffer: That's amazing. All-electric or were you an acoustic as well? Steve Schoger: I started on acoustic. The way I got a guitar is my great grandma passed away and it was my inheritance. Matt Stauffer: Okay. Steve Schoger: She didn't have the guitar, but the inheritance money went towards a guitar. So, I started playing acoustic and then I always wanted an electric guitar. So, I picked one up maybe first year of high school or something like that. And that's all I did. And I played in the high school bands and stuff. I played bass guitar in the high school band and stuff. Steve Schoger: And, I mean, that was just an unrealistic dream. But when you're in high school you're just, "I'm gonna make it. I'll be ..."- Matt Stauffer: So, when you were in high school, you legitimately were interested enough in that dream that you thought, "I'm going to graduate from high school and I'm going to join a band or start a band. And I'm going to tour the world, and that's where my money's going to come from."? Steve Schoger: Yes. That's what I believed. Matt Stauffer: Because some people say that ... is kinda like the side dream. That was the dream. So, what dissuaded you from that dream? Steve Schoger: Well, my parents. They were like, "Well, you should consider going to school first, then maybe think about doing that." Matt Stauffer: Okay. Yeah. Yeah. So, they were and trying to weave them together a little. Steve Schoger: Yeah. So, even when I was in multimedia design, I still had this music industry dream in mind. So, I did the multimedia course. I graduated from that, finished it, and then there was this music industry arts program at the same college. I went to Fanshawe College in London, Ontario. And it was really hard to get into it. But I applied for it anyway, right after I graduated from multimedia, and they accepted me. So, and I'm thinking, "Well, I might not be a rock star, but I'd love to be in the music industry right? I'd love to show you music production." Steve Schoger: So, that course covered everything from music business, to just being in the studio and recording artists, and all that stuff . Still an unrealistic dream. Look at the music industry now, right? But I took that course and, I mean, that's still my hobby today. So, I don't regret taking that course. I learned a lot out of that course, but then when I finished that program, I was interning at small record labels. And they all saw the multimedia design on my resume, and that's what I ended up doing at those labels, right? I end up doing a lot of web stuff. A lot of designing little brochures and one sheets. A lot of stuff like that. Steve Schoger: So, I was doing that more and more, and I kinda enjoyed it at this point. Because I was kinda doing it for something I really enjoy doing. But I wasn't getting paid, it was all internships and stuff. Matt Stauffer: Oh. Got it. Steve Schoger: Right. And then I'm like, "Well, I got to get a job in this,." And I tried to follow my music industry path, but there was no money in it. So, I'm like, "Well, I just enjoy doing this anyway." So, this is in like 2009. So, right at the peak of the recession. It was impossible for me to get a job. I couldn't get a job anywhere, right? Steve Schoger: So, I'm thinking "Well, not a bad time for me to go back to school." And I already took multimedia, and I'm thinking "Well, what can leverage all these skills?" What can add to this? And I was thinking, maybe I'll take a look at marketing course or some kind of copywriting course. So, I took advertising and copy writing at Humber College. Steve Schoger: But, when I was in school, in that course, I spent way more time working ... I was making ads, and again in the course, I was making fake ads, right? But I spent way more time working on the creative, than actually the writing the copy. And that year I also spent a lot of time just learning web development. And I learned a little bit of this when I took multimedia, but I forgot everything I learned. So, I was real learning that stuff. And it was easy to pick up again. Matt Stauffer: Real quick. What were you learning? Was it mainly HTML and CSS? Steve Schoger: Html and CSS. Matt Stauffer: [crosstalk 00:11:20] did you get into a CMS or anything like that, or not at that point? Steve Schoger: Yeah, I learned about ... I knew about WordPress and stuff. But even that was ... it was a little too technical for me at that point too, because WordPress you can use the templates, but I really wanted to make something unique. WordPress is always just like, you got the header, the content area, and the sidebar. Ad I didn't want that. I don't want that constraint. So, I just started hand coding, and I learned about a few other CMS's at the time. I don't even know what they were called if you asked. But I tried them out, and I found one that worked for me, and I built a little blog for myself, and I would never write, at all. But that's everyone who starts a Blog and has the attention of write a post every week. And some people succeed at it and I did not. Matt Stauffer: I'm there with you buddy. Steve Schoger: Yeah. Steve Schoger: So, I was doing that. And then during this time in school, maybe in the second semester, it was a one year program, like a post grad program. And I took, in the second semester of that, I spent a lot of time ... I realized I wanted to do web design, at this point. And if I found a job before I finished school, I would have just dropped out of school, because I already had two diplomas at this point. So, it wouldn't phase me to drop out. But I couldn't find a job, but I was doing informational interviews, where I would contact the company and say "I'm not looking for a job. I just want to learn what you guys do day-to-day, and learn about the company." And I did a quite a few of those, and it was my way of networking. And you know what? I did do a little bit of like, "Oh this job. This place is hiring a designer. I'm going to ask if they want to do an informational interview." And I did it with a few companies. And one of my informational interviews turn into a job interview and they offered me a job the day later. So, that's how I got my first job. Matt Stauffer: So, tell me about the difference between an informational interview and a job interview when you know they're hiring? Was it, because you didn't think you would have the qualifications or do you think you're more likely to get in for the informational interview? What made you want to do this one type of interview versus just applying for the job? Steve Schoger: Well, if I did an informational interview, it's this ... my sister recommended that I just reach out and ask for informational interviews. And, I guess, I didn't think I was qualified for the job. So, I didn't apply for the job. And I feel like they're more likely going to have me in, if I have no intention of this Matt Stauffer: Ulterior motive. Steve Schoger: Exactly, exactly. Matt Stauffer: So, that's really interesting. Steve Schoger: I recommend anyone, I recommend to everyone does that. If you're a student in school, and you're just maybe not confident enough to go for that first job interview. Just shoot ... most people ... very few people turned me down, for an informational interview. Matt Stauffer: I mean, it makes sense. We've had a few people reach out for that. It seems so unique that I'm like "Yeah. Sure, I'll talk to you for a little bit. We can't always give you a full hour, but we'd love to chat with you a little bit about Titan." So, I hear that. That's really cool. Steve Schoger: Yeah, and I bring my portfolio in, and say "Hey, can you take a look at this and give me some feedback?" Matt Stauffer: I'm a student. I'm still learning and I'd eventually like to work at a company like this. That kind of thing? Steve Schoger: Yeah, exactly. And I was more thinking about, I was going for visual design jobs, but then I was interviewing with companies, and they're looking for UX designers, and I didn't even understand the role at that point. What the difference between a UX designer and a visual designer is. And sometimes I still don't understand the difference. Matt Stauffer: I think most people still don't get it. I still struggle. Steve Schoger: Yeah. Matt Stauffer: Okay. So that was what? 2010, 2011 at that point? Or was it- Steve Schoger: That sounds about right. So, I think, so. Yeah. Matt Stauffer: Were you married yet at that point? Steve Schoger: No, but I was dating my now wife at the time. I met her in high school. And she's my high school heartthrob, and she rejected me in high school. Matt Stauffer: Oh snap. Steve Schoger: Well, she liked me. She later confessed that she liked me, but friends and influence from that. Kind of like, "Oh no, he's gross." Matt Stauffer: He's a rock star, you don't want to be with that kind of a guy. Steve Schoger: Yeah, but then later on we connected after I graduated from Fanshawe. We were talking on MSN at the time. MSN messenger. And that's how we really started to get to know each other, and then she came to visit me a few times, then we started dating. And then I sat a year off between when I graduated from Fanshawe and Humber, and that's when I really, I also spent that year figuring out what I wanted to do, working on my web design skills. And I was just getting to know my now wife at the time. And then we moved into together when I moved to Toronto. Matt Stauffer: Okay. So, during those years in between, when you weren't in school, the reason I asked about her, I mean, first of all, I'm always curious, but also, were you living alone, working just side jobs while you figured this all out? Or what was your life situation during that time? Steve Schoger: The years between- Matt Stauffer: So, basically you got a you got a job in 2010. We're about to talk about what, I think, was the first design job that you got. So, prior to 2010, where you in school the whole time, or where there any years in there where you were - Steve Schoger: [crosstalk 00:16:52] going back and forth here, because I'm stressing out and forgetting things. There was that year between Fanshawe and Humber. And that was me just getting more familiar with Photoshop again, because I haven't touched it in a long time, getting more familiar with code. And I was living with her, but not living with her. She was still a student. And I was just living at her place. Like, I was still living with my parents, but I was just always over at her place. I brought my computer over there and we just pretty much lived together. Matt Stauffer: Were you doing freelance work at this point or? Steve Schoger: No, I was [crosstalk 00:17:26] I was just learning. I took one job that I just was not qualified to do. And I started doing it and I'm like "I can't do this." And I had to say like, "Yeah, I'm not ... sorry." Because you ... I think, the best way to like ... you just got to try, right? That's how I am with ... maybe this is a conversation for later on, but- Matt Stauffer: No no, lets do it. Steve Schoger: That's how I am with speaking. I am really uncomfortable doing public speaking, but I just force myself to do it, and now I'm doing a lot of talks this year, and I regret are doing every one of them, but it's like, "Well, I gotta do them." And I put myself in that situation, but it's like ... anyways. Steve Schoger: So, yeah. I was just working on my craft, I guess, in the in that time, right? With my girlfriend. And that's how I ... and I just bring a lot of blog posts, learning how to design. Matt Stauffer: So, in 2010, you got your first job, and it came out of an information interview. So, a couple questions around there. What was your actual job supposed to be? And at that point where you primarily thinking of yourself as a UI visual designer? Had you started thinking about any of the other aspects of design that you do today? Because today obviously you're doing interface design, but there's a lot of UX embedded in the stuff that you're working on as well. So, how did you think of yourself then? And what was the actual job that you got? Steve Schoger: So, the formal title of the role, and this is goes back to different places have different titles, but the formal title was "interactive designer." And that could be the same as UI designer at our company, visual designer at another company. So, the work I was doing there was more like ... it wasn't so much software design, which I mostly focus on now. It was more like doing websites. And just doing the creative, mostly. Matt Stauffer: So, you'd basically be the one who says "Hey, we're working for Joe's Plumbing. Here's the font that Joe likes." And you'd put together Photoshop documents. Would you also convert them or are you mainly delivering fat Photoshop documents to web developers, and then moving on? Steve Schoger: Yeah. I remember when ... So, going back to the informational interview I had. The moment it turned into a job interview, there's that transition in that part, and I got all excited. He asked if I code. And I knew a little bit of code. I coded enough to build my own personal website, and that's all he wanted to know. He saw my website. He saw that it's probably not the best code, but he made it. And and I didn't need to code for the job. But he liked that I coded, because it just made it easier to communicate my ideas to the developer. Matt Stauffer: And probably also, because you understood the constraints that the developers are under. One of the things I said, when we first started working with you one, of the reasons that we were excited to work with you, and we'll get to here eventually is, because you were a designer who understood that for example, you can't deliver something with an image that would theoretically have to go wider than the browser, but you didn't give us what the image should look when it goes wider than the browser, right? Like when the browser gets a little wider. It's so clear what it's like working with a print designer, who doesn't understand ... not even responsiveness necessarily, but just like, you literally can't curve a thing that way in HTML. It's literally not possible. Matt Stauffer: As someone who understands what it's like to implement something, your brain was set in a different space, I think. Steve Schoger: Yeah, I think so, because everything was print design back then. There was no responsive design. Yeah, that's for sure. And everything was ... even if you wanted to use a custom font, you embedded it as an image. So, I was a big font guy. I didn't like using just the web defaults. So, I always searched for new fonts, and I'd export that as an image. Steve Schoger: So, I did a lot of the exporting stuff. and, but then yeah, I'd usually hand that off to the front end developer. And I was, when I was working there, I was the only designer at the company. It was a small company. I think, there's eight or ten of us in total. Matt Stauffer: Was it a consultancy? That just took client work and did a design- Steve Schoger: Exactly. Matt Stauffer: Built the front end, maybe integrated CMS, deliver it, move on to the next client? Steve Schoger: Yeah, and they specialized ... they worked with a lot of media companies. So, television production companies, and I think, that was just as a result of ... they worked with one, and word of mouth and ... Matt Stauffer: Its who you know. Steve Schoger: It often works that way. Steve Schoger: Yeah. So, I was doing a lot of that stuff. Matt Stauffer: Okay. So, what was your next transition after that? I mean, did you stay at that job for a couple years and regardless, what made you want to move to something Different? Steve Schoger: Yeah. So, I was working in downtown Toronto at this point, at this company. And I worked there for two years, I think. And it was good. I liked being in a small company, but there's also part of me, "It's my first job. What else is out?" So, I was curious, and I interviewed at other companies, but then we also wanted to move back to our hometown, Kitchener, because Toronto is so expensive. By the way, I wish we bought a house in Toronto at that time, because it was- Matt Stauffer: Because now it's so different. Steve Schoger: We could have sold our house then and had no mortgage whatsoever and moved back here. But whatever. Matt Stauffer: [crosstalk 00:23:14] you could predict the future. Steve Schoger: Yeah, right. Steve Schoger: But I wanted to move back to Kitchener, Waterloo. First of all, Kitchener had this ... we have a little bit of a tech scene here. Blackberry, you know Blackberry? They put our name on the map, our city on the map. And we have at the University of Waterloo. So, a lot of trucks, a lot of engineering talent. And this created this little tech community. And I saw this from Toronto, and I was really interesting in it. But there was no design whatsoever. It was all engineers, right? And I'm thinking "I could have a huge competitive advantage if I go there. There's no designers whatsoever." And there was a company ... So, I was interviewing at a company called "Desire to learn." And they're an educational company. Matt Stauffer: I feel like I know somebody else who worked there, or did you- Steve Schoger: [crosstalk 00:24:19] it might be me. Matt Stauffer: Oh okay. Sorry. Keep going. Steve Schoger: And are you familiar with Blackboard? Matt Stauffer: Yeah. Yeah. Yeah Steve Schoger: The same kind of- Matt Stauffer: Can you give a real quick intro to anybody who hasn't heard before though? Steve Schoger: Yeah. It's e-learning software. When you go to school, it's your login portal, and that's where you can get your grades and your assignments and all that stuff. And I even used Desire to Learn when I was at Fanshawe. That was one of their first clients. And I had a friend working there and I was really interested in the company, but they never had any design either. I was their very first visual designer. Steve Schoger: But, to step back a little bit. My friend recommended I apply for this job. So, I applied for it. But at the same time, the company I was working at, we had a really low time, it was not good. And right when I got offered the job, the day later, my boss, before I even got to go into his office and say "I'm quitting." He basically said I gotta lay everyone off. We're closing the doors. Matt Stauffer: Wow. Steve Schoger: So, it was like the same day. I'm like, "Wow. Perfect." Matt Stauffer: Talk about timing. Geez. Steve Schoger: So, I had a little tweak break there, before I started my new job, because I basically I said "I have to put my two weeks notice in." Matt Stauffer: And then turns out you didn't. Steve Schoger: I think, I had a week. We were still wrapping things up and I had nothing to do. Matt Stauffer: Okay. So, you moved back, because you said Desire to Learn was in Kitchener. Steve Schoger: Yeah, moved back to Kitchener. But my wife was still working in Toronto. So, there's a little bit of ... I moved him back in with my parents that summer, is when I moved in. And Caitlin was still in Toronto, living at the place we were renting out. Steve Schoger: So, the summer we were living a little bit long distance, but I mean, we were an hour away from each other. So, I saw her on weekends and stuff. And she was interviewing locally at that time. And I started my job as Desire to Learn. And like I said, I was the first designer there, and UX was such a buzzword at this time. No company understood. They're like we need to invest in UX, but no one knew what it meant. And I worked at that company for two years. And in the two years I was there, I don't think anything I actually did saw the light of day. It was one of those situations. And it maybe has since I've left right? I've made these projects and they were sitting there, and you could work on them. But yeah. Matt Stauffer: That's tough. Steve Schoger: And right when I was leaving, they hired a ... I think, they have a good design team, now. They grew their design team since I have left them. Matt Stauffer: So, is that why you left? Because you just felt what you were doing wasn't actually- Steve Schoger: I was getting burnt out. And I was really passionate about what I was working on. Where I took my work home with me. And it was so frustrating to not have any of my work see the light of day. So, that just burnt me out. And plus, other factors were going on in my life where, we were renovating our house. And I'm not sure if you've been through a process like that, but never again. Matt Stauffer: It's definitely a second job. And it's a second, more stressful job. Steve Schoger: Yeah. So, it's just all these stressful things in my life, to the point where "Man, let's just get out of this city and let's go move to California." And I even went for a job interview in California. They flew me down and stuff, and that was kinda fun. And I didn't get the job. I think, the reason I applied for the job was because I was just depressed, and I just wanted something to change in my life. Matt Stauffer: Maybe some change will make everything better. Yeah. Steve Schoger: Yeah, right? But once I left my job at Desire to Learn, and the house was done, we finished renovating the house, everything settled down, and I felt good I didn't make that decision. Steve Schoger: So, when I left Desire to Learn, I went to an insurance company, a local insurance, well not a local, it's a Canadian insurance company. Well, do you guys have Sun Life in the states? Sun Life? Matt Stauffer: Sounds familiar, but I'm not sure. Steve Schoger: Maybe, because I've talked about it. Matt Stauffer: Probably. Steve Schoger: Yeah. So, it's an insurance company. And it's just a huge company, a huge Canadian company, thousands, tens of thousands of employees. Matt Stauffer: Are they based out of Kitchner as well? Steve Schoger: We have an office kitchener ... I say we as if I still work there. There's an office of Kitchner. I don't even know where the head office is. In Toronto, maybe. But there's offices all over Canada. Matt Stauffer: Got it. Okay. Steve Schoger: And I worked there for two years. And when I started that job, this is when I started freelancing with you guys, Titan. And it was around that same time and it's around the same time I met Adam. And I'm trying to think of a way to tell this story that has this nice, seamless, flow, but I'm trying to remember everything that happened. Matt Stauffer: So, let me let me turn it and maybe this will help you out. So, a lot of us, when we met you and Adam. So, Adam worked at Titan, I think, when I first heard about you. So, he would say "Yeah, I got these buddy that I'm working with, and we do these design things together blah blah blah." So, we just started hearing your name more and more often, and eventually he's like, "Yeah, why don't you guys, consider pulling him in for something?" So, we would and we're like "He's really great." Matt Stauffer: So, we had this idea, especially because, I actually meant to mention this to the listeners that this Kitchner, Waterloo, that whole triangle, is really weird, because there is an excessive amount of technological ... I don't know if I want to say excessive amount of talent, but I don't know. But there's an excessive number of people who do the type of work that I do in that one little space. Matt Stauffer: You're there, and Adams there, and Vehicle's there, and all these other folks are there, and every time we open up a job posting. It's a guaranteed that at least several of the qualified applicants come from this little tiny circle, out of the entire globe. This little tiny circle. Steve Schoger: Well, it's like I said, we do have this tech thing going on here, and I don't want to say it like ... people will say "Well, we're the Silicon Valley of the north." But everyone says we're the new Silicon Valley. But it's like "No, but there definitely is something going on here." Matt Stauffer: And I hear a lot of people say like, "Oh, we've got a nice little tech community." People say that about my local town here. And what they mean is "We have more than nothing." But that's not what it is where you are. There is seriously a lot of people all doing the same stuff there. Matt Stauffer: So, when I start hearing about you, what I figured was, Adam and Steve have known each other since high school, they grew up together, they live down the road from each other, they happen to be very talented, and when I've only learned pretty recently that that's not the case. So, why don't we- Steve Schoger: [crosstalk 00:31:13] no that's not true, yes. Matt Stauffer: Why don't we come at it from the angle of how did you meet Adam in the first place? Steve Schoger: Yeah. Steve Schoger: So, I met Adam, because ... I was always working on a lot of side projects. So, when I was working at Desire to Learn, I'd be working on my ... I'd spend a lot of time working with just startups, helping them out, and just getting my hands dirty, right? And a friend of mine that I went to high school with, his name's Chris Albrecht. And I always wanted to work on projects with him, but he was always busy. He had a kid at this point. He was always doing house renovations. He's one of those guys that's good at everything. He can build a house, and he's a developer, and he's just ... and you want to hate him for it. Matt Stauffer: You don't, because they're also good at being a wonderful person, but you want to hate them a little bit. Steve Schoger: And that's the problem. Yeah, you want to you want to hate him. Good at everything. But then he's just an awesome person, so you can't hate him. So, like "Well, God, man." Steve Schoger: But he took a a software development course at Conestoga College, which is a local college. And that's where I met Adam. And, I think, the two of them were the top of the class. So, Chris talked very highly of him, and he said Adam works on a lot of side projects like I do, I should connect with him. Steve Schoger: And I said, yes sure. And I just sent Adam a message on LinkedIn, and it's funny, I tweeted that recently, the the message I sent to him. It's funny when I re-read it, because I dug it up, and I re-read it. And it's not how I talk to him, at all. It's like, I'm really proper. Matt Stauffer: Yeah, I was gonna ask if it was was really formal. Steve Schoger: Yeah it was a really formal, "Hey, we should connect. I heard a lot of great things about you. I hear you're a good designer, and you're a good developer. It's a really rare combination." And now we just talk like bros. But it was funny reading that and I just said "We should meet up and grab coffee." And I just showed him some of the work I'm doing, and he showed me the stuff he's working on, and I said, "We should work on a project together, just to get a feel for each other and see what it's working with each other, and maybe about can turn into something else." Steve Schoger: And, I think, the very first thing we worked on was, he happened to be working on this Resume Builder app. Matt Stauffer: Yeah. I remember that. Steve Schoger: And I had this idea for a Resume Builder app, and I was designing one, but they're both separate projects. And we're like, "Well, we're working on the same thing. Why don't we build this together?" And we never took it seriously, right? We just wanted to get a feel of what it was like to work with each other. So, we did it, and we got it half done, and that will never see the light of day. Matt Stauffer: Right. That was enough. Steve Schoger: Yeah. Nut I did like working with them. That's what we learned about each other, right? I really like that he's got a really good sense of design, and I have that way of ... we talked about earlier that, I understand a little bit of code. So, I can communicate with him effectively. So, I think, we had that good dynamic that worked well together. Steve Schoger: And, I think, I met him ... I'm not sure if I met him when I was working at Desire to Learn or when I went to Sun Life, but ... no, I met him when I worked at Desire to Learn, because the reason I went to Sun Life, it's like I was going there because, A) it was a pay increase. So, that was nice. But I knew I was going into this big company, that was just a huge bureaucracy. Matt Stauffer: You're a cog. Steve Schoger: I'm going to be miserable there. But I went there, because this is around the same time I was talking to you guys. And I'm like, "Well, I can make this transition into freelance maybe." And you guys were my first starting point there, and what brought me to Sun Life is "Well, I'm going to work my nine to five, and when I get home from work, I'm going to turn that off. And then turning that off and then I can work on freelance projects." And that's what I was doing for you guys. Matt Stauffer: And that's the type of job you want to have, if you're going to start that transition to freelance, is the type of job where you can turn it off at the end of the day. Which, if it were your soul thing, it would be worse, because you want a job you love, but if it's the thing that's helping you transition, you actually want one that you don't love and you don't care about, that goes away. That's really interesting. Steve Schoger: I almost didn't care if I got fired. It's that kind of thing. I didn't want to get fired, because it paid the bills, but it's ... Matt Stauffer: You weren't emotionally or mentally tied to it, other than showing up and doing the things you should do to get the paycheck basically. Steve Schoger: Yeah exactly. Matt Stauffer: Huh. Okay. Steve Schoger: So, this is where you get more familiar with where I come into the picture. Matt Stauffer: Lets pretend like I don't know it. Steve Schoger: So, I'd work on a few projects with you guys, and I was also doing a few projects with Taylor. And, I think, the first thing I did for him was spark. I did the first Spark website. I did the website and I did a logo for him. And, I think, I did that before I started work with you guys, because Adam recommended me to Taylor, and then he recommended me to you guys. Steve Schoger: And I knew nothing about Laravel at this point. I only know about Laravel, because of Adam. Adam got Laravel famous. And I said, "Hey man, I come with you?" Matt Stauffer: Me too. That's hilarious. Matt Stauffer: Yeah. So, I remember that you were doing that transition stuff. When did you leave Sun Life? What was the the moment right? Steve Schoger: Because I was talking ... I did a few you projects with you guys. And then I'm not sure who suggested it first, but we basically had an arrangement. I think, it might have been you who suggested it. It doesn't matter. But you guys wanted a designer, because you never had a designer at your company. And Taylor just wanted an ongoing designer, but neither of you had enough work to fulfill a 40 hour week. Steve Schoger: So, the arrangement was, well, I do one week with Titan, one week with Taylor, and then I'd have an off week to go find any other freelance work. So, we had that arrangement worked out, and then you guys matched my salary at Sun Life. So, it felt easy going into, it was easy to convince my wife it all worked out. Steve Schoger: So, I made that leap. And that's what brought me to that thing, an I've been working with you guys for ... how long have been with you guys for now? Matt Stauffer: Has it been two years with this arrangement? Steve Schoger: It's funny. I've been with ... every job I've had has been two years. Matt Stauffer: That's it. That's your magic number. Steve Schoger: Yeah. Matt Stauffer: Yeah. I think, it's been two years. Because, I think, we did one year, and at the end of the year, we thought about it, and we re-upped it. So, it's probably been two years this way as well. Steve Schoger: Yeah, and, I mean, we're on pause right now, right? And that's ... we're talking about that shortly. Matt Stauffer: [crosstalk 00:38:17] story. Yeah. Steve Schoger: So, I was doing that, and I don't know ... next question, I guess. Matt Stauffer: Yeah. Matt Stauffer: So, I think, that worked really well, and, I think, it was really great for us. I mean, that's a curious business thing that anybody else can ask any of us more about, is that idea where Dan and I since ... Dan and I are both liberal arts Majors, with the design aesthetics, who are programmers. So, we always wanted a designer. From the earliest days of Titan, we wanted a designer, but it was hard for us to really justify at the beginning. Matt Stauffer: So, this was a really cool way to do this transition. And now we have a full-time designer, and have had Steve working with us for a while. But it took us this kind of experience to start building design into our workflows, and our ways of building. So, just anybody who's curious about that, it worked out really, really, really well, for us. Matt Stauffer: But the next part of the story was what you used in that third week. And that third week, was a combination of, I think, finding other clients, but also starting to become not just Laravel famous, but eventually just web development, broad internet famous, and then there's books and stuff like that. Matt Stauffer: So, where were you thinking? What was your approach? What was your attack? What was your mindset? What were the first steps you took to start using that time and start garnering a reputation? Steve Schoger: Yeah, I think, for the first year, I was doing a lot of ... I was just doing ... I was using the time for freelance, and I was finding new freelance clients. And I don't even remember any of the projects I did in that time, even though it was like a year ago, probably. Two years ago. But they're just a little one off things right? Steve Schoger: But it was still ... the tricky part about that thing. It's like, well, I work on a freelance project for a week, but there was more to do after working after that week ... For you and Taylor, we all had this understanding. Well, I'll be back with you in two or three weeks. But when I get a new client, it's like, well, I had to be ... Full disclosure. I have this [inaudible 00:00:28] going on, so I can work with you this week, but I won't be back with you 'til the following week. Steve Schoger: And they had a deadline, so it's like ... Well, I don't know how long I could do this for. I could only pick certain projects that last ... It was hard to find clients that worked that way. Matt Stauffer: [crosstalk 00:00:40] one week or less at any given moment. Steve Schoger: Yeah. So what I spent my time doing is just working on my personal brand, or working on little side projects, and the first project I did was Hero Patterns. That was a website for ... It's SVG background patterns. You can go on heropatterns.com and it's just a bunch of patterns that you can use for a hero background or whatever you want to use it for. I built that just as a fun project. I wanted to learn more about SVG, so that seemed like the right step, and I just wanted to add it to my portfolio and add to my personal brand. Steve Schoger: Then I released a bunch of icon sets. That's what I was doing in that time, just working on free, open-source projects. Matt Stauffer: Yeah. And those took off pretty quick. I remember seeing Hero Patterns, and I think [Zomicons 00:01:40] as well, on things like CSS Tricks. So it was pretty early on that you were releasing these things, and they were getting picked up pretty broadly. Steve Schoger: Yeah. Well, the Laravel community has certainly helped with growing my Twitter following, because it's such ... The whole community is really active on Twitter, first of all. Then I had Taylor and Adam retweeting my stuff and that really helped. Taylor had probably 50,000 followers at the time, so it all helped. I was growing my following there, and then Hero Patterns was getting posted on Product Hunt, and that really helped. Steve Schoger: From there, where does that bring us to? I was doing all these little open-source projects, and then I started doing the tips. Let's move up to that, 'cause I don't know what else ... Oh, I released another little project, Heroicons, which is like SVG icons, marketing icons ... They weren't meant for in-app experiences, but more if you go on a marketing page, and you're showing a features section. You can put the icons there and customize the colors. I thought it was a pretty interesting idea when I made it and it was a fun little thing, and I could make some money off of it. Steve Schoger: I released that and it did okay. I think I made $10,000 in the first few months, over that period. But Adam was launching his books and his courses, and they were doing insanely well. I saw him doing that and I'm thinking, at this point, I think I could maybe do a design book or something like that. I had all these ideas for what a design book could be for developers, and I was sharing these ideas with Adam. He encouraged me to build my following first. Matt Stauffer: Yeah, yeah. Steve Schoger: 'Cause that's what he did and that's what made his launches so successful. He proved that what he was making was worth it. Steve Schoger: I started doing the tips on Twitter to prove that I know what I'm talking about, and I can provide little ... Basically the tips, if you're not familiar with them, they're little bite-sized design tips. Here's a before of something that a developer might design, and here's an after of how you can improve it. It's like, take it, instant improvement, instant gratification, and they've evolved over time. Steve Schoger: The first tips, I was working on a project for you guys, let's say, and I'd take a screenshot of that project I was working on and post it and that was it. Immediately, they started doing well. People started seeing them and they were like, wow, these are pretty useful. Then they just grow and grow and grow. Steve Schoger: The tip idea, by the way, I stole the hot tip idea from Adam, 'cause he was doing hot code tips, and he stole it from Wes Bos, 'cause Wes Bos has been doing it for years. I talked to Wes Bos about that recently, and he said he stole that idea of a tip from someone else. Matt Stauffer: Really? Steve Schoger: Yeah. But he made it his own by adding the fire emoji. Matt Stauffer: Yeah, yeah. Steve Schoger: But now people think I created the fire tip and there's people copying me. It's all great. It all grows from there. Steve Schoger: Then, like I said, I was working on these projects, and I'd maybe work on something and I'd see, well, that's an interesting insight, and I'd take a screenshot of it. But then they became a higher quality thing. Well, in order to communicate this idea, I need to make this own little thing specific for this. Matt Stauffer: Compose the tweet with all the ... You made a little graphic side-by-side with all the bullet points and everything, right? Steve Schoger: Yeah, exactly. So the very first tips that I was doing, I'm just doing them and not thinking of it, and then Adam would bring in a lot of ideas. He'd share his ... This would be a cool tip for you. Matt Stauffer: Sure. Steve Schoger: Then we'd work on it together, and then they became ... with both of us working on them together, the quality went up and up and up. We'd try to make each tip better than the last, so they eventually just did really well. I think the biggest tip I posted got 13,000 likes and 3,000 retweets. Matt Stauffer: Holy crap. I knew they had gotten big but I didn't realize they'd gotten that big. Steve Schoger: That's by far the biggest one. At the beginning, they were getting ... The very first one I ever did, 40 likes. Then from there, it got 100 likes. Then it was 300 likes. I'm like, whoa. That's so big. Now today, it's like I can't post one without getting at least 2,000 likes and 300 retweets. Matt Stauffer: Geez. Go ahead. Steve Schoger: Yeah. They just spread so far. Matt Stauffer: That's awesome. Steve Schoger: The last tip I tweeted, people are hijacking the first comment, 'cause they know ... They see a little fire emoji in the tip, and they're like, first comment. Matt Stauffer: At least it's first comment, and not, do you see this? You should go to my course, blah blah blah. Steve Schoger: No, it was a friend of mine who's just joking, 'cause on the Kanye posts, people try to hijack it with their art. Matt Stauffer: Yeah. That's awesome. I wanted to point out something really quick here. I think one of the reasons that these spread so much is that, first of all, they're really high quality. You really know what you're doing. There's not a lot of people talking about it this way, and they're really easy to digest and apply. So there's one aspect. They're just really good tips, broadly, this is a really good idea. Matt Stauffer: But I think the other piece about this is that your tips ... You mentioned the fact that [inaudible 00:07:38], there was a lot of dev and not a lot of design. We have talked about this for a long time, about the Laravel community and other programming, especially back in programming communities. I have clients all the time that say, yeah, you can tell this was made by a developer, referring to something that they have that they're asking us to fix up. That means something. "You can tell this was made by a developer" means it doesn't look good, it's hard to understand. The information density is bad, the flow is not good. Matt Stauffer: There's this very big issue, with us as developers, knowing how to put stuff on the page, but not really knowing how to make it and such so that it's going to be ... not even just enjoyable, but understandable for the end user to really get the information out in a reasonable, pleasant way. Matt Stauffer: One of the things I love about your tips and a lot of your teaching is I think it reflects the fact that you do understand developers, and you do understand development, and you do know code, and you know enough developers and work with enough developers to know where our shortcomings are. You're not just putting out generic design tweets, but many of these tweets ... not all, but many of them ... are explicitly useful for people without a design background who are put in context, that because we're application developers, we need to build user interfaces. We don't know what you're doing. Matt Stauffer: I feel like a lot of basic design tips people give tend to be relatively useless to developers 'cause it's the same three things you've heard over and over again, but you really narrow in on practical design tips that help application developers. I wanted to point out that that is something I think probably comes intentionally, but also probably comes a little bit because of the specific background you do as a tech-adjacent designer, right? Steve Schoger: Yeah, and I think also, Adam's involvement too is a huge, huge- Matt Stauffer: Sure. Steve Schoger: I'm more or less the face of Refactoring UI, but it's honestly ... Adam and I are doing it ... Basically, the tips are ... From the birth of a tip idea, me and Adam will be ... Adam might point something out to me and say, this is an interesting little insight, and I'll have a sketch file of all my tips. I'll be able to either take a screenshot of something and I'll passively work on it until it best communicates the idea, and me and Adam are going back and forth at this point. Steve Schoger: Then there's the tip launch day, that we decide we're going to post ... That's a two-week process before we get ready to post it. Then me and Adam jump on a call and spend some time figuring out, how do we want to work this? How do we frame it in a way that communicates it? A lot of time gets put into these. Steve Schoger: But, yeah. Certainly, I have that kind of background that helps communicate to developers. But I don't want to discredit Adam whatsoever. Matt Stauffer: I love that. Steve Schoger: He's equally involved in that process, and he's coming with his developer point of view. Like I said, he's got a really good sense of design as well. And to be fair, some of the tips we've posted, I never even thought of them as tips, 'cause I'm so ... I have a designer mindset. Matt Stauffer: Sure, sure. But Adam was able to help you see- Steve Schoger: Yeah, exactly. Some of them ... It's like, one of the tips, for example, is offsetting a box shadow to make it appear like a light's coming from above to make it look more natural, right? Matt Stauffer: Right. Steve Schoger: And he suggested that tip, that was his idea, 'cause I never even thought of it as a tip. I'm like, I just do that. It's just second nature. I don't even think about it when I do it. Doesn't everyone do that? There's quite a few tips like that, where it's like, I never even thought of it as a tip before, as something insightful. Matt Stauffer: That's cool. One of the things that I pointed out to Adam that he does intentionally, but I don't know if everybody recognizes, is that he has a talent for ... We haven't actually said it. This is Adam Wathan, in case anybody happens to listen to this podcast and doesn't know who Adam is, which I kind of doubt. It's Adam Wathan. Matt Stauffer: He has a knack for recognizing what everybody in a particular community doesn't know, and everybody in another community might know, and then bringing the stuff that the other people know into the community where they don't know it. Refactoring to Collections, if you were to sell that book to someone in a community where they use collections pipelines for everything, they'd be like, why would I spend money for this book? But Adam understands how to bridge that information, so part of his talent, I think, is helping bridge the knowledge that you have as a talented designer and a tech-adjacent talented designer who does have a lot to offer. But he's also able to help you bridge that gap into developer mindset. So I love that you brought that point up. Steve Schoger: Yeah, I think that's very accurate. Adam's probably the best teacher I know. Him and Jeffrey Way are the really good teachers. Adam's probably one of the smartest people I know, and him and my other friend are the smartest people, I know, but the other guy that I'm speaking of is ... He was almost an astronaut. So that's who I compare Adam to. They're both completely different. He couldn't do what Adam does and Adam couldn't do what he does. Matt Stauffer: Well, you mentioned Refactoring UI. That's a perfect segue. So, hot tips was a big thing, and then you and Adam decided you guys were going to make Refactoring UI together. A lot of people have questions about that, you did just launch it. Before we talk about how it started, what did it end up being? If somebody's never gone, what is Refactoring UI right now that they can go purchase? Steve Schoger: Yeah. Refactoring UI is sort of a package. It was pitched as a book, but that takes all of the ... pitched it as a book to help developers get good at design. But we made this whole package, this whole resource for developers to help them make their designs better. So there's the book aspect, and that's probably the main component that everyone's familiar with. But then with that, we provide color palettes. So a big problem with developers is they don't know how to choose colors, so we just provide a bunch of color palettes for them. We provide a bunch of font recommendations, and there's an icon set. So it's this big package that you can go pick up. Matt Stauffer: Yeah. That totally makes sense, and it's good to know it's not just a book, 'cause I think that you guys said, what's the best way we can teach this? It's not just book, it's also resources that help you do the thing. And there's videos too, right? I think you mentioned that. Steve Schoger: Yeah, I didn't mention that. There's videos in the package. The videos are taking the ideas that are introduced in the book and applying them to a real-world example. Matt Stauffer: You tweeted out a couple of those, so if somebody wants to get a sample, they can see what that's like. I think you tweeted some. Steve Schoger: Yeah, there is a one video available you can watch. We emailed it out to the mailing list, so you can sign up and you can get that. You can also check out, if you're interested in that kind of thing, I also have a YouTube channel where I do UI breakdowns, and that's all part of it. Matt Stauffer: Okay. So we now know what it ended up being. And it just launched ... Right now, it's January 11, and it just launched a couple weeks ago- Steve Schoger: A month ago, December 11. Matt Stauffer: Okay, there you go. Steve Schoger: There you go. Matt Stauffer: When did it start, if you remember, and what were you originally thinking? Steve Schoger: Yeah. Like I said, I saw Adam get successful with all his courses and stuff, and I'm thinking, well, I could maybe do that with design for developers. So the original idea was, I was going to write a book. But I was bouncing my ideas back and forth with Adam, and it just made sense to get him involved in the project. And I think this was even before I started doing tips, I thought I was going to write a book. It only made sense to get him involved and make it a 50/50 partnership, 'cause he can bring his developer frame of mind to it, and to articulate the ideas that have much better than I could. Matt Stauffer: Yeah. At that point it was still a book. What thinking process did you guys go to when you were starting to write this book that made you realize it needed to be more than just that? Steve Schoger: Right. I think when we started working on the book, there was a few ideas in the book that ... It was too difficult to communicate in the way we were writing it, the style of writing it was. And there was a few ideas we wanted to communicate that just couldn't be communicated that way. That's when we realized we needed to make some videos attached to it. There's a few insights in the videos that you can't necessarily find in the book, 'cause maybe it's a little more hand-wavy. We like to make the book very- Matt Stauffer: Very concrete? Steve Schoger: Yeah, very concrete, where in the video, there's a few more ideas that are a little more hand-wavy. Matt Stauffer: What was the hardest part about writing this book, about this whole process for you? Steve Schoger: Making the book was a roller coaster of emotions. Matt Stauffer: Oh, yeah? Steve Schoger: Well, you've been through this, right? I think early on, we had all these ideas of what the book was going to be. We spent so much time planning, and not enough just doing it. What we realized is that we should've just started doing it and let it just unfold, right? Matt Stauffer: Right. Steve Schoger: What was the hardest part? The book is more or less a picture book. There's more pictures than there are words. I made about 300 images for the book. Matt Stauffer: Wow. Steve Schoger: And they're not just ... A lot of books will just take a real-world example, take a screenshot of it, and put it in their book. We had really specific points we wanted to communicate, so we thought the best way to do it is design a little UI for it. One of my goals with the images was to make it so ... First of all, I might design an entire UI just to communicate how to do a drop shadow. I thought it'd be cool if every image in the book is something you can go ahead and create yourself, challenge yourself to create that image in the book. And I wanted there to be a little bit of hidden gems within all the images. Steve Schoger: So it's like, oh, we're teaching you how to do a drop shadow here, or a box shadow, but I noticed in this little UI example, you had this, and I never would've thought to do that on my own. So there's a whole bunch of little hidden gems like that in images. That took a long time. Steve Schoger: The way we delegated work with the book was Adam wrote all the words. We worked on all the concepts together to figure out how we communicate these ideas, and Adam wrote all the words, and I did all the images. Matt Stauffer: Got it. Steve Schoger: Some chapters will be like ... There's 200 words, but then nine complex images. So I just couldn't do any of the writing with the amount of time I was spending on the images. Matt Stauffer: For sure. What you're saying is you did all the work and Adam just mailed it in, right? Steve Schoger: Yeah, exactly. Matt Stauffer: I'm just kidding, I'm just kidding. Steve Schoger: No, no. I couldn't have done it without ... Like I said, Adam is far better at articulating these concepts than I could've ever done. If I wrote the book myself, it would've been ... I don't want to say a failure, but it wouldn't be near as good. Matt Stauffer: Yeah. And I want to attest to the fact that I know both of these guys relatively well at this point, and they basically disappeared off the face of the planet for weeks at the end there, because they were both putting in such long days. Tell me a little bit about that time for you. Steve Schoger: Yeah. Just for the listeners, I had my thing, gig with you and Taylor, and I think I sent you guys a note at the end of September, maybe? Matt Stauffer: I think so, yeah. Steve Schoger: Is that about right? And Adam and I were passively working on the book at this point, but we realized it needed a full-time commitment. So I sent you guys a note saying, hey, I know you guys knew we were working on this book. We were getting towards ... gearing up launching this. So I sent you guys a note saying, hey, do you mind if I go on a leave, and you guys were fully understanding about it, and that was awesome. I feel like I'm in debt to you guys for that. Matt Stauffer: No, dude. Not at all. Steve Schoger: Then that was in September, and we already had a launch date in our head. We wanted to get it done before the new year. We already announced that we were going to get it launched by fall 2018, right? Matt Stauffer: Right. Steve Schoger: And then I just worked on ... We worked on the book for three months there. There was a break in between where we were both ... And you were there too ... invited to speak at Laracon Australia. Matt Stauffer: Yeah. Steve Schoger: Both Adam and I made a bit of a family vacation out of that too. We spoke at the conference, but it's like, well, going to Australia is a once in a lifetime opportunity, and our wives want to come, so we brought our whole family along. Matt Stauffer: I got to meet your families and I loved it. Steve Schoger: Yeah. That was a two-week break we had in there. Then when we got home, we realized ... We wanted to launch it at the end of November. That was the original goal. But we got back from Australia, we were like, that is impossible. There's no way to get this amount of work done in that amount of time, so we pushed it back a bit. We didn't actually have a date in mind, but we were thinking, we've gotta get it done before the new year, because if we don't get it done by ... If we didn't get it done in the week we got it done, then we probably would've postponed it to the new year. Matt Stauffer: Yeah, 'cause it was just too close to Christmas and everything's too crazy around then. Steve Schoger: Exactly, exactly. Even at the time we launched, it was a little bit ... I don't know. Yeah. And we were just ... Like you were saying, we disappeared, especially in the last week. That was ... I didn't sleep for three nights, the last three days before the launch. I was up for 72 hours. I got maybe two hours of sleep in that period. Matt Stauffer: Yeah. I saw you at the end of that period. Steve Schoger: Yeah. Matt Stauffer: [crosstalk 00:21:09] Steve Schoger: No, and I was just neglecting my family. My wife was incredible about it. She even said, hey. Would it be helpful if I go sleep at my parents' for the next few nights, just to get out of the house, and you have time to yourself? Matt Stauffer: Wow. Steve Schoger: She was incredible for that. Yeah. That was just ... I was trying to stay active on Twitter, 'cause I needed to keep promoting the book and make it look like I was still alive. But, yeah. Matt Stauffer: Because we're pretty short on time, I try to keep these under an hour and we're going to go a little bit over, I want to ask you a lot more questions, but I want to at least push on this one thing. What did it feel like to put out your first big product, and what were you doing after the launch? Now that it's been a couple weeks, how do you reflect on that experience about having done it, about the launch day ... Does this make you want to go do something like this again, or do you say never again? How do you feel about it right now? Steve Schoger: I don't think I'll ever work on a book again, for sure. But I'm all down for working on projects like this again, big product launches. They're fun. Steve Schoger: I know when Adam did his Refactoring to Collections book, it was like, he was working on that in the evenings and stuff while he was working for you guys, then he had this unexpected huge
Six-Eyed Code Reviews, a snippet from Matt Stauffer's talk at Laracon Australia 2018.
An interview with Abed Halawi, Laracon EU speaker and Tech Lead at Vinelab Abed on twitter Abed's talk at Laracon EU 2016, "The lucid architecture for building scalable applications" VineLab Neo4j NeoEloquent Beirut Transcription sponsored by Larajobs Editing sponsored by Tighten Matt Stauffer: (music) Hi- Abed Halawi: Abed. Matt Stauffer: Abed, hello. All right, ah dang it. Welcome back to Laravel podcast, season three where I mispronounce everybody's names. Today I'm talking to Abed Halawi. I think that's right. He did lots of great packages and stuff, you'll learn more soon, okay bye. (music) All right, welcome back to another episode of Laravel podcast, season three where I mispronounce people's names. I actually got it wrong right before the intro, but then he corrected me. So it's, so the syllable its the emphasis on the wrong syllable. I'm talking to Abed Halawi. And I'm going to let him introduce himself, where he's from and I tell you guys all this every single time when I do this, but I'd like to switch it up between people that you have heard of before. You know, you know an Adam and you know a Taylor and you know whatever. And people who, within certain communities they're well known. They made an amazing package, they're a strong community leader or something, but the whole rest of the world might not know about them. So, the guy I'm talking to today, is a little more in that second one. So I want him to tell us a real quick bit about so who are you? Where do you live? Where do you work? And what are a few things that you are known for in your world? Abed Halawi: All right, so you got my name almost right, this time. Matt Stauffer: All most, I'll take it. Abed Halawi: It's Abed Halawi, in our language. In English usually it's Abed Halawi, so the emphasis is on the middle of that- Matt Stauffer: Wait so when you say it, the emphasis is on the last syllable of your last name, Halawi. Not Halawi. Abed Halawi: Yeah. Matt Stauffer: Oh, okay. Abed Halawi: Yeah. Matt Stauffer: All right, I'm getting there. Sorry, go ahead. Abed Halawi: So, I live in Beirut. I was born here and always been here. I currently work here as well at a company called Vinelab. What we do is, focus on the influencer marketing, building a SAS platform to provide influencer marketing to brands. Basically our website says it all, so if you'd like to know more about that, go to vinelab.com and that will tell you everything about that. So I'm here because mainly about the Lucid Architecture which was first introduced in Laracon EU. The Lucid Architecture is about a collection of experiences that we went through, and we thought that certain ways would improve the ways we work together as a team. We thought that, well actually this is something very interesting and could help others solve their problems as well. The same problems that we've had and solved our way. So maybe our way could help others solve theirs as well. That's one thing, and the other thing is Neo Eloquent, which is the package for Eloquent, and Neo4j. Neo4j is the graph database, and we use that library as the core storage library in our products, with which we bridge between Laravel project and graph databases. Matt Stauffer: So, there's a couple things you said there. If anybody was at Laracon EU, you would have seen Abed give his talk, was it two years ago? 2017? Or that was one year ago I guess- Abed Halawi: Yes. Matt Stauffer: ... that and math is hard. But also make sure I put a link to that in the show notes. So you mentioned that and also you mentioned he maintains and created a package called Neo Eloquent which is kind of an Eloquent style wrap around types of Neo4j. If you ever heard anybody talk about graph databases, it's one of those things where, "Oh my gosh, graph databases are the new hotness." But I think a lot of people don't actually have a lot of experience working with them. Real quick, before we get into your back story, I'd love for you to give me a tiny little pitch on each of those. I don't know if you're familiar with the phrase elevator pitch, but it basically means, imagine you have 30 seconds on an elevator ride to convince a potential user, or founder or funder or something like that, of why your thing's great. Can you give me the elevator pitch, the 30 second pitch on Lucid Architecture, why is it different, what does it help you with? And then I want to get the same one for Neo4j and graph databases. Abed Halawi: All right, no pressure. Matt Stauffer: None at all. Abed Halawi: Okay, so Lucid, it's about eliminating legacy projects completely. You would never have to move to a project that you've worked on three years ago, and say where does this go? Where is this piece of code that I'm looking for? Where do I find this happening? How is this feature implemented? What's the structure of the code? All of these are eliminated with the Lucid Architecture, which basically takes over from where MVC leaves off. Matt Stauffer: What's the one biggest difference with how Lucid Architecture organizes its code relative to your normal MVC project? Abed Halawi: It compliments MVC projects. So it's not a replacement MVC, but basically with MVC, and the controller, you almost have everything. This is where things get a little confusing in controllers, I mean, if you have a project A and you have a project B to each by a different separate team, in the controller if you go there you will find things written differently. And this is where Lucid comes in. What Lucid says that each controller method, only has one line, only. This line is to serve a specific feature. A feature, specifically, is a class by itself. And within that feature, you would define the sequence of steps that accomplishes this feature and we call them in Lucid, jobs. So as each step in the feature is a job, and each job does only one things and is responsible for performing one thing only. You can share jobs between different features, but each job can do only one thing. And each feature serves one user story from the controller. That way you can achieve what we always dream about achieving with MVC, which is the thinnest controllers we can ever reach. Matt Stauffer: Is it similar to envocable controllers, or do your controllers have multiple methods but each of those methods only have one line? Abed Halawi: You can say it's close to what a command bus pattern is. So you can think of your controller as the command bus, and your just executing commands. Matt Stauffer: Got it. Abed Halawi: The commands take different forms. It could be a future or could be a job, so the same form repeats itself. Matt Stauffer: Got it. Okay, and if anybody wants to learn more, it's all written up in the, well it's both written up in the Github, which I'll link, but it's also in your Laracon EU talk, which is on YouTube, and I'll link that one as well. But since this is not an architecture podcast at the moment, it's a person podcast, let's move on real quick to talk about Neo Eloquent. So, Neo Eloquent I understand gives an Eloquent style interface to Neo4j. Let's, if you had to give the elevator pitch again, this time, can you give me a quick elevator pitch for graph databases, and what makes them a little bit different from traditional relational databases? Abed Halawi: Sure. So, with the graph databases, the way we store the data, and visualize the data, and manipulate the data is the same way we think about the data. So the first thing we do when we start a new project, or data modeling for a project. What we do is draw circles and connections between these circles, which later on gets translated and transformed into tables and foreign keys et cetera. But with graph databases, the way you draw the first data model with your hand, on a board, is the way it is stored right away. And you can manipulate that. Matt Stauffer: Okay. Abed Halawi: You can also implement traversal and all the graph algorithms that we study about through out our computer science journey. So, you can apply all of these to the data that is stored. Matt Stauffer: And if anybody, like me, does not have a computer science background, when we're talking about graphs, the easiest way to think about that is when people talk about a social graph. They think about everything being based on relationships, on relationships, on relationships. Abed Halawi: Exactly. And a relationship is what we call a first class citizen in the database. Matt Stauffer: Right, where as with relational databases it's a little more second class, essentially- Abed Halawi: Exactly. Matt Stauffer: ... with foreign keys and everything. Okay cool. Well I'd love to talk more about those things, but today ain't the day for that. So, I want to know a little bit about you. So before we go into your backstory, I'd like to know, first of all, when you meet somebody at the supermarket and they ask you what you do, what do you tell them? Abed Halawi: These days I find it very easy to talk about these things, from how it used to be when I first started. Because, today, especially with today's generation, they take technology for granted. Right? They're born and growing up in the world where cloud is the normal. Right? So, if I were to explain this, I would maybe go to an example by saying, okay I'm a robot, and you tell me what to do. I will do everything you tell me. So this is how it first starts. So when they tell me to do this and do that, I would do them. Then I would say, this is exactly what I do with machines. I will give instructions to machines so that they run them when I am not there. So they keep doing that. Matt Stauffer: Okay, so what is your actual role, are you a developer, are you a tech lead? What's your official title? Abed Halawi: My official title is tech lead. Matt Stauffer: Okay. Abed Halawi: But, we're a start up- Matt Stauffer: Okay, a little bit of everything. Abed Halawi: ... this is where things ... yeah exactly. Matt Stauffer: You can call yourself CTO if you want, right? Abed Halawi: Yeah, yeah, exactly. The thing is, with start ups, mostly, we get the opportunity to wear different hats. Which is interesting, so that we can get horizontal and vertical expertise. Matt Stauffer: Yeah. Abed Halawi: So, by horizontal I mean, different technologies, different areas of technologies, say front end, back end, dev ops and everything related to that. And at each area we get to grow vertically where, we improve ourselves and our skills in each of these areas. This is the most interesting about being in a start up. Matt Stauffer: You mentioned having a computer science degree, so I want to hear a little bit later about the path you took from computer science degree up to being a part of a start up. Real quick, were you one of the founders of the start up or did you join in after it started? Abed Halawi: I'm not the founder, but I'm the first employee. Matt Stauffer: All right, so you're employee number one. So, we'll talk little bit later about your journey from graduating with a computer science degree to being employee number one of a start up. But real quick, when did you first get into computers? Abed Halawi: I was very young. Basically around, I was nine years old, maybe ten years old. And our neighbor had a computer, and I used to go there just to watch them play, they did not allow me to play. My brother used to play, he said. But later on I had my own computer at home, but with no internet, so encyclopedia was our way to go to search for information back then. And mostly gaming. So, we were kids, I enjoyed gaming mostly. [crosstalk 00:11:40] Matt Stauffer: What kind of games did you play? Abed Halawi: This was my introduction to ... mostly fight games, first person shooter. Matt Stauffer: Yeah. Abed Halawi: Delta Force and you know these games. Also strategy, like Edge of Vampires, Red Alert, you know the early versions of those. Yeah. But then, later, the reason why I joined or took the computer science path was a bit of a coincidence- Matt Stauffer: Okay. Abed Halawi: ... kind of. Because at first, I was into medicine, so I wanted to be a doctor at first. I went to the university where I started studying that, for a year. But, after half of that year passed, I did not find myself there. I felt that I'm not doing what I'm supposed to be doing. And the thing is, I passed all my exams and passed everything, and I was doing good. Matt Stauffer: Sure. Abed Halawi: But then, later on, I couldn't feel it. It was just that thing you get at a later stage of doing a thing for a while. Then you say I don't feel like doing this my entire life. Matt Stauffer: Yeah. Abed Halawi: Mainly because I was interested in neurology and everything related to the human brain and human mind. It has kind of a minor to psychology, that's a side interest. But at some point, I decided to shift majors, and I was looking at what universities are in the area that are close by. Saw a software engineering class, by mistake, basically because I was looking at the different area of courses. There was software engineering and I was like, what is software engineering. And didn't know what that was. I went in, I saw a lot of things that had to do with computers, and I though, well that would tell me how these games have always worked. What's interesting is that, I'm going to jump a little forward to say that, with computer science, I've found myself finding out about how humans operate, and psychology specifically. More than I think I could have with medicine, because the amount of people who are using technology today can tell you a lot about how it had changed the way we live. It's everywhere. And it has changed almost every industry. So when you're in technology, it's not only about the code that we write, it's not only about having programs that are written just for the machine to work, but it's more about satisfying the human need. This is the essence of these things. One thing that I had recently a small chat about that has to do with how designers can get to know more about technology, and how technology or developers get to know more about design and maybe do it themselves. The way I like to think about it is that, designers don't need to know technology or development, and developers don't really need to know design, and do it themselves. It's the bridge between them lies in a different area. It's philosophy, it's psychology, it's the bridge between those two. So if these two areas can learn more about these, I think this will close a huge gap between these two areas. Matt Stauffer: You're reminding me a lot of my favorite conference talk I've ever given, which was about empathy. And, I made a lot of the similar pitches, from a little bit different angle than you're talking about, but that understanding people and satisfying people is the best way to be a good programmer is not to know the code better than everybody else, it's to know the end user better than everybody else. And to empathize, both with end users and also, the other developers on your team and the designers and everything like that. I love where you're going there. I moved from working at a non profit where my job was about people, and understanding people, and helping people grow, to running a company. There's a lot more similarity than I expected between the two, because I'm still working with people and helping people grown and helping people do a good ... so I couldn't agree with you more about that and I love hearing you say that. Abed Halawi: Exactly Matt Stauffer: So, you're not the first person to say this. One of my most recent interviews, I can't remember exactly who it was, said the same thing of, "You know what, I wanted to figure out how the games work." So that's really fascinating to me, so, you got in, did you find yourself in there saying, "Oh this is amazing. I love this, this is so great." Or, did you get in there and did you have a moment of being kind of dissatisfied where you said, "Oh I thought it was going to be fun and games all the time and all I'm learning is math." What was your actual experience in those computer science classes? Abed Halawi: At first, I didn't know what to expect. I did not know what computer science was all about. So, with that in mind, and I started learning by myself on the side. Besides what I was being taught at the university. I was very interested in the field. I did not expect to learn everything all in the first day, right? So, with that expectation in mind, I started finding out that I'm good at this. It's all about recognizing patterns, right? I really did not care where I'm putting most of my effort, because I know that everything that is being taught and channeled to us as students is to orient us towards having a certain mindset, so that at some point in the future, we know where to use these techniques and methodologies. It was a bit later in my studies, maybe it was the second year of university that I've discovered that university will not teach you everything. Right? Maybe it was a little late for that, but I knew then that this is not a place that will teach you everything. But what they will do, is teach you how to think about problem solving. How to think about the computer science. And how programming works. It's just the basics and fundamentals, you don't really need to learn every computer language, and every technology out there from university. They just put you on the path and it's all up to you, in terms of where to go and how to take this further. Matt Stauffer: Yeah that's good. So, you did that. Were you having to choose to specialize in a particular type of programming and everything like that, or did you just you got a degree in software engineer or computer science and then you were out in the workplace and had to find something? What was the next big decision you had to make, after you'd made the decision to go into computer science? Abed Halawi: It was the second year also, where I joined the company where I used to work, as a support agent. You know, the regular things, tickets, answering tickets, forums and answering the phone and helping people get their job done on the platform. And at some point in there, as I was studying and working a full time job, the technical department had a certain problem they were trying to solve. I was overhearing, I wasn't very involved in their works, but as I was overhearing and it was in the kitchen where I spent most of my time- Matt Stauffer: Nice. Abed Halawi: ... I overheard this problem they were having that had to do with data storage and transferring data from a place to another. I don't really remember the details of that problem, but I remember, throwing out a word that helped them solve it. And then they were interested. So I was working on this Java project for the university and the head of the developers came into the room and saw me coding at work, which I was not supposed to do. So he asked me, "Why are you coding? This is not your job here." And I said, "Well, I enjoy this. I like to do this when I don't have anything else to do." It was then, when he asked for me to join the development team and start learning web development. It was kind of passive, the way I started learning about web development and the web technologies. But at the same time, I was enjoying doing it. Matt Stauffer: Yeah. Abed Halawi: I enjoyed programming on my free time. And after moving there, the kind of choice I had to make was which area to fill? Because they had an area that had to do with software programming, installed software programming. And they had a web application programming, which was a portal that involved all the areas of the company. So this was the administration interface of everything that everyone does in the company. It was going through a revamp. And I had the chance to join the team who was doing this revamp, and I did not know anything about web development. So I started learning there. Right? It was very tough. That's the least I can say, because back then, I don't remember, there wasn't much courses online to learn from. It was mostly either books or CDs that I'm not proud to say this, but we had to get the cracked version, or the pirated versions of those, so that we can learn. This was basically my transition from being a support agent to starting to work in development. From there on, it was a regular journey where I continued exploring this realm of technologies. So sort of a front end development, doing a little bit of JavaScript here and there. It was, JQuery was booming, at the time. So I started learning that. I was very interested in animations, on ... so it was some kind of an interest between design and implementation of things. I like to see things move on an interface. Matt Stauffer: Yeah. Abed Halawi: With JQuery, I had the chance to do it with very easy instructions. That was the catch for me to say, "Well, I'm glad I chose this major. I'm glad that I'm here today. That's definitely how I'd like to spend my time." Matt Stauffer: Nice. That's very cool. So you were still in school when you were doing all this stuff? Wow. Abed Halawi: Yes. Basically I- Matt Stauffer: Did you sleep? Abed Halawi: ... graduated ... I don't remember doing that no. Matt Stauffer: Sorry what were you saying about graduating? Abed Halawi: Yeah, so basically computer science to study it here, it takes three years, maybe four, with the regular courses. But it too me five plus, because I was working full time so I started understanding that work will teach me much more about practicality than the university will. But still, I was very interested in topics that were given at the university that had to do mostly with organizing work, anything that's related to diagrams, planning, software engineering, and how to organize the work. There was many non tech courses that I was interested in as well, that has to do with management too. So I was learning a bit of both types of programming. It was high level where I learned the web stuff, and it was low level, where I learned the theories and everything that had to do with how a computer works, behind the curtains. It was very interesting. And then I graduated after five years, with three years experience, full time. Which was at the time was, I was very happy to have done that. It was one of the best choices I've ever made. Matt Stauffer: Okay. And so, what was the road from there to being employee number one at your current start up? Was there a lot of different jobs in between there? Abed Halawi: No not much, actually. There was one failed start up that I founded in the university. They had this program where they opened what they called the innovation center. It was a room for people who would like to build their ideas in there. They bring some students together. And if one of these ideas make it, through certain specified competition that they do across universities here, you have to make it for at least the first three positions. If you did they would invest, not money, but they would invest in helping you push this further. Matt Stauffer: Cool. Abed Halawi: Which is what you need at the time, right? As a student that's all you need, a place to apply the work, and an idea to put all the code in place. And that's the first thing after the first job. Then there was a job for a year where I also did a lot of web programming. I learned a lot of Linux there, because I was handling also system administration. Matt Stauffer: Okay. Abed Halawi: And then, after that, I was here where I am today. It was interesting because when you're joining a start up, there's merely any guarantee that this is going to work. Matt Stauffer: Right. Abed Halawi: There's merely an idea based on a certain gap in the market. And I can easily say that this has been almost six years. It will be six years in October. And I can easily say that we've pivoted a lot through out these six years, and it's been the best six years I've ever had. From personal and technical, it wasn't only technical, because when I first started there I was the only developer, and most of my time I was just coding. But then things started to grow. And as a company it started to scale. At the beginning we were doing services, so with services you get exposed to a variety of types of projects. There were mobile projects, there were web projects, and there were things in between as well. So this variety created a lot of needs for the team to grow. As the team grew, my role expanded as well. So I had to occupy a larger gap in the team, and cover not only technical and coding, but it was mostly organization and management to take over. This was a real, I don't know what's the biggest word than challenge. I would say more than a challenge. Because, as a developer all you like to be doing and spending your time doing is coding. But then, if you code and not know where this code is going, at some point these things get lost. So we need to organize things. And what's interesting is this led to creating the Lucid Architecture, because as much as there was chaos in the development process that we were implementing at the time, we had this huge need to organize things, not only from personal and communicational perspective, but also in the code itself. We had so many projects running at the same time and every time we switched between the project and another, it felt like going from one country to another. It felt like you were looking at something that's red and then you're looking at something that's yellow, and then that's white and then that's black. It's a huge difference between those. So, this was the inception of Lucid, where it tries and makes sure that all these projects are normalized. Matt Stauffer: So you felt some kind of chaos, you're switching contexts a lot, and the contexts were different enough that it felt too chaotic and you had to relearn each one. So you created something that applies more of a standardization across projects than what MVC provides. You said, "Now when I entered a new project, and obviously it's much more complicated than this but, I know that every single web request will be serviced by a single feature or job, basically." And you were trying to make it such that on every project it uses the same architecture. Abed Halawi: Exactly. Matt Stauffer: Have you had the opportunity to use it on a pretty significant diversity of projects, or is it still something pretty new for you? Abed Halawi: We're currently using it, so we are implementing microservices, and with microservices, each service we have is a Laravel installation of the Lucid Architecture itself. We currently have around 48 services running at the same time, so you can easily say that we've implemented Lucid in 48 projects. Matt Stauffer: Right. Abed Halawi: So far and they're in production- Matt Stauffer: Are those 48 all serving the same primary product, which is the influencer related stuff, or is it a whole bunch of different products that are all offered to influencers? Abed Halawi: These 48 services are in the same product. Matt Stauffer: Okay. Abed Halawi: It's the SAS platform that we're building. On the side we have some side projects that we use internally, that they're also based on Lucid. I would count two or three are currently running, and they are all in production in life. Matt Stauffer: I am going to ask- Abed Halawi: So we're pretty confident- Matt Stauffer: No, no, you're good. It's a little bit of lag. I'm going to ask you a few questions about Lucid. I can tell you're confident, I can see it in your face and hear it in what you're saying. So, since every single controller method, all it does is it just serves one of these features. A feature is then meant to specifically parse the request, which I assume it gets out of the application container, and also return results. Is it safe to say that a feature, or maybe a job, let's say a feature for now, is the same as a controller method in terms of its scope, in that it takes an HTTP request, and returns and HTTP response? Abed Halawi: It is exactly that. Matt Stauffer: Okay, so, it's obviously more complicated, but the simplest way to think about it is, when you're thinking about those 200 line long controller methods, pull that thing out and make it a class. That's the first step. Abed Halawi: One class. Matt Stauffer: Yeah, so it's very interesting because I gave a talk at Laracon US that talked about, among other things, quite a few code patterns for how to simplify your 200 line long controller methods. I didn't talk about Lucid, but I talked about things you can extract, so that those things in there are pulled out into individual classes. What I kind of recommended more at that point was, well here's a way to simplify the response part, using a custom HTTP response, or something like that. Here's a way to simplify the input part, by using custom HTTP requests, or something like that. Here's a way to customize the database queries, using repositories or whatever else. So I'm super interested to take a look at this and try it out. Are there any open source projects that are using Lucid? Abed Halawi: I'm not aware of any. An open source project as in a full Lucid project that is currently operating and is online with it? Matt Stauffer: Yeah, like if somebody wanted to go see what it looked like, to use an actual functioning application using Lucid? Abed Halawi: There's definitely an example that is on the Github repo. There is work being put into having video tutorials that can teach Lucid in depth. But having a Lucid project online as an open source means, basically that you're exposing the whole project, so that's interesting thought. I'd definitely like to go in something like that. Matt Stauffer: At Titan, we have a whole bunch of ideas that would never make any money. But we just like to provide them as a service, and so we open source their code. So if you one say, "You know what I'd really like? I'd like a website that does X, Y, and Z for me." And you know only 500 people would use it. And those 500 people would never pay any money for it. Or, maybe they'd pay $10 a month for it, but it's not actually worth trying to do all the marketing. Maybe that might be an opportunity for you guys to actually have a real functioning website, that has real users, that has to service real user requests and everything is completely transparent. Because I think that's one of the most interesting ways to have these conversations, and to expose our internal ideas to the world around us. And really let them up to the light of criticism outside of our own organization. We have some ideas at Titan that sound good, until they get exposed to the outside air. And I'm not saying that's going to happen with Lucid, but that is something that has been super valuable for us. Abed Halawi: I would love if that would happen, actually. That's a lovely idea. I'll definitely invest into that. Matt Stauffer: Cool. Well if I ever have an idea I'll throw one your way. But I would say that would be a good selling point for you guys in Lucid to be able to have something like that, that people can really see. This isn't the Lucid interview, as much as I'm interested in these things, so tell me a little bit about your time working with start up. You said when you got started there, you did client services, what I assume by that is you were a consultancy, people hired you to build products for them. So I have a couple questions. The first question I want to ask is, what changes happened to your text stack over the years? When did you come across Laravel? And what aspects of Laravel made you most interested in using Laravel when you decided to use it? Abed Halawi: I first started using Laravel when it was Laravel Three, version three- Matt Stauffer: That's been a while man. Abed Halawi: Yeah, that's a long while. What's interesting is that the project that we built back then was shot down a few months ago, so it was still running until today. That's what makes it, yeah, makes it very interesting. The thing that got me about Laravel was, I can easily say it's the documentation at the beginning. When you read the documentation, you literally understand how much potential this framework has, and how much you can open up and build on top of that. It's easy to start with. We started this project, it took us two, three months and we were up with an administration interface for multiple websites that we had for different clients. That was when we first started Laravel. The text stack back then we Laravel, MySQL database with regular Apache web server, and later on we had this project where it was a publishing platform. This was the first pivot in the business model, so we stopped doing services and then we shifted into building our publishing platform. And with that, there was also ideas about user generated content, and actions that users can take on content published by celebrities. From our services that we've done, we've built a lot of the user network of celebrities that are A class in our region. And from there, we thought, let's build a platform and join them all together where they can have official news and posts that can also integrate with social media, and have people join that platform as well. This is where the first search for a database that can really mimic what the social network would be in data. That was where we discovered Neo4j. This is where we started building the outcome, so that we can build that platform, and we did, for a while and then we figured, that's not really the gap in the business. We were just doing that because we thought it was the point of entry into the entertainment business. But then we also pivoted that into a SaaS, a platform where we can gather data from social media, because if it was for marketing it was booming these days. Especially in the region, it came a little late than we predicted. So we knew this was coming very soon. We thought why not build a platform that can bridge all of this. This was the second shift. This was also the shift from a monolith, a single application, single code base, into microservices, which was a completely different set of challenges that we were facing. Things that we took for granted, like networks, and connections, and discovery services knowing about each other, and communicating between applications. This was taken for granted in a monolith because you don't really have these problems. But once we shifted to microservices, a huge new set of challenges just popped up. We never thought we would have these. And we had a lot of trouble getting around with these tools because we were not experienced in that area. So we had to learn a lot before we could do it, as we do it today. I wouldn't say it's the right way- Matt Stauffer: Sure, sure. Abed Halawi: ... it's just we're doing it and it's working right? Matt Stauffer: Yeah. I hear that. We're getting close to time and I want to make sure that I've asked all the questions I had. Oh, tell me a little bit about Lebanon, and tell me a little bit about Lebanon as a developers, and tell me about Lebanon as a Laravel developer. Abed Halawi: All right, so Lebanon in general, is this small country that you can barely see on the map, let alone Beirut, if you were able to spot that on the map. So it's a very small country, but it's faced a lot of political stuff happening, going around, wars and internal civil wars and then people not liking each other politically et cetera. So this is all going on, even though all of this is happening, the tech community managed to ... well the start up and entrepreneurship communities managed to rise from all of this that was happening. There are certain areas in Beirut where they are dedicated to provide as much as they can, have the humanities to run any idea you have, you can rent, just like any accelerator, or an incubator program. There's plenty of these here today where we can rent a small desk and do whatever you have to do from there. Internet connection was a huge problem, it's becoming much better now a days. If this was to happen a couple of years ago, we maybe couldn't have done this at all. Due to the internet connection, but now a days it's become much different. As a developer, there's plenty of talent in here. We enjoy sharing the knowledge, sharing everything we can get from abroad and from here, from each other. The only problem is that there isn't much people in here. So, it's a double edged sword, right? Everyone knows everybody, but it's the same people that they always see at the events. You don't really get to ... you know this networking time, that you get in conferences, you don't really get to network. We know each other. We try to go abroad for these, more than doing it locally. But at the same time, when we were first starting, there was no community. We did not feel that there's this connection, this circle of people that are trying to build something together. Build a hub of knowledge, hub of experience that they can share among each other. But now, what we're trying to do is tighten the, or strengthen the connections between these people so we can build the more full circle that can incubate everyone in the community as much as possible. And show whoever is starting to get into the technology or development that there is a place for them here. We don't really need to go and work abroad, we can do it from here. We're trying our best to do that. As a Laravel developer, there's plenty of people who are using Laravel nowadays. Matt Stauffer: Okay. Abed Halawi: We gather, we talk a lot about what we do, differently in Laravel, and we talk a lot about how eloquent it is ... exactly. And the way that we can write code and we exchange a lot. We try to provide a lot of open source to each other, open source libraries, and tell each other, well I've written this small script, why don't you use it? Because we know each other, we know what we're working on, right? If we find a common interest, one of us would contribute that and provide it to the rest. So it's a very small community I would say, but it's very interesting because it's still sustaining. For almost six years now, it is sustaining and is growing. Matt Stauffer: That's really cool. Abed Halawi: So I find it, yeah, I find it really cool here to have, I mean for anyone who knows Lebanon and knows how many people there is here. To find this, that's amazing. That's all you need. You don't really need to have much more than this. The only issue in here, is scale. We cannot apply what we work on at scale. Matt Stauffer: Got it. Abed Halawi: And we cannot scale what we work on unless it's provided internationally. And to go international from here, it is really tough, unless it's a branch of an international company that is working here, but provides the business from abroad. It is really not much room for you to scale, compared to other places. That's the only drawback. Matt Stauffer: I did not realize how small it is, because Beirut has a similar population to the very small feeling town that I live in. And I used to live in Chicago, which has, I think it's two and a half million people. And Lebanon entirely has six million people. So I now understand what you're talking about, scale wise. Abed Halawi: Exactly. Matt Stauffer: How far of a drive ... I assume Beirut is kind of like the technical center. Are people coming into Beirut for a lot of meet ups and stuff like that? Is that even that far of a drive? Abed Halawi: It's not far. I mean, it's relatively far, because of the traffic, it is way too far man. But if you were to just measure the numbers you would say, well that's, to you, that's not even a drive. It's just a walk. Matt Stauffer: What's the furthest somebody comes into Beirut for a meet up or a conference who lives in Lebanon? Abed Halawi: No, they do. They do, they do come from- Matt Stauffer: Furthest drive, is it an hour, is it 30 minutes is it 5 hours? What's it look like? Abed Halawi: Five hours? You would be in a different country. Matt Stauffer: That's what I thought. Abed Halawi: But- Matt Stauffer: It's a couple hours max. Abed Halawi: ... it's a couple of hours drive. Matt Stauffer: Okay. Abed Halawi: Well, what's interesting is that we have this, an institution, a small institution called SE Factory. SE standing for Software Engineering Factory, which where they teach Laravel to graduating students. Matt Stauffer: Really? That's really cool. Abed Halawi: Yeah. It is. The more interesting thing about this is that people come to Beirut to study this, on a daily basis from 9:00 in the morning until 7:00 at night, and going over two hours drive from their country towns. Matt Stauffer: Wow. Abed Halawi: Yeah, it's a long drive and you have no idea how draining to energy it is to go through all this traffic on a daily basis, to be able to learn this. Matt Stauffer: That's the first group I've ever heard of that is teaching Laravel as a part of a code school. I'll ask you for the link later and I'll put it in the show notes for everybody. SE Factory. That's really fascinating. Okay. Abed Halawi: It is. Matt Stauffer: I've one last question for you, and that is, what is the best book that you have ever read. It doesn't have to be about programming, just a book across the board. Abed Halawi: Oh yeah, that's a very interesting question because my favorite book is the one that was given to me by the Laravel community when I went to speak at Laracon, we had a dinner, before that. They gave us all books, and it was Godel Escher Bach, which is the book that bridges so many topics. It's between art, and science, mainly and music of course. This is a book that really manifests how I like to think about technology nowadays. Again, it's not about just coding. It's more than that. It's about understanding, well there's a lot of creativity in there to be put. There's a lot of potential and opportunity for someone to expend and to put their all into this and make something out of it. It's endless. The way that these areas were immersed together in this book is fascinating. You just get to see that philosophy, music, and science, they're all in the same place. And how they bridge and share the same fundamentals in terms of creativity, it was very interesting. Matt Stauffer: I'm reading through the preview on Amazon right now, and it's definitely triggering some ... I studied English Literature in school, there's a lot of philosophy in there, but I was as a technologist while I was there. It's definitely, just reading through some of the basic intro stuff here I'm going okay, this is both scary and exciting in seeing those things. But this is super intellectual though. Abed Halawi: It is. Matt Stauffer: At least it looks like it is, okay yeah. Abed Halawi: Yeah and you would feel, after you read this book you would feel like wow, that's a lot that's happening. I'm in a field that's much bigger than I thought it was. It's not the infinite statements that I've written. It's much more than that. That's what makes it more interesting. Matt Stauffer: This is fascinating. Okay, well I'm putting a link to the book in the show notes. It's Godel Escher Bach The Golden Braid, or A Golden Braid or something like that. Abed Halawi: Yes. Matt Stauffer: An Internal Golden Braid. Abed Halawi: An Internal Golden Braid. Matt Stauffer: I will link that in the show notes. Well thank you, I'm really happy. I'm very pleasantly surprised that it was not a programming book, and that was very good. Well we're past time, so I have to cut, which I hate doing, but I have to do. So if people want to follow you or if there's any other last thing you want to shout out or something like that, how do you want people to kind of, what's their one take away? Should they follow you on Twitter? Should they go try out some product? What do you want them to do? Abed Halawi: Sure, so on Twitter, that's one. On Github, that's two and it's the same identity all over the place. It's Mulkave, that's the username that I use everywhere. So if you look up Mulkave on Google, you'll get all my contact mediums and everywhere. There's also the tech blog of Vinelab, where you can find the introduction to also Lucid and stuff we do at work here. Which could be interesting also to look at. Matt Stauffer: Okay. And I'll link all those in the show notes. I do have to ask, what is Mulkave? Abed Halawi: Oh, well, I told you I was into gaming when I was young and there was this game, about vampires. Matt Stauffer: Okay. Abed Halawi: And there was this clan of vampires that are intellectual they're called the Malkavian. I found the introduction of this clan, and the people in this clan, to be very much matching my personality and character, so I thought well, I'll just choose that. One day I had to choose a user name, and so I was like Mulkave, whatever [crosstalk 00:51:18]- Matt Stauffer: The best user names are ones where you know that forever you're going to be able to get it on any social network no matter what. So I like it. Abed Halawi: Exactly. Matt Stauffer: Awesome. Well, I really appreciate you taking your time to talk to me. Abed Halawi: Thank you very much. Matt Stauffer: People who don't know, we have never met before, and I asked around, I said hey I want to meet people in different communities, so Abed was recommended to me and we had a chat a couple weeks ago. I said yeah, this is definitely someone I want to talk to, and it was a total pleasure. I really appreciate it and thanks for your time man. Abed Halawi: Thank you very much for having me on this podcast, I really appreciate your time as well. Thank you. Matt Stauffer: (music)
An interview with Nuno Maduro, creator of Collision and Laravel Zero. Nuno Maduro Laravel Zero Collision Leiria Laravel Code Analyze aka Larastan AlumnForce Pecan Pie Laracon EU PeersConf Transcription sponsored by Larajobs Editing sponsored by Tighten Matt Stauffer: Welcome back to the Laravel Podcast, season three. Today I am interviewing Nuno Maduro. So hard to say. Creator of Laravel Collision, Laravel Zero, and lots of other open source goodness. Stay tuned. Welcome back to season three of the Laravel Podcast. I have another wonderful member of the Laravel community with me. If you follow me on Twitter, you'll know that I went out on Twitter and said, "Hey, I want to make sure that I've got people from various communities represented, and I already have a long list of people who I want to interview." Nuno was actually already on that list originally, but somebody pointed out, "Well, he actually represents at least one of the communities that you're interested ..." Because what I said is, "I've gotten a lot of people from America, and there's a lot of certain areas where I've got a ton of people from. I want to make sure that the other geographic communities around the world are also represented." This guy came up, so I said, "You know what? Let's take him. He's already on the list. Let's put him up at the top of the list and have an interview." First thing I want to do is, first of all, you're gonna say who you are, what you're about. You're gonna pronounce your name way better than I've been pronouncing your name, and the first question that I want you to also answer is, when you meet somebody in the grocery store, how do you explain to them what it is that you do? Nuno Maduro: Yeah. My name is Nuno Maduro. If I actually say to someone that is not from computer science, I would say that I work with computers, okay? Matt Stauffer: Okay. Yeah. Nuno Maduro: But basically I'm a web developer. I work with Laravel daily, so yeah. That's it. Matt Stauffer: Where are you from originally, and where do you live now? Nuno Maduro: That is a great question, because originally I am from Portugal. That is a small country in Europe. Right now, I'm living in Paris, France. Basically I spent my whole childhood in Portugal, my study over there, and now I'm living in Paris with my girlfriend, and yeah. That's it. Matt Stauffer: Is Paris easy to live in? Nuno Maduro: Paris is a completely different place from Portugal. People in Portugal have some kind of a slower life. You know what I mean? Matt Stauffer: Uh-huh (affirmative). Nuno Maduro: In Paris, people have like speed every single day. The difference is actually amazing. In Paris, you also have lots of transports, so to go to work, you actually spend one hour in transports going to work, and after work, you spend another hour getting home. The difference is quite over there on transports. Of course, the salary aspect is also quite different. In Portugal, you don't have the same amount of money after a month, and yes. I think those are the main differences. I don't have family in Paris, so that is also not that great, I think. Matt Stauffer: Did you live in a smaller city? Obviously smaller than Paris, but was it a smaller city when you were in Portugal? Nuno Maduro: Yes. Portugal, basically it has two bigger cities, Lisbon and Porto. In Portugal, I was living in Leiria. That is a smaller city, and yeah. I was there. I spent my whole childhood in Leiria. That is a small town in Portugal. Quite different comparing to Paris. Yeah. Matt Stauffer: Yeah. I just looked it up, and Portugal has a population of 10 million people. Nuno Maduro: Exactly. Matt Stauffer: Paris has a population of 2.5 million people. Nuno Maduro: Yeah. Matt Stauffer: There's definitely a little bit of a shift there. I've lived in both big and small towns in the United States, and even just between them, I notice a lot of the shifts that you're talking about. The bigger the city, the faster people move, and the more time you spend in transportation a lot of times as well. Nuno Maduro: Exactly. The most difficult part that I had when I moved from Portugal to France was the fact that I didn't speak French at all. Matt Stauffer: Oh, yeah. Nuno Maduro: Yeah. Matt Stauffer: That was actually my next question. How fluent are you ... How well do you speak French now? Nuno Maduro: Now I speak French great. I think I speak better French than English right now. Matt Stauffer: Okay. All right. Nuno Maduro: But at the beginning, I was speaking English all the time, and in Paris, there is not that many people that speak English. It was difficult, but after three, six months, everything went fine, because I eventually got forced to learn French. Matt Stauffer: Nice. Nuno Maduro: Yeah. Matt Stauffer: I want to hear these stories more, but we should start off by ... You know, I always want to make sure that before we get in your story, people know, why is it that I'm talking to you? Of course you're a very nice guy- Nuno Maduro: Thanks. Matt Stauffer: ... so that's one thing, but there's other reasons. Can you tell me a real quick kind of intro to ... Now, I definitely know that Laravel Zero and Collision are two of the biggest ones that you're known for, but are there any others, and could you give me just a really quick pitch for each of those? Nuno Maduro: Yeah. Sure. Basically, I spend all my time ... After work, I consider myself an open source package creator, and obviously the most noted packages I have created is Laravel Zero and Collision. Laravel Zero is kind of a micro-framework for building console applications. You can imagine Laravel for building web applications, and you can imagine Lumen for building APIs, for example, and Laravel Zero is for building just console applications. It's a very customized version of Laravel that have that specific purpose of building console apps. Collision was a package that initially I've built just for Laravel Zero, but due to the fact that Collision basically shows you beautiful errors when you are interacting with your app on the comment line, Taylor actually liked that package, so it got included on Laravel itself, on the Framework itself. Matt Stauffer: Yeah. Nuno Maduro: I also have small other packages on my GitHub account. Most of them are related to the console environment. Right now I'm working with a package called Laravel Code Analyze, though I'll probably change the name, but whole point of it is actually analyze your code and searching for bugs, or mistakes on your code. People at the beginning said it is impossible to do that, do all the magic on that systems, on Laravel, but I think I'm gonna make it right and make it work with Laravel. Let's see. Matt Stauffer: Nice. I think I remember seeing, it's based on a static analysis package for PHP, right? Nuno Maduro: Exactly. Matt Stauffer: You're not inventing it all from scratch, so you're able to just customize that, just for Laravel. Nuno Maduro: Yeah. Basically, I am writing extensions to make it, that package, make it work with Laravel. Make it understand Laravel behind the scenes. Matt Stauffer: Very cool. I know that you're also involved in the Laravel Portugal Podcast. Are you a host, or what's your actual role there? Nuno Maduro: I am the host of Laravel Portugal, yes. Basically- Matt Stauffer: Okay. Sorry, not podcast, meetup. Nuno Maduro: Yeah. It is a live show, a podcast, whatever. Matt Stauffer: Yeah. Yeah. Nuno Maduro: But basically, every Friday I get into that podcast with my friends, and we talk about Laravel PHP, and sometimes we bring actually long-time members of the Laravel community. You already have been there, and Taylor as well. It's great. I have a great time over there. Matt Stauffer: That's cool. What's your day job? It's AlumnForce? Is that still where you work? Nuno Maduro: Exactly. Matt Stauffer: What kind of stuff are you doing there? Nuno Maduro: AlumnForce is a company that builds social networks for many of our cities. You can see it like a small Facebook for each university, so a private social network. I'm working there as a backend web developer, mainly with PHP, Laravel, and also Microservices. Yeah. I think that's it. Yeah. Matt Stauffer: Okay. Cool. All right. We have a basic understanding of what it is you do day to day, some of the things that you do that you're known for, so let's get into the story of who you are, where you come from. You were born and raised in Portugal. I think you said it was called Leiria. Nuno Maduro: Leiria. Yeah. Matt Stauffer: I've already acknowledged to everybody that I'm terrible at pronouncing everything, so I'll already own that. Tell me a little bit about growing up. What was your first interaction with computers? What was your first time, your first actual time using a computer, and maybe the first time that you really started realizing that that was something that was special for you? Nuno Maduro: Okay. I must warn you, I don't have the most beautiful story, like most of your guests, okay? Matt Stauffer: Everybody's story is interesting. Nuno Maduro: Not mine. Let's see. Basically, I got my first computer when I was five. Matt Stauffer: Oh, yeah? Nuno Maduro: Yeah. Matt Stauffer: Wow. Nuno Maduro: When I was five, I got my first computer, but I can say to you that I didn't use it for programming or for coding. It was just for gaming, actually. Matt Stauffer: Yeah. Nuno Maduro: All my childhood- Matt Stauffer: What kind of games were you playing at five and six years old? Nuno Maduro: Oh, those memories, man. I was playing like ... I can't remember early games, but I remember that when I was like 10 or 12, I was playing Age of Empires, FIFA a lot. You know FIFA, right? Matt Stauffer: That's soccer. Nuno Maduro: Yeah. Matt Stauffer: I've never played it, but I at least know the acronym. Nuno Maduro: Exactly. Age of Empires. I can't remember, man, but I was mainly playing games on that computer. It was the same computer for 10 years, I think. It was great0t81es. Matt Stauffer: Oh, nice. That's awesome. Nuno Maduro: Yeah. Matt Stauffer: I just realized I call it "soccer." I'm sorry. Football. Nuno Maduro: Yeah. In Europe we call it football. Matt Stauffer: Yeah. Okay. You played games. Was it a desktop, I assume? Nuno Maduro: Yeah. A desktop. Exactly. Matt Stauffer: Okay. Age of Empires, I've never played, but I'm trying to translate time periods. You played a lot of video games. Did you have computer education in school at all? Nuno Maduro: No. Not at all. Only on university. Matt Stauffer: Okay. I assume you learned how to type at least playing the games and using the computer, but when's your first actual experience doing programming? Even anything as simple as building HTML or CSS? Nuno Maduro: Yeah. I can tell you that, when I was 18, I wasn't actually sure about the study, what I wanted, but because I liked games, I pursued computer science. Matt Stauffer: Oh, okay. Nuno Maduro: I knew it was stupid, but at the time that was my thought. Matt Stauffer: You figured, "Hey, I like games, so why not make them?" Nuno Maduro: No. I didn't know what to do, actually. Matt Stauffer: Oh, really? Nuno Maduro: Yeah. I have to be honest, man. Matt Stauffer: Yeah. Yeah. Nuno Maduro: At the time, I went to computer science, and there, when I was 18-19, I started to work with HTML, PHP, and everything. But I must tell you that I wasn't the traditional geek or super talented developer. I liked computers, but I think I preferred football or be with friends. Matt Stauffer: Is that still true today? Nuno Maduro: Not today. No. Matt Stauffer: Okay. When did that shift happen? Nuno Maduro: That is a great question. While I was on university, I actually started my first job. I was doing my master at night, and have a full-time job on the day, you know? Matt Stauffer: Wow. Nuno Maduro: At that time, again, I was making money, and that is great, but I wasn't actually passionate for programming and for coding, and I remember that I was working on the local company, and I was working with Code Igniter, and PHP. Matt Stauffer: Oh, okay. Nuno Maduro: A friend of mine, because we went to start a new project, and I was saying, "Okay, another app with Code Igniter." And the friend of mine told me, "Why just don't you use Laravel?" I was like, "What is Laravel? Is it a new programming language?" Matt Stauffer: Right. Nuno Maduro: "Is it framework? I don't have any idea." I went home, I Google it, and I eventually got redirected to Laracasts. The big turnover was with Laracasts, because I wasn't passionate, like I told you, but with Laracasts I was actually consuming four, five hours a day. Matt Stauffer: Wow. Nuno Maduro: I was 24, 25, so I was consuming Laracasts like four, five hours a day, like a drug. Crazy. Matt Stauffer: Yeah. Yeah. Nuno Maduro: I was still in Portugal at that time, and yeah. I think I can say that Laracasts was my shift. Yeah. Matt Stauffer: Huh. That's really interesting. I'm glad. Jeffrey's gonna hear that, and he's gonna love that. Do you think you could say something about it that is what made the shift happen? Was it the style of teaching, or was it being able to ... Is there something about Laravel, or something? Could you name what aspect of it that was hooking you so much? Nuno Maduro: I think it was the fact that everything was difficult before, and when I started with Laracasts, I understood that words like "solid design principles," everything that was complicated turns out to be easy with Laracasts. Matt Stauffer: Yeah. Uh-huh (affirmative). Nuno Maduro: The knowledge that I was consuming in such a short period of time, it was crazy, honestly. I think with Laracasts, I found my way of learning. That was super important. It was a big turnover, honestly. Matt Stauffer: That makes sense. Nuno Maduro: Mm-hmm (affirmative). Matt Stauffer: This episode has been brought to you by Laracasts. Just kidding. This is not a sponsored episode. I promise. That's really cool to hear, that you were able to find your way of learning outside of the context of Laravel, or Jeffrey, or anything else like that. Just you found a way that makes sense for you to learn. I think that you mentioned it wasn't even necessarily ... You didn't say, "Oh, this aspect of Laravel was what got me most excited." What is it that motivates you? Is it code that motivates you? Is it products that motivates you? In 20 years, do you want to be writing code? In 20 years, do you want to be running a company? Do you want to be making products? What motivates you most about working in tech? Nuno Maduro: Right now, I really like the aspect of learning. Becoming better every single day, actually, I really like that aspect. To be really honest with you, I also like the fact that people are using my stuff. Matt Stauffer: Yeah. Nuno Maduro: That's also the main reason why I built Laravel Zero, because it's not a package. It's a framework, so people will build stuff on top of it. I really like the feeling of people using my tools, my packages. I like the feeling of people heard about me on public speaking, for example, and that I think is the real motivation why I work hard every single day. Matt Stauffer: What is your dream job? Nuno Maduro: I don't have an answer for that. I think right now, I'm really happy about my current job and my current situation, because right now I'm doing remote work. I'm still in Paris, but doing remote work, and I'm really about my current situation. I work eight hours a day. At night, I have time for my own things, my packages, to read. I also go a lot doing Crossfit. Do you know Crossfit? Matt Stauffer: Yeah. Yeah. Nuno Maduro: Yeah. I'm doing a lot of Crossfit at night as well. I think I'm really happy about my current state. Matt Stauffer: Awesome. Nuno Maduro: Of course I would like to be rich, but yeah. Matt Stauffer: Sure. Sure. But the day to day experience of working the type of job you have right now is something that you really enjoy? Nuno Maduro: Yeah, exactly. Matt Stauffer: That's very cool. All right. Let's go back to early days. You were five years old. You had a computer. You were playing video games. Your first exposure programming was primarily in university. Did you have any classes at all? Did you even learn typing in school, or was there literally no tech of any sort in school prior to university? Nuno Maduro: Prior to university, I didn't have any interaction with computers at school. Matt Stauffer: Wow. Okay. Nuno Maduro: Yeah, because I actually, on college, I was doing the mathematic course. You know what I mean? Matt Stauffer: Mm-hmm (affirmative). Nuno Maduro: We didn't have actually access to computers at my course. So the only computer I'd interact with was my home computer, and it was for gaming mainly. Matt Stauffer: Yeah. What age is ... Because I don't always know how every different country handles it. At what age were you in college, and what age did you enter in university? Nuno Maduro: 18. Matt Stauffer: 18 for college? Nuno Maduro: No, no, no, no. Basically, to college, I think it is 13, I think. Matt Stauffer: Okay. Nuno Maduro: And when you are 18, 19, you go to university. Matt Stauffer: Okay. I don't know if you're familiar with the American concept of high school, but if you are, is that similar to what college is for you, or no? Nuno Maduro: I think so. Yeah. Matt Stauffer: Okay. Got it. Makes sense. All right. When you were in college, you did specialize a little bit. You said you specialized, so you kind of picked a subject to focus on in college, or no? Nuno Maduro: I think, yeah. College for me, it's like high school for you, so at that time I was, yeah. It was mathematics, science, but I didn't like it at all, as well. Matt Stauffer: Yeah. Nuno Maduro: Like I told you, I wasn't the traditional geek, or something like that. I just preferred to be with friends, so I didn't specialize in something, something concrete. Matt Stauffer: Okay. Outside of computers, outside of ... Wait, do you still play video games? Nuno Maduro: Yeah, a little bit. Matt Stauffer: What are you into most right now? Nuno Maduro: League of Legends. Do you know? Matt Stauffer: I know it's about superheroes, right? Nuno Maduro: Exactly. It's really, really cool. I play a lot of League of Legends. Yeah. Matt Stauffer: I was into video games a lot until I moved away for ... Actually, I played some video games in college, or in university for me, but after that, I haven't played anything at all, so I hear about them through friends. I know I'm older than you. I don't know by how much, but when I was in college, we were playing Half Life 2- Nuno Maduro: Oh. Those times. Matt Stauffer: ... to give context to that. Nuno Maduro: Yeah. I also have played Half Life 2. Matt Stauffer: Nice. Nuno Maduro: I probably finished the game more than once. It was great. Matt Stauffer: Nice. Yeah. It's worth it. Nuno Maduro: I was actually, when I was in high school, I actually made a lot of sports, so if you type "Nuno Maduro football," you will find me, and I was actually doing a lot of sports at that time. I really like football. Matt Stauffer: Okay. That was actually my next question, where I'm going, is, outside of Crossfit, outside of computer programming, and outside of video games, what's the thing that you do that gives you the most joy in your life? What do you enjoy the most? Nuno Maduro: Oh, I don't want to be ... I think I really like to be with my girlfriend as well. The weekend, for example, I am always with my girlfriend. Like, the complete weekends. Matt Stauffer: Yeah. Nuno Maduro: Saturday and Sunday, I spend all the day with her. I go into the cinema, shopping, a lot of shopping. Yeah. Being with my girlfriend is probably one of the things that I really like to do. Matt Stauffer: Okay. What do you think that is the most underappreciated or under-known aspect of writing a good application in Laravel? What do you look at the Laravel community and say, "If only everybody else knew this, their lives would be so much better"? Nuno Maduro: I think the community aspect is probably one of the biggest points of Laravel. I believe that people underestimate the fact that Laravel have a great, great community. We actually helps a lot of each other. I can tell you, for example, Laravel Portugal Slack, we talk every single day about ... We ask for opinions for ... We have questions. On Laravel Portugal, for example, we talk about a lot of work. With the international community, for example, on Twitter, I use it a lot as well. I learn a lot with the Laravel community, and I think that is one of the strong points of Laravel, I believe. Matt Stauffer: All right. One of the things that I always do when I'm gonna interview somebody on the podcast, I ask people in the Titan Slack, "What are some questions you want me to ask?" And it's always funny, because some of the people know the person I'm gonna be talking to, and so they say, "Oh, I've always been interested in this thing." Some of the people don't, and so they just throw out random stuff. "If you had to choose, would you prefer cake or pie?" Nuno Maduro: Pie. Matt Stauffer: Pie? All right. Taking it further down the road, which pie? Nuno Maduro: Raspberry pie? I don't know. Matt Stauffer: What, you're not sure? All right, so raspberry pie. Nuno Maduro: Yeah. Matt Stauffer: Is that a programmer joke? Raspberry Pi? Nuno Maduro: Yeah. I think, yeah, it's a programmer joke. Matt Stauffer: Really, if you had every different pie that has ever existed in the history of the planet, right sitting in front of you, which one would you pick? He's totally Googling pies right now to find a picture of all the different options. Nuno Maduro: Yeah, honestly. I really like chocolate. I like chocolate. Matt Stauffer: Okay, so straight chocolate pie? Nuno Maduro: I would probably choose ... Yeah. Yeah. I would probably choose like a black chocolate pie. Matt Stauffer: Wait, black chocolate? Nuno Maduro: Yeah. Matt Stauffer: The only time I've ever heard black and chocolate in the same term is when they're talking about, like, German. Is that the type you're talking about? Nuno Maduro: I don't know. Actually, I don't know if it is in the States, I believe so, but there is different types of chocolate, so you have like the most- Matt Stauffer: Oh. Oh, oh. You mean like a less milk, more dark? Nuno Maduro: Exactly. Exactly. Matt Stauffer: Yeah. We call it "dark chocolate." Yeah. Yeah. Yeah. Nuno Maduro: Okay. Dark chocolate. Matt Stauffer: Got it. Okay. All right. A dark chocolate pie. Okay. Have you ever had pecan pie? I think it's probably a very American thing. Nuno Maduro: Never heard about it. Matt Stauffer: Do you know what a pecan is? Nuno Maduro: Nope. Matt Stauffer: It's a nut. P-E-C-A-N. Yeah. Go Google that. I'm from a place in America where they don't have those, and I moved for school to a place, the south, where they do have them, and I live very close to where they all are. They make this pie that is essentially just like sugar and some kind of gelatin, and then pecans, and then the crust. That's basically the whole thing. I don't even know if it's suspended in corn syrup or something like that. You're just basically eating, like, pecan-flavored sugar mush, and it is one of the greatest things I've ever had in my entire life. If you ever get a chance to try that, you should. Nuno Maduro: Yeah. I'm gonna save it, man, to show it to my girlfriend, maybe. Matt Stauffer: Very nice. All right. More questions for you. Next question for you is, "What advice do you wish you had gotten when you first got started programming, and what advice would you share with new developers today?" Kind of the same question. Nuno Maduro: Yeah. Yeah. It's a great question. I think the most important thing to new developers is definitely, "Find your way of learning." Because it was the turnover for me, and I think if I knew that earlier, in my early days, I will be even better right now. Another thing that I consider also super important is the fact that you should open your ... Expose yourself to criticism. I can give you an example of open source, for example. Due to the fact that you do open source, you are actually exposing implementations, exposing your way of coding, and you are actually receiving criticism for free, you know? Matt Stauffer: Right. Nuno Maduro: You are understanding what are your weakest points for free, and you can evolve really quickly doing open source. I think, yeah, finding your way of learning, and also expose yourself to criticism, is two key points of being a better developer. Matt Stauffer: That's good stuff. I like that. What prompted you to move to Paris? Nuno Maduro: Great question. At the time ... Actually, my girlfriend, she's French, okay? Matt Stauffer: Okay. Well, that can do it. Nuno Maduro: Yeah. She was in Portugal with me, but she always liked France, and when I was in Portugal, I had the feeling that I had to move to a bigger town, because I was a software developer, and after my first job, I had the need, actually, of moving to a big town. Since my girlfriend really liked Paris, and I had that need, we choosed Paris because of this reason. Matt Stauffer: Got it. Yeah. Nuno Maduro: Yeah. That was the big- Matt Stauffer: You wanted to be somewhere big, and she wanted to be back in France, and it was kind of a good spot for both. Nuno Maduro: Exactly. That, it's, exactly. Matt Stauffer: Yeah. Yeah. Nuno Maduro: I'm right in Paris for two years, three years now. Matt Stauffer: Okay. It's funny, because I know you live in Paris, and a lot of my questions are there, but I also am sort of interviewing you as a representative of Laraval Portugal, so I also got some questions there. Let's say ... At least for Americans. I don't think this is probably true for most Europeans. For a lot of Americans, we know about Portugal either because of soccer or football, or honestly because there's a lot of overlap between American and Brazilian cultures. There's a lot of Brazilians in the US, and our economies and cultures are often very similar. We learn about Brazilian Portuguese. Obviously, that's just a language. It's not even necessarily exactly the same language. Let's assume that people who are listening don't know much about Portugal, about the people, the culture, the food, the country. If someone were to visit Portugal, where should they go? What should they see? What should they experience? What would you want them to know? Prepare someone to go ... First of all, prepare them, and second of all, sell them. Why should someone come to Portugal? Tell me about it. Nuno Maduro: Yeah. I have to say that I really love Portugal. Every time I'm on vacations, I go to Portugal. Matt Stauffer: Yeah. Yeah. Nuno Maduro: Most of because of my family, of course, but basically because I really like the country itself. Starting things off by the food, the food is just crazy. Everything is like homemade, you know what I mean? Matt Stauffer: Yeah. Nuno Maduro: It's really, really good. Each small town in Portugal have his own way of doing food. You can basically pick your car and eat different stuff every single town. It is really great. Matt Stauffer: Okay. Nuno Maduro: Something that I really like as well is the beach. Portugal is near the ocean, and you have beach all the time. Matt Stauffer: Very nice. Nuno Maduro: Yeah. Very, very nice. The weather is also magical. Yeah. In summer, for example, I'm always on the south of Portugal. Everything is not expensive, and I really enjoy those moments, to be honest. Matt Stauffer: Huh. Nuno Maduro: Also, the people. The people have a ... Like I told you at the beginning, people have a slower life. I don't know if this represents what I am exactly trying to say, but people are not that depressed, for example, comparing to Paris. You know what I mean? Matt Stauffer: Mm-hmm (affirmative). Nuno Maduro: Not that stressed. That is also really good, because people are all the time smiling, for example. I don't have that in Paris. You know what I mean? Matt Stauffer: Yeah. Nuno Maduro: Yeah. Matt Stauffer: Do you get the sense that people in Europe understand that Portugal's a nice vacation destination? Nuno Maduro: Yes. More and more, to be honest. Matt Stauffer: Yeah. Nuno Maduro: People are actually trying to go to Portugal when vacations comes up. Just to go to the price of going to States, come from States to Portugal, I remember that I checked the prices to go to Laracon West, and the price of the tickets just for the plane itself, it was 2,000 Euros. Matt Stauffer: Yeah. Yeah. Nuno Maduro: It was super expensive, man. It was like, "I just can't afford this." Matt Stauffer: Yeah. Nuno Maduro: The conference ticket was the last ... It was the cheapest. Matt Stauffer: Yup. Yeah. Nuno Maduro: Being there, and the price of the tickets was the most expensive. Matt Stauffer: Yeah. I mean, for Americans, I know a lot of what we do is, you save up for a long time, and then you pay for that expensive ticket, and then you stay in Europe as long as you can, and just go see everything around there. Because once you pay to get over the ocean, you don't want to have to do that too often. Nuno Maduro: When was your last time on Laracon EU? Matt Stauffer: I wanted to go this year, and it overlaps with my son's birthday. I wanted to go last year, and I think it also overlapped with my son's birthday. Maybe the year ... This is 2018, so maybe 2016? But I'm not actually 100% sure. That's a really good question. It's been a while. Nuno Maduro: Anyway, did you enjoy it? Matt Stauffer: Oh, Laracon? Oh, it was amazing. Amsterdam is beautiful. Shawn knows how to throw ... Shawn and company, they know how to throw a really incredible conference, and I got to meet so many people that I'd known just over Twitter. Laracon EU was actually the first Laracon I ever spoke at, so my first conference I ever spoke at was PeersConf in the US, and then soon after that, Shawn gave me a spot being the opening talk at Laracon EU, even though I had never spoken at a Laracon before. Nuno Maduro: Oh, you are lucky. Matt Stauffer: I have a lot of love for Laracon EU, and every year that I miss it is a sad year for me. Nuno Maduro: Yeah. Amsterdam is beautiful. Matt Stauffer: Oh my gosh. Amsterdam is amazing. Nuno Maduro: Anyway, year. Laracon EU is moving next year. Matt Stauffer: Is it? Nuno Maduro: Yeah. Matt Stauffer: That makes me kind of sad, because I love Amsterdam, but I'm sure it's a good thing so that I can kind of try a new place. Have they said where yet? Nuno Maduro: Yes. It's a nice opportunity to visit another places in Europe. No. I think Shawn have made a poll on Twitter or something like that. Matt Stauffer: Oh, okay. Nuno Maduro: He is eventually deciding another place to go. Matt Stauffer: Very, very cool. Yeah. I have very little interaction on Twitter these days. I'm hoping that will change soon enough. All right. Since we're getting long on time, I want to see, are there any things that you wanted to have the opportunity to talk to people about, to share about, that you wanted to make sure we covered today? Nuno Maduro: Yeah. Basically, I'm working on the new package that I think I told in the beginning of the episode, called Larvel Code Analyze. That package, we're probably gonna have another name, but the whole point of it is actually to catch bugs and mistakes on your code, and I think it will be a really kicker for Larvel, because you can integrate that on your continuous integration, for example. It returns, like the exit code will be green or red if you have mistakes or not. I think the package will be really, really great, and I can't wait to realize it. Matt Stauffer: Yeah. I'm very excited. I saw you Tweeting about it a little bit, and I got excited. I mean, anything that allows us to have less problems in our code is great, but this almost seems like it comes for free. Nuno Maduro: Yeah. Matt Stauffer: Because it's not even like writing test. It's just static analysis, and so- Nuno Maduro: Exactly. Matt Stauffer: I'm very, very excited to see what you do with that, and I'll make sure to put show links. Nuno Maduro: Yeah. It goes even deeper than PHPStorm, for example. People used to compare that with PHPStorm, because PHPStorm itself have some static analysis, but it is not even compared. It will show up every single mistake on your code. It's just great. Matt Stauffer: Very cool. I'm very, very excited to see it. If people ... Oh, go ahead. Go ahead. Nuno Maduro: I have a suggestion, actually. I would like to ask you when you will be the guy on this side? Because I think- Matt Stauffer: Oh, when am I gonna get interviewed? Nuno Maduro: Yeah, because I think since the beginning of this season, or actually all seasons, you never got to have the opportunity of being interviewed, so we don't know as much of your backstory. I think it's a good suggestion, no? Matt Stauffer: Well, thank you. A few people have asked that. I think the biggest question is, I just gotta figure out who's willing to do it. I mean, I've said for a long time that I think that Adam is one of my favorite podcasters of all time. I might have to just kind of see if I can kind of twist his arm into doing that for me one day. Thank you for bringing it up. I will be in the hot seat one day. That's a good reminder. Is there anything else you want to talk about today, or do you feel like we covered most of what's on your brain right now? Nuno Maduro: Yeah. I think we covered the most. Matt Stauffer: This was a ton of fun. I really appreciate you spending some time to talk to me about your packages, and also about your story a little bit. You said you didn't have an interesting story, but I think that if everybody tells the same story, it would get boring, honestly. I mean, if I just interviewed 20 people and every single one of them said, "I got a computer at 13 that I, blah blah ..." Even Neil's story, which was one of the most interesting ones I've ever heard, if everybody said that same story, it would be boring. I love it. I love hearing different ways about people, and I mean, I don't know a lot of people who are programming today who had a computer at five. I think that's pretty fascinating. Nuno Maduro: Yeah. For gaming, anyway. Matt Stauffer: Thanks for sharing all that stuff. Yeah. Hey, it's a computer still. Nuno Maduro: Yeah. Matt Stauffer: Thank you for sharing all this. If people want to follow you, what's the best way to follow you? Nuno Maduro: On Twitter. Matt Stauffer: All right, and what's your Twitter handle? Just say it out loud. Nuno Maduro: Let me- Matt Stauffer: Gotta remember your own Twitter handle? Nuno Maduro: Yeah. Just type "Nuno Maduro" on search on Twitter. Matt Stauffer: It's @ENunoMaduro, right? Nuno Maduro: Exactly. Matt Stauffer: Yeah. Exactly. I like the way you say it a lot better, just because it kind of rolls off the tongue, like "Nuno Maduro." Nuno Maduro: Nuno Maduro. Matt Stauffer: All right, well Nuno, thank you so much for your time. It was a total pleasure talking to you. Nuno Maduro: Thanks for having me.
Interview with Samantha Geitz, Senior Developer at Tighten Logo Samantha's React series on the Tighten blog React preset Doejo Wordpress VIP Automattic PackBack PackBack on Shark Tank Editing sponsored by Larajobs Transcription sponsored by Tighten Matt Stauffer: Welcome back to the Laravel Podcast, season three. This is the first time we'll be talking to a member of the Tighten team, senior developer Samantha Geitz. Stay tuned. Matt Stauffer: All right, welcome back to the Laravel Podcast, season three. Like I mentioned in the intro, for the first time ever, I have dipped into the local pool, because I think that the people who work at Tighten are great, because otherwise, they wouldn't work at Tighten. I think they're all fantastic, but I've been trying to avoid nepotism, and if you're not familiar with the concept of nepotism, it's when somebody basically makes their whole ... their family and friends in power, so basically Donald Trump personified. That's nepotism, so I've been trying to not be a nepotist, but at the same time, I mean, there's great people who deserve interviewing. Matt Stauffer: I figure we're going to start with Samantha Geitz, who is one of our two senior developers; Samantha and Keith are our senior developers, and you may have heard of Samantha before, but before I go into her backstory and who she is and what she's about, the first question I always ask everybody is, when you meet a random person in the store, how do you tell people what it is that you do? Samantha Geitz: There was a really long period of time where I said, "Well, I'm a software engineer," because it sounded really fancy and I kind of needed that validation. Matt Stauffer: Right. Samantha Geitz: I've gone back to "I'm a developer," and they ask what that means, and I say, "I build websites, and some of which you've probably used," and I list them off, and usually they kind of glaze over about halfway through, and/or say, "Oh, my company's hiring. Do you use .NET? You should come work for me." Matt Stauffer: Right. Samantha Geitz: I've steered away from software engineer, unless I'm talking to a real engineer, because they get really mad and it's hilarious. Like, "You haven't taken certification." Matt Stauffer: Basically whatever trolls the best. I tell people I make websites, which drives my wife nuts, because she's like, "You don't make websites, you run a company." I'm like, "I don't like telling people that when I first meet them, because then it sets certain expectations." The more that people underestimate me when they meet me, the happier I am. Samantha Geitz: I was going to say I guess it's true- Matt Stauffer: Oh, go ahead. Samantha Geitz: I actually don't make very many websites for Tighten anymore, I'm a PM/therapist/wrangler. I do a lot of hand-holding, talk about feelings a lot. It's a great job. Matt Stauffer: That is basically what we do at Tighten. We just use code as the excuse for that. Samantha Geitz: We talk about feelings a lot at Tighten. Matt Stauffer: Yeah, yeah. Okay, Samantha first came onto the scene, when I knew who she was, when she was speaking at Laracon US a couple years ago in Louisville. I don't even know what year it was, 2015 or 2016, 2015, something like that? Samantha Geitz: 2015. Matt Stauffer: And speaking about microservices. Samantha Geitz: It was the new hotness at the time. Taylor introduced it as the most anticipated talk at Laracon right before I walked on stage, and I was like, "Ooh. No pressure." Matt Stauffer: No pressure, and the funny thing is I don't think you've done any microservice work since you've started at Tighten, right? Or have you? Samantha Geitz: I have not. No, but you also hate microservices. I'm surprised you hired me after that. Matt Stauffer: I hate them a little bit, yeah. Samantha Geitz: Yes, we like this girl's ideas. Matt Stauffer: Yeah, well ... What we liked was the way that you think. That's not necessarily the microservice aspect. Not saying there's nothing good about microservices ever, but it's not ... they're overblown a little. But anyway, you gave that talk. Everyone said, "Wow, who's this Samantha Geitz, she's great." Soon after we open up a job posting, you apply. It was great. That's not the point of this story, but now you're a senior developer, like you mentioned. Day-by-day you write some code, you review some code, you write blog posts a lot. You wrote a three part React series, that has basically taken the internet by storm since it existed, which you keep updating and I'll put a link to that in the show notes. You are one of the lead React thinking people in the Laravel world. You're the one who contributed the React preset to Laravel. That's one area you're known a little bit. Matt Stauffer: If you haven't heard of Samantha before, go read a couple of her blog posts on the Tighten blog. Go check out the React preset. Go check out a React series. Even if you know React already, it's a really good broad level introduction. That stuffs all great, but that's not what this podcast is about. This podcast is about people. Matt Stauffer: The next question I always ask everybody is, when was the first time that you interacted with a computer, and tell me about it. Samantha Geitz: Well my dad had a computer science background. When I was really young, like five maybe, we were using Logo to build tic, tac, toe and obviously I was not writing much of the code at age five, but I sat with him when he did it and it sparked an interest, but as I grew up, I always thought computer science was A, for boys, B, involved a lot of math and even though I'm technically good at math, I did well on the GRE in math, I just thought I was bad at math and I can go into all the feminist reasons about that on Twitter if anyone's interested, we don't need to spend the whole podcast. I want to get on my platform and talk about it. Matt Stauffer: Right. Samantha Geitz: I didn't really take computer science seriously as a career. I had built some websites and stuff in high school in Joomla. I'm dating myself here, but my last semester of my English Literature degree, and fun fact, if people don't know, both Matt and Dan are also English majors, so Tighten's got a very strong liberal arts background. Matt Stauffer: It's true. Samantha Geitz: I took a computer science course as an elective because it was literally the only thing that fit into my schedule and I was the only woman in the class and walked in. I immediately got picked out by this professor, who was a very nice man, but also this old Eastern European man. Caught me after the first day and said, "Oh, if you need extra help let me know." And within three weeks I was tutoring a quarter of the class. Samantha Geitz: Well I had realized by that point, because my background was in English Literature but I wanted to be an English teacher and got through all of my English Literature course work and then started the education component and said, "Oh, no. I hate teenagers. This is going to be awful." Yeah, when I took that computer science course, I said, "Oh, cool. So this is what I want to do when I grow up." Went back to grad school and got a masters in information science and I guess the rest we will probably cover in future questions here. Matt Stauffer: We will, but I have so many questions. I have so many questions. Your dad, computer science. You're five years old, making tick tac toe in what? Samantha Geitz: Logo. It's a programming language where you move a turtle around the screen. Matt Stauffer: Logo. Samantha Geitz: I think it's like Scratch. This was almost 25 years ago. Matt Stauffer: Oh okay. Samantha Geitz: I couldn't tell you a lot of the specifics. Matt Stauffer: Yeah. It's just funny. This is the first time anybody's ever mentioned something I've never even heard of before, programming language wise. Okay, but it was focused on kids learning? Samantha Geitz: I think so yeah. I know my dad had probably C and basic and I don't even know what. He's now trying to learn Laravel. I have two brothers who are Laravel developers and my dad has decided he wants to get into that life too. We have a Slack channel where he posts questions and it's fun. Matt Stauffer: That's awesome. Tell me that he has a copy of my book, please? Samantha Geitz: He does not ... No, he does. Matt Stauffer: I will mail him one. Samantha Geitz: It's in a PDF. I sent him a PDF. Matt Stauffer: Okay I was going to say, I will mail him one. Samantha Geitz: Sign it. Matt Stauffer: Jeez. Okay. Yeah, definitely. Okay, you did Logo. Was there much computing? Were you on Instant Messenger and stuff like that in between that time and when you were in college? Or were you not a computer person during that time? Samantha Geitz: Oh, I was PC gaming master race from a very, very young age. Matt Stauffer: Okay, so you've been sitting on ... Yeah, you totally skipped that part of it. Let's talk about that. Samantha Geitz: That's how I win typing challenges. Yeah, no. I had a computer in my room from the time I was in eighth grade. Yeah. Oh, I got into all sorts of shenanigans in Instant Messenger and stuff. I was 10, cat fishing people. Matt Stauffer: Oh my goodness. I didn't even know what that word meant until college. Samantha Geitz: ASL, 18 female California and I'm 10 years old. Matt Stauffer: Oh my God. Samantha Geitz: This is a family friendly podcast so we don't need to get into that. Matt Stauffer: There you go, we'll just keep it there. Cat fishing. Go Google it, it's a type of fish and it is a ... nevermind, I'm not even going to go there. Matt Stauffer: Playing video games, did you build your rigs? Computers? Samantha Geitz: Oh yeah. Still do. Matt Stauffer: Still do? I didn't know that. Samantha Geitz: Have you not seen this. Matt Stauffer: I have not seen this. Samantha Geitz: I'm turning my camera so Matt can see my rig. Look at that bad boy with a cat on it. Matt Stauffer: You should take a picture of it without a cat hanging ... or with the cat hanging over it so we can put a link in the podcast. In the show notes. Samantha Geitz: I've got the clear panel on the side so you can see ... Yeah, I've got some good hardware in there too. I've had a $900 graphics card in there. Matt Stauffer: Geez. Okay, you learned that stuff from your dad. Computer science. You cat fished people when you're 10 years old. You built your own PC's and you're playing video games. Was there anything formal before you went into college? Was there anything outside of you doing it on your own, or was this more like you had the interest and you did all the stuff? Obviously you said at age 10 you had interest access, or was this bulletin board services? Samantha Geitz: I did have internet access and yeah, I would be on various forums and stuff, but when I was 15 I think, I also, English background, dabble in writing, surprise, surprise. I ran a writing community website that I built on Joomla, I don't wonder what form software I used. Simple core maybe. Matt Stauffer: Okay. Samantha Geitz: It was completely hacked together. There was a little bit of PHP, but it was a lot of just customizing templates and stuff, which for me was a very different thing than, "I'm going to go get a computer science degree and do the calculus I guess, because that's what computer science is." Right? Matt Stauffer: Right. Well and that was my next question actually, is at what point did you actually write a line of web based codes? You mentioned you did Logo, so you had coding from age five, but when do you actually write web code? Samantha Geitz: That would have been high school. Matt Stauffer: Okay. Samantha Geitz: It was probably undergrad years. Matt Stauffer: There's no classes for it. You were just view sourcing around on the internet and figuring it out as you went? Samantha Geitz: Yeah, it was a lot of, "I'm done loading this template and making it look the way I want it to look and I don't really know what I'm doing." I was not doing anything too complex. Matt Stauffer: Right, just FTPing it up to some kind of general shared host? Samantha Geitz: Yeah, it was all FTP. Matt Stauffer: Okay, all right. Samantha Geitz: Very much hacking my around. I did not have a solid grasp on it where if someone could have probably paid me and gotten good work out of it. At our peak we had about, for the writing website, maybe 250 active members. Matt Stauffer: Nice. Samantha Geitz: It wasn't too small time for someone who was 15. Matt Stauffer: Yeah, speaking of people paying you. What was the first dollar you made making websites, or making any code actually for that matter? Samantha Geitz: That would have been in grad school. I did some freelance work because I very quickly realized that my grad program, we did some programming stuff but it was Flash in 2012. Matt Stauffer: Right. Samantha Geitz: I very quickly figured out that I was not going to be learning the sort of things I could go get a web development job for. I was working when I started grad school in admissions at the University of Missouri Graduate School and trying to do that and full time masters program, and self-teach was just too much. I took a risk and quit my job and just made a living for the rest of grad school freelancing. That would have been ... I think my first client paid me three grand for a pretty complex WordPress site. Matt Stauffer: Yeah, I was going to ask was tech stack were you doing most of that freelancing in? Mainly WordPress? Samantha Geitz: It was pretty much all WordPress in the freelancing and then I was self-teaching Ruby on Rails. Matt Stauffer: Did you do the front ends of those or did you use templates mainly? Samantha Geitz: I did a lot of child themes so I used Genesis or something and then build themes based off of that. Matt Stauffer: Yeah, okay. You had at least front end capability. You probably knew CSS and jQuery, JavaScript all that stuff by that point? Samantha Geitz: Yup. Matt Stauffer: Okay. Then Ruby on Rails. Tell us that journey. Samantha Geitz: Laravel, if it existed at the time was not well known. I mean this would have probably been Laravel 2. Matt Stauffer: Yeah. Samantha Geitz: Basically I was just looking into, okay, I wanted to build web applications. I very quickly figured out the limits of WordPress and I don't know. Ruby on Rails was hotness then, so I built myself a personal blog site just to learn it. I don't think anyone has ever paid me to write Ruby on Rails code. Matt Stauffer: Okay. Samantha Geitz: But it gave me decent MVC background and my first job, I was at ... I was just about to finish grad school and I was at the University of Missouri and I was back up at Chicago at a Ruby meetup and there was an open bar that was sponsored by, gosh I don't even remember. One of the API companies, so I met this guy who said, "Oh yeah, My company's hiring and we do Rails." And I was like, "Okay, cool." Samantha Geitz: He got me this interview and got the job and then they told me I would be doing WordPress. It's like, "Oh okay. That's fine. It's not really what I want to be doing." But they said eventually they'll move me over to a more of a MVC stack and I proceeded to do WordPress for the next year and a half. Matt Stauffer: Yeah. Samantha Geitz: But we landed a client who was going to not be great for WordPress so I was looking into Laravel at the time, because I had a really strong PHP background. Hadn't done Rails in a while, and that was right ... That was Laravel 3, because Laravel 4 was released somewhere in the middle of that project and we upgraded. Yeah, that was how I got into Laravel. Was just wishing I could do Ruby on Rails and I've got this WordPress background so I know PHP, so I guess this is what we're doing now. Matt Stauffer: Right. Was the clients, I don't know if you remember, it's been a while, but was the client's tech stack such where if you had been a super accomplished Ruby developer they would have signed on, or would they prefer PHP as well at that point? Samantha Geitz: Are you talking about at the last agency that I worked at? Matt Stauffer: That one company where you discovered Laravel 3. Samantha Geitz: They had been ... Matt Stauffer: Do you remember? Samantha Geitz: They had been pitched on a WordPress site, because ... The company I worked at, which I don't think technically even exists anymore, it's called Dojo. They were a very small number of ... It's called WordPress VIP agency. WordPress VIP definitely still exists. It's actually a fantastic service, but it's basically automatic. Who's the company who does WordPress. It's their premium hosting and support solution. I think it starts ... Then it was $3,500 a month. Samantha Geitz: You had sites like Pandora with their entire advertising platform was built on it. I think Time Magazine. We did a lot of work for Tribune. I actually got a lot of enterprise WordPress experience, just because they wanted ... There's only 10 shops in the world who did it. Matt Stauffer: That actually do that kind of work. Samantha Geitz: The problem was we just pitched WordPress for everything and when it's something that doesn't really fit into that posts and pages paradigm, and they wanted all sorts of crazy relationships between entities and stuff, so I steered them away from that and I had a lot of flexibility in the stack I could use, so I had been looking to Laravel a little bit, and said, "I'm going to learn it." And I used that project to learn it. Matt Stauffer: Yeah, yeah, yeah. Samantha Geitz: It was pre Laracasts too. I think. Matt Stauffer: I could be wrong, but I believe that Laracasts came out during 4, but I could be wrong. I've got to go look that up later. Samantha Geitz: I used Dayle Rees' book to learn it. Matt Stauffer: Yeah, there you go. Samantha Geitz: It was called Code Bright I think. Matt Stauffer: Code something. Samantha Geitz: Whatever the Laravel 3 one. Matt Stauffer: Yeah exactly. Samantha Geitz: That was how I learned Laravel. Matt Stauffer: Nice. Yeah, that's how I learned it too, and then eventually Jeffrey. All right at that point ... I was trying to think. There was a couple of questions rolling around. I had rolling around about prior to that. I'm trying to think about your background. Matt Stauffer: You had got ... did you finish your undergrad degree in English before you went to do the CS? Okay. I'm sorry, she nodded. Samantha Geitz: Yeah, it was just an elective. I had some elective I had to take to graduate. I was working full time at Best Buy and just was the only thing that slotted into my schedule. Matt Stauffer: Yeah. Samantha Geitz: I was like, "Okay. I'm not sure how this is going to go because I haven't taken math in five years." Matt Stauffer: Yeah, turns out. Samantha Geitz: Clearly it worked out. Matt Stauffer: Turns out. Okay you worked, you're doing WordPress. You did a little bit of Laravel 3, what was the next transition from there. Samantha Geitz: Okay, I don't want to do WordPress anymore, I know Laravel know, so I got a job at this start up called PackBack. Who are still around. They are a Shark Tank funded start-up in Chicago. Mark Cuban's on their board. Matt Stauffer: Aye-oh. Samantha Geitz: Yeah. Matt Stauffer: You can see them on YouTube right? I feel like I saw that at some point. Samantha Geitz: Probably. Matt Stauffer: Their episode. Samantha Geitz: Yeah, I got a job working there and pretty specifically as a back end developer, because their front end stack was Angular and the big Laravel project I'd done for the previous agency, we had a ton of ... it ended up being a very complicated Angular set up and people hear me talk about Angular PTSD and that's why. It was just a single page application that should not have been a single page application. It was just a lot of Angular. Samantha Geitz: Yeah, I pretty much did strictly API development for the next year and a half after that. It was all Laravel and it was microservices, and that's how I got really pumped about that idea, which also meant my front end chops took a nose dive, which is a big part of the reason I ended up learning React. It's like, all right, I need to get back into this world. Matt Stauffer: Get back into it. Yeah. Samantha Geitz: We don't have API developers at Tighten. Matt Stauffer: Yeah. No, everybody does everything. Let's talk about your work there a little bit. I think everyone has a pretty good sense of the value of single page apps in API first. Just to recap real quick for anybody who hasn't heard these pitches. API first basically means build the API, then build a JavaScript single page app that consumes that API. Then when you need to build a mobile app it'll magically be fast and easy and quick, because you already have an API that works. There's definitely some true promise there. Matt Stauffer: One of the things we've talked about a lot lately at Tighten, over the last year is as someone ... I'm a little bit of an old head developer where I'm just like, "Hey, you know what? This is the way I've been doing it for x number of years. I want to keep doing it." But I wanted to leave space for us to try those things. The SPA's and the API first stuff like that. We've definitely seen some of the pain points of microservices. Some of the pain points of SPAs and stuff like that. Matt Stauffer: I would say the bigger your team, the bigger the company, the bigger your needs, the more likely the mobile needs, the more likely that you will find the API first and the SPAs to be worth the costs they introduce. I would assume that where you were, would have been one of the places where that's just a clear win. I don't want to dig too much into their intellectual property or anything like that, but you mentioned that an SPA may end up being a little tough in some context. Without revealing any of their secrets or anything like that, is there anything you can talk about that helps you understand when you think an SPA is or is not the right fit? Are there any signs? Anything like that that helps you really think through that? Samantha Geitz: I feel like where I've gone on it is, yeah, if you know you're going to have a lot ... I say you know, and one of the things about working with a start-up is you hope. You hope you're going to grow, you hope you're going to be handling a lot of traffic and stuff, and I think a lot of companies end up doing a lot of premature optimization based on that. Samantha Geitz: Compared to a situation in which you're refactoring a monolith and it makes sense to break off some asynchronous tasks into a microservice. That's a place I would definitely reach for it now. Samantha Geitz: Single page applications that have a lot of views and very complicated authentication and authorization requirements, my preferred way now is to have a Laravel app with Vue or React components where you're utilizing a lot of server side stuff, and a lot of out of the box authentication things and then just the really interactive UI things that makes sense to have JavaScript that's where you have ... I have found that to be easiest personally. I think a single page application, if it's really a single page can be great. Samantha Geitz: I think a single page application where you're trying to have some very complicated web application with multiple pages, gets complicated. There are routers and stuff that can help you handle it and I can see the argument for using it, but I have always found that the overhead is a lot more than using something like Laravel or Rails with server side stuff. Matt Stauffer: Yeah, it's interesting. Samantha Geitz: You don't have to worry about someone going into a console and messing around and seeing encrypted things. I don't know. Matt Stauffer: Yeah, it's interesting you mentioned the single page because single page app ... Theoretically the single page is referring to the fact that it's a single page that doesn't get navigated away from, but like you mentioned, single page apps are a lot less complicated when they don't have to handle I guess what you'd say like theoretical multiple pages that are served by that one page. You could say how many URLs does it serve? If that single pages serves a single URL your complexities going to a lot lower than if that single page serves multiple URLs using a router. Samantha Geitz: Yeah, not to say that you should never have multiple views in a single page application, because of course that's silly, but if you have a Laravel app with 30 controllers that all have all these routes and stuff, and you're trying to do that in the context of a single page application, can you do it? Sure. Is it going to be a lot more code and overhead than if you did it service side? Yes. Absolutely. Matt Stauffer: The question is do the pros outweigh the cons in that context? Sometimes the assumption can be well it's the new thing and eventually we can use it therefore yes, but you've got to realize the cons. Caleb's been talking about it a lot this recently because he lived in microservice land for a while, so he was becoming a little bit of the captain of the cons of microservices. I'll have to ask him about that another time. I think that you are ... obviously you know microservices, but you also know full stack routing JavaScript, all this stuff, super, super, super well. Matt Stauffer: You gave a talk about microservices. It's funny, Chris Fidao gave a talk about hexagonal architecture and as far as I know doesn't do it at all right now. You gave a talk about microservices and obviously I haven't assigned you to any projects in the microservices sense, but I know that you do side stuff. If you were doing a side project, do you default monolith right now, and if so, can you tell me one or two really clear signs that tells you to ... Regardless of SPA versus anything else. One or two clear signs that makes you want to pole servers out. Samantha Geitz: Yeah, I can actually give a concrete example from the last six months. A friend and I were working on basically ... Call it LinkedIn for professional gamers. We realized specifically for this game Overwatch which more recently has ... It's called Overwatch League which almost is like a professional sports franchise model and these were selling for 15 million dollars. Where it's like the Houston Outlaws. Matt Stauffer: That's a crazy number. Samantha Geitz: Yeah, I mean there was a lot of money floating around the scene and these professional players, there was a discord chat room in which these coaches and owners for these 15 million dollar teams would be scrolling through players looking for teams. So we're like oh, there's an opportunity here. Matt Stauffer: Yeah. Samantha Geitz: We basically built an app to hook professional players up with teams and one of the things we wanted to do to keep people coming back was to integrate their Twitter and Twitch stuff and Twitch specifically doesn't have any web hooks or anything where it's like, "Oh, this new thing is on Twitch, we hit your app." We had to pole it. Matt Stauffer: Yeah. Samantha Geitz: It was just this process I was constantly running in the background and basically I built some logic into the main app to figure out who needed to be refreshed, because obviously if someone is streaming, you want to refresh them more often, so when they're offline they're no longer showing. Matt Stauffer: Yeah, yeah. Samantha Geitz: The actual thing that was hitting the Twitch API was a totally separate microservice just because it was this process that was constantly running and I didn't want that load on my regular server. Matt Stauffer: It's funny. That's my exact same use case is that when I'm finding myself in a place where I'm interacting with a third party server that doesn't present the data I want or in the timeline that I want or takes too much load, that's the first thing I want to do, is I build the API I want, and then I make that API do all the work of getting the data into that shape or whatever. I like that. Samantha Geitz: Yeah, anything that you would have to run asynchronously and could put a lot of strain on your server and you want to make sure that ... I would reach for a microservice before I'd start getting into crazy load balancing stuff for infrastructure because I think it's pretty easy to just build something that does a thing. You can swap it out easily if you need to. Matt Stauffer: Yeah. Samantha Geitz: But would I build a separate microservice for users? Probably not. Just to have it different. Matt Stauffer: Okay. Your day job is at Tighten. We talk about what you do there. You also speak at conferences and you also blog. Even though you don't love teenagers you did end up teaching. Tell me, who is your most common audience that you're thinking about when you're giving a talk, and what are your most and least favorite things about giving conference talks? Samantha Geitz: I gave a talk a couple of weeks ago at Erie Day of Code and I literally had a slide where I made assumptions about the audience and one of them was that they're white males. It was a feelings talk about actually design patterns and microservices and crazy architecture. Looking into the reasons that people use that. Matt Stauffer: Interesting. Samantha Geitz: I feel like a lot of it is imposter syndrome where you feel like people on Twitter get very opinionated about software and say things like, "Why are you putting models in your controllers? You should have a repository for this." Just get really dogmatic about it. You get to the point where you can build anything, even if that's just in a way where you just have very basic MVC and you start learning more about design patterns and you just want to apply them to everything because you have this knowledge that's so exciting, and also are you going to be judged if you don't. Samantha Geitz: I would like to start speaking at more women in tech spaces, but I'm very aware whenever I'm in front of an audience that it's mostly white guys in the 25 to 35 age range. Matt Stauffer: Yeah. Samantha Geitz: I mean that's generally the audience I'm aware of. I do hate public speaking through. I'm very introverted despite my personality on Twitter and getting up in front of a crowd and speaking is very, very overwhelming for me sometimes. Matt Stauffer: What's your best trick for when you're preparing to give a talk to help either reduce your nerves or prepare in a way that would make you feel more confident or something like that? Samantha Geitz: I just don't over prepare and I get up there and just almost treat it like a conversation. I've been told I'm a very conversational speaker. I feel like if I over rehearse I will get very stilted. I also give myself permission to use a little profanity if that's ... Matt Stauffer: Yeah. Samantha Geitz: Or make jokes if those are there. Sooner or later I'm going to make a very off color joke in a very public place and it's going to get me into trouble, but it hasn't really happened yet. Matt Stauffer: So far, so good. Samantha Geitz: So far, so good. It's one of those things I just muscle through and it's gotten better over the course of my career. I told Matt at my last review in November I think, that that was my goal for 2018 was to get back out there and give a bunch of talks and not let my stagefright overwhelm me and I'm two in and Laracon coming up in July, so when you give me my review next week Matt ... Matt Stauffer: Hopefully we'll look positively on that. You told me the thing that you like the least which is public speaking. What do you like the most about giving conference talks? Samantha Geitz: Clearly the Twitter fame. When you see that follower count tick up. It is the Twitter fame. I'm trying to think of another ... it's like, no. Matt Stauffer: That's true. That's okay. Samantha Geitz: It's fun getting up there and doing a good job and knowing that I conquered my fear of public speaking and didn't ruin my career. Matt Stauffer: Yeah. Samantha Geitz: I just gave a React workshop at PeersConf and it was pretty small. I think it was maybe 15, 20 people and so I had a lot of space to go around and work with people one-on-one and get people excited about this technology that I'm really excited about and that was cool too. Just getting that really face-to-face time, compared to being on stage and talking at 800 people, most of whom are probably just screwing around on their laptops anyway. Matt Stauffer: Yeah. Samantha Geitz: I had a lot of people come up to me after my white boy feelings talk at Eerie Day of Code too and say, "Oh actually that really resonated with me. That yes, I was there in my career too and I understand that impostor syndrome is a thing for men that isn't talked about." Matt Stauffer: Yeah. Giving people permission to experience the things they're experiencing and language for understanding what it is. Samantha Geitz: Something we talk a lot about a Tighten and it's something that's talked a lot about in various women in tech circles, but I feel like tech as a whole, we don't talk a lot about mental health issues, we don't talk a lot about impostor syndrome and the fact that everyone experiences and if you don't you probably have horrible Dunning-Kruger and you're a lost cause. Samantha Geitz: One of the things I had in my slide that I'm going to assume about you is A, anyone at that conference is very smart and cares about writing good code. Matt Stauffer: Right. Samantha Geitz: Because you're not going to conferences if you don't care, but also that you're aware of that fact for everybody else in the room. You know that everyone else in tech is smart and is trying to do a good job and you compare yourself to that bar and that's a very intimidating thing. I think women feel it more acutely or people of colors, people who are more outside of the mainstream, but white guys feel it too and it's something that's just not discussed. I think to the determent of all of us. Matt Stauffer: I think that's really helpful. Especially a lot of conversations that certain around understanding the diversity of experiences, especially a sentence that says, "Women and people of color experience this more." I think a lot of people instantly hear that you're going to be telling white guys that, "Oh well, we have it really easy." I think it's really helpful to hear, I think for everybody to hear someone say, "Women and people of color have it especially tough, but white guys, nobody's talking about the fact that you experience this thing as well." And it's not just white guys. It's men that aren't white, or white people that aren't men, but the more ... Samantha Geitz: Yeah, non binary, trans. Matt Stauffer: But by that I mean the more normative. My white male, heterosexual, Christian, blah, blah, blah American. The less likely you tend to feel in these kind of conversations that there's a space where you actually have valid experiences, valid pains, valid difficulties, and there's a lot we can say about that that this is not the podcast for, but I think one of the things I really appreciate is that in a context where you are explicitly saying, "Hey, it can be harder in these contexts to be a woman or a person of color, or whoever else, that does not mean that other people aren't having this experience. That does not mean that people with privilege or however you want to talk about it, are not also having impostor syndrome issues, and sometimes it's actually less approved for white guys to talk about these things. Matt Stauffer: I think I'm really grateful that you as not a white guy are giving people that permission to feel that, the language for that and everything. That's super cool. Samantha Geitz: I mean ultimately the main takeaway of the talk about reading other people's code, good code or bad code is, you don't know the space they were in when they were writing it. You don't know their motivations for writing it, but it was never that they were trying to make your life miserable. Matt Stauffer: Right. Samantha Geitz: No one wrote code like, "I want the person who maintains this after me to struggle." Treat people with kindness even if you will never see them because you inherited it. You have to give them the benefit of the doubt sometimes because everyone does have those struggles in this industry. It's really tough. Matt Stauffer: That's a great point. I mean honestly, imagine the worst pressure you've ever been under during a coding session where the client was pushing you. They're rushing you and your dog just died the day before and you want to do really great work, but the client needs something tomorrow and then they cut off the contract after that, and you did your best but you aren't proud of that. Every time you interact with somebody else's code, imagine that they were in that circumstance and it's like the, "Oh okay, maybe they're not a total bumbling idiot." But maybe they weren't in ... It's like people often say, you compare other people's worst code against your best code, or whatever. The code you think you write even in your head even though it's not actually the code you write. Samantha Geitz: Exactly. Sometimes that code that you're looking at that's the bad code is your own code and you need to be able to forgive yourself for writing bad code six months ago, because you didn't know better. I mean I feel like if you're not looking at code from six months ago and saying, "WFT was I thinking?" Matt Stauffer: Yeah, yeah, you're not growing. Samantha Geitz: That means you're not improving. That's not a good thing. Matt Stauffer: Yeah. Samantha Geitz: That was a cool talk and a lot of people came up to me after and said that they enjoyed it and it resonated with them. I'm sure a lot of people were sitting there like, "This is stupid." Matt Stauffer: She's terrible. Samantha Geitz: "I am the smartest person in this room." Matt Stauffer: Right yeah. They have other problems. Samantha Geitz: They weren't picking fights with me so that's fine. Matt Stauffer: Well and that's the Twitter fame part right? If you ... not to say that we never get any benefit out of giving these talks. Sometimes you get paid, sometimes you have certain experiences, but when we're speaking at the type of conferences we're speaking at, we're not making life changing money. We're not making even pay you back for your time kind of money. We're making, "Hey, I'm going to try and minimize the cost when you just took off work for five days kind of money." Or whatever else. Samantha Geitz: Right. Matt Stauffer: There's at least an element, and I think usually a pretty large element of doing it because you want to help people, and you want people to learn and you want people to grow. In terms of the joke that you made about, "I do it for the Twitter fame." I mean what I hear there and I'm pretty sure this is what you meant was hearing the feedback from people that the work that you just put into trying to help them helped them is one of the most affirming things that you can get after a talk. You're like, "Oh, I overcame impostor syndrome and I overcame public speaking anxiety and I spent all that time preparing it and it's making the impact I wanted to make." And that makes you want to go do the thing again. Did I just read you right on that? Samantha Geitz: It is. You did. It's a very affirming experience and I do think it's very important. Whether or not you do public speaking or blogging or tech overflow or just making it publicly known on Twitter that you're available for mentorship, I think it is really important in this industry to give back and to talk about your failures and successes and to pass it along to the next generation of developers. I mean that does have normalize it I think. It helps normalize the shared experience where you see people's victories on social media and not their struggles. I'm not going to go on Twitter and say, "I had a really bad day where I was struggling with this thing and just didn't get it and I feel awful about myself right now." Or. "I dealt with this exact issue six months ago and screwed it up and it was a big deal, but I survived and here was my takeaway." Matt Stauffer: I survived. Samantha Geitz: One of the things that I've realized over my career and then working with more junior people is, sometimes I get tasked something and I have no idea how to do it, but I have the experience now to know that I've managed to figure it out every other time. Matt Stauffer: Right. Samantha Geitz: And every single other time it's been okay and a lot of my job now is just talking to our more junior developers and saying, "It'll be okay. You will figure it out. You have the team behind you. No ones going to judge you if you don't get it right on the first time. That's what code review is for and also, I did it and screwed it up this one time so if you have this bad day where you got a bad code review, it's fine." Everyone's the hardest on themselves generally I think. Matt Stauffer: Yeah, that's a good point. We're short on time, but this serves as one more question I want to ask and then we'll start rolling down a little bit. Samantha Geitz: Yeah. Matt Stauffer: You have worked for consultancies and product companies. This may be a hard question to answer, but if it's not, now that you work at a consultancy, what is the best and worst aspect of working at a consultancy relative to working at in a product company? Samantha Geitz: When I joined PackBack, they were still fairly young. They were migrating from this really gross Magneto thing to a Greenfield thing. I got the Greenfield fun, new shiny experience, but then we got to the point where we're launched and maintaining. Working at a consultancy gives you the opportunity to work with a very, very large array of projects and some of them are going to be Greenfield new and shiny and you learn new things, some of them are going to be, oh God, there's this awful legacy app and then you'll learn new things. Matt Stauffer: Right, right. Samantha Geitz: I think it's really, really easy to get a very wide diversity of experiences and that is going to make you an awesome developer and you'll be able to tackle a lot of things that come your way and see pitfalls that you wouldn't if you were just working on one platform consistently. I do love product, that's why I'll always have separate side hustles going. Especially now that I'm not day-to-day on code as much at Tighten, just so I can stay on top of the new shiny and I've never worked for a Google, or in Chicago like Groupon or Grub Hub or some of the bigger ones. I've never had that experience. All my enterprise-y stuff has been I'm developing this large WordPress site or something, or working on ... I'm one developer working on this small piece for this other company, not I'm part of this very large team in a very medium sized fish in a huge, huge, huge pond. Samantha Geitz: That's one thing I've lacked in my career and now that I work at Tighten have no desire to go seek at all. Not to say I don't have that opportunity but nah, I'm good. Matt Stauffer: All right so you just said very nice things about consultancy's. Was the worst thing snuck in there about, "Oh, I like to do product stuff?" Or is there a worse thing about working for consultancy that you can share? Samantha Geitz: I feel like if you work for a good consultancy who helps ... one of the problems with client works is they're stress tends to trickle in and become your stress or sometimes becomes a deluge and it's your stress. I mean agencies and consultancies have a very bad reputation for burning people out and working them crazy hours and crunch time and deadlines and let's plan things six months out and make this promise and then oh God, we're not going to be able to deliver. I've had both. Matt Stauffer: Yeah. Samantha Geitz: I've not so much had the latter at Tighten, but I would be very ... If Tighten shut its doors tomorrow I would probably go to a product company over another consultancy unless I really knew that stress was not going to become my stress because I just ... at this point in my life, don't want to deal with it anymore. I'm not working 60 to 80 hour weeks. I'm just not. Matt Stauffer: Yeah, I think you have to be super intentional in any company to create good working environment and the product company, when you create a good working environment it stays relatively stable, whereas with a consultancy it's your working environment plus you're working environment protecting you against any potentially problematic client working environments. There's two vectors of attack. Samantha Geitz: Right. Yeah and the clients are constantly changing and rotating probably and a lot of times they're coming to you because, "Oh, we have this massive deadline and we don't have the manpower to meet it." Or, "Our stuff is so broken and it's ... We need help." We've had a lot of people come to us, "All of our tests are failing and we just don't have the space to fix it. Please come help us." Projects like that can be really, really fun, but it's always an opportunity for stress. Matt Stauffer: Yeah, stress to sneak in. Samantha Geitz: Matt and I have a lot of conversations like, "Okay, how do we keep stress from trickling down to the developers?" Matt Stauffer: Yeah. Samantha Geitz: That's a lot of my job is just to be a shield against that. Matt Stauffer: Very cool. I will make it through a podcast one day without saying I could talk for hours. Today's not that day. I could talk for hours, but we're out of time. Is there anything that you wanted to cover that we haven't gotten a chance to talk about yet? Samantha Geitz: Oh man, I don't know. Should we plug the dev battle? When's this podcast being released? Matt Stauffer: This will be released within the next week. I've heard that some company, I don't know. Some company you might work at will deal with it, but I'm trying not to nepotize that, but if that's what you want to plug to your guests then go ahead. Samantha Geitz: Oh no. This is the Laravel podcast nepotism and feelings version for sure. Back on the React track, if you are interested in learning more about React Native specifically and/or Native tools if you care about Vue. No one listening to this podcast cares about Vue though clearly. It's Keith Damiani, who's the other senior developer and I had a dev battle about a year ago and I still think the results were bananas, but Vue was declared the winner, so we're doing a round two. Or I guess a part two with three rounds and it's the React Native versus Native Tools battle. It is called Native Tools ... Matt Stauffer: I think it's Native Script right? Samantha Geitz: Is it Native? No you're right, it's Native Script. See you can tell how much I know about this. I just literally wrote a blog post about it too. Native Script. Part one is going to be we basically just build a super basic card app. We're either going to just save it to whatever local storage or I have an API set up with predefined user authentication tokens. Samantha Geitz: Round two is authentication authorization, so trying to figure all that out and round three, because a question. We've not done a React Native project yet as a company and one of the questions Matt and Dan are always asking me is how much code reuse is possible, so if we want to build a web app can we use React Native code? Matt Stauffer: Right. Samantha Geitz: Round three is us taking those apps and then basically building a web app also and seeing how we can reuse code. We also have Caleb Porzio joining Team Vue and Daniel Coulbourne joining Team React. We've pulled the 20% time ... Matt Stauffer: 20% FM. Samantha Geitz: Yup. Pulled those guys in. Oh and the one thing I didn't mention is we don't really know these tools that well, so we're just figuring it out on the fly. Paring and ... Matt Stauffer: It's very different ... Last time it was a React developer and a Vue developer with an unknown task. Now it is you know the task but you don't know the code. It's going to be a total flip of what it was last time. Samantha Geitz: Right, we have mock ups, we have the API. Everyone knows what we're building, which oddly, even though I don't know this and once again, the internet might look at me and be like, "Oh, what is this girl doing?" It's so much less pressure. I'm okay with live coding with the expectation like, "I don't know what I'm doing. I'm figuring it out." Matt Stauffer: Right. Samantha Geitz: "If I don't figure it out, okay, you try to figure out React Native in four hours bozo." Matt Stauffer: Versus trying to pretend to be the expert and then people can criti ... yeah yeah. Samantha Geitz: Exactly, exactly. The pressure of live coding for any of y'all who haven't done it, especially in a timed battle context. Matt Stauffer: It's extreme. Samantha Geitz: Things that I do every day, I was like, "How do I do this? I need to look it up." It's hard and I'm not even sweating this one, but it is ... if it's coming out next week, it'll be this Friday, May 25th. It's battle.tighten.co we have all the info and there's a blog post coming out too. Matt Stauffer: If you listen to this after the fact, the recording will be there as well. Whether you listen to this before or after the battle still go to that same site. Samantha Geitz: Well there's going to be three rounds, so even if you miss the first round you can come and ... It's going to be on Twitch. You can smack talk. You can help us if you know anything at all about React Native or Native Script. I wanted to call it Native Tools again. Samantha Geitz: Yes, it will be a very fun time. Spicy meatball of a time. You should tune in. Matt Stauffer: I feel better about this being less nepotistic because they planned this entire thing without me even knowing it was happening, and they literally planned the first one during my son's pre-school graduation so I won't even be there. I'm going to tune in after the fact and hear how it went. I actually am disconnected from this, I promise. Samantha Geitz: You making it sound like we did it on purpose. We didn't want Matt there so we planned it during Ky's preschool. Matt Stauffer: It's not my thing that I'm pretending to not be ... I actually wasn't there for the planning so it's just going to be a nice surprise for me as well. Samantha Geitz: It'll be a nice surprise for all of us. It's going to be ... We're winging it y'all don't judge us too harshly, unless it goes well in which case, yeah, you can ... Matt Stauffer: We totally knew what we were doing. Right? Okay, anything else you want to plug or talk about or share? Samantha Geitz: Nope not really. Follow me on Twitter. Matt Stauffer: If people want to follow you, yeah, how do they follow you? Samantha Geitz: Yes, Twitter fame, I told you. It's @samanthageitz which G-E-I-T-Z I'm assuming also you probably will see my name in your little ... Matt Stauffer: Put it in the show notes, yeah. Samantha Geitz: Podcast thing. It's a lot of ... can I say, shit posting. Can you beep it out? Matt Stauffer: You can say shit posting. Samantha Geitz: Shit posting. I'm like people listen to this- Matt Stauffer: That's our cuss for the episode. Samantha Geitz: I haven't. Have you noticed I didn't Matt? I was trying really hard not to swear on the Laravel podcast. Matt Stauffer: I know I was really proud of it. Samantha Geitz: Yes. I have the filthiest mouth at Tighten. I haven't been reprimanded and I still feel like it's a thing. I also was told that I'm the bro-iest brogrammer at Tighten which is now part of my Twitter. Matt Stauffer: That is most certainly true. Samantha Geitz: Bro I would crush some code. Matt Stauffer: Right, our single cuss down at the end of the podcast. I think I'll probably let this one slip through. Samantha Geitz: Yes. Matt Stauffer: All right Samantha, this was a ton of fun as always. I loved it. Thank you so much for giving us some of your time and your story and we will all see you at the Battle for React and Vue and whatever all that stuff. Samantha Geitz: Well thank you so much for having me. Matt Stauffer: Yeah, see you later. Samantha Geitz: Bye.
Nesta semana os suspeitos do costume juntam-se com o Tiago Dias para conversar sobre Frontend Development e o que isso significa hoje em dia comparado com anos atrás: Frontend Development CSS Frameworks Links: Jeffrey Way - Things Laravel Made Me Believe - Laracon EU 2015 Bootstrap TailwindCSS Bulma Spectre.css Com: Nuno Maduro João Patrício José Postiga José Borges Tiago Dias Matt Stauffer Youtube Video Follow us on Twitter
The Season 2 crew reunites. Laracon Venue: The Museum of Science and Industry Evan You Ryan Holiday / Conspiracy Jocelyn K. Glei / Hurry Slowly / Unsubscribe Marvel.app Zeplin.io Laravel: Up and Running A Brief Introduction to Progressive Web Apps, or PWAs Marcus Aurelius book - Meditations The Daily Stoic AWS Lambda Esther Perel - sample TED talk: The secret to desire in a long-term relationship The Imposter's Handbook The Millionaire Next Door The Simple Path to Wealth Editing sponsored by Larajobs Transcription sponsored by GoTranscript.com [music] Matt Stauffer: Welcome back to a special edition of the Laravel Podcast season three. It's season three but it feels like season two. Stay tuned. [music] Matt Stauffer: Welcome back to a special edition of the Laravel Podcast. This is season three but I wouldn't hold it against you if you got surprised because I have two guests with me. Not only do I have two guests but I have the OG two guests. Can you guys say hello to the people? Jeffrey Way: Hey, everybody. I'm Jeffrey Way. Good to be back. Taylor Otwell: I'm Taylor Otwell. Matt Stauffer: You may have heard of Taylor. We got Jeffrey Way, the creator of Laracasts and bringer of many of us to Laravel and then Taylor Otwell, OG Laravel Podcast, OG Laravel. We figured it's time for a little bit of a breather in season three with all these episodes and just catch up and see how the crew is doing and catch up on things. Stuff we've got on our plate for today is definitely talking about how Laracon is looking for this year, what's going on with the development of Laravel and Laracasts and everything like that. I figure the easiest and most concrete thing for us to talk about is Laracon. What is going on? How is ticket sales? How is speaker lineups? How's the venue looking? How's Chicago looking? How's everything going for Laracon right now. Taylor Otwell: I think it's going pretty well. The venue is the Museum of Science and Industry in Chicago which is a really large museum. On the South side of Chicago. We'll be in their auditorium and the ticket sales are going really good. We already sold out. That's about 850 attendees, about 50 of those attendees are going to be speakers and sponsors and then around 800 of them are going to be actual ticket purchasers from the community. This will definitely be the biggest US Laracon. It'll probably be the biggest Laracon yet so far. Although Laracon EU is usually a little bigger, so I wouldn't be surprised if they sold more tickets this year. I'm pretty excited about it. All the speakers are pretty much lined up. Some of the big name speakers that people may have heard of so far. Of course, I'll be there. Creator of Laravel, Evan You creator of Vue will be there. Uncle Bob Martin who's famous for writing some very popular programming books and just being a programming teacher will be there. Ryan Holiday, the author of several books that people may have heard of. His latest book is called Conspiracy but he also wrote The Daily Stoic, Perennial Seller, Obstacle is the Way, Ego is the Enemy. Some pretty popular books actually. Who else? Adam Wathan will be there. Several other community members will be there. I'm really looking forward to it. I think it's going to be a great talk. Right now, what I'm working on is just ironing out food, drinks, all those extra things you have to do for a conference. T-shirts, about to order those probably. Sponsors, we'll have 11 sponsor tables at the venue. We have quite a few sponsors again this year. It's going to be a packed house. Jeffrey Way: I always wonder how you keep track of everything. Matt Stauffer: Yes, me too. Jeffrey Way: Do you ever get close to the conference and think, "Oh, my god. I didn't even do that yet?" Taylor Otwell: One way I-- Matt Stauffer: Do you have a checklist? Taylor Otwell: One way I keep track is I have a spreadsheet from last year with every expense. That actually serves as a checklist. Like, "Hey, badges are on here as an expense. I should probably order those for this year." I just duplicate that every year and then I type in the new expenses and it also serves as a projection for profit and loss on the whole conference. It serves a dual purpose as a checklist and as a profit estimator for how the conference is looking to make sure I'm not way overspending. Especially, on speakers this year. We've spent probably $50,000 on speakers this year just because we several speakers that have a speaking fee and then we try to pay every speaker at least a few thousand dollars to make sure they're not just losing money coming to the conference which can happen. I don't know if you've spoken at conferences. As a listener, you may know that often it's a breakeven or maybe even a losing affair. Trying to make it somewhat worthwhile. Jeffrey Way: I've been to some where you don't get anything and that's just how it is. Look, you can come and speak but we're not giving you a penny. Taylor Otwell: [chuckles] I feel like I usually lose money. Matt Stauffer: That's most of them. Jeffrey Way: I used to go to a lot of WordPress conferences. What were they called back then? WordCamp? Taylor Otwell: Yes, WordCamp. Jeffrey Way: Maybe. With them is like they just don't have the money. They don't have the budget. You're doing that all on your own dime, if you want to go. Matt Stauffer: I'm looking through this list of speakers. There's quite a few people who I don't know of, but I've heard you guys talk about them. Jocelyn Glei, maybe? Ryan Holiday, you've mentioned him being an author. Then, there's one other person who I didn't know. Who do I not know? I guess it's just them. I think everyone else here is either, Jason Freed or Bob Martin or Evan Yu or people who are pretty reputable members of the Laravel community. Although we do have a few first-time speakers, TJ Miller, Caleb Porzio, Colin DiCarlo are all speakers-- Taylor Otwell: Collin DiCarlo is not. Matt Stauffer: He's not-- Geez, I thought he was-- Taylor Otwell: No. I think he's a 2016 Louisville speaker. Matt Stauffer: That was the year I was at home with the baby, so my bad. Caleb and TJ. Jocelyn, you mentioned Ryan. He's written a couple books. I need to go check those out. Can you tell us a little bit about Jocelyn? Taylor Otwell: Jocelyn runs a podcast called Hurry Slowly where she talks about work, productivity, burn-out, stuff like that. She's actually interviewed Jason Freed on the podcast. She also wrote a book called Unsubscribe which is on Amazon. You can check out. It's just about the overabundance of notifications and busy-ness that's prevalent in our tech world especially. I think she's going to talk about similar topics at the conference. I entirely forgot Jason Freed would be there. That's kind of a big deal. [laughter] I've been so busy with other stuff. Matt Stauffer: Let me ask you. Do you guys feel overwhelmed sometimes by all of the work you have to do? Do you feel that you can manage it fairly well day-to-day? [crosstalk] Jeffrey Way: I'm often overwhelmed by the work on my plate. My life is a constant battle of trying to figure out whether I'm overwhelmed because I don't have everything settled on my side or whether it's because we need to readjust the company a little bit. There's always a the, "Oh, Dave quit and he used to do all this high-level administration stuff so I took on all of his jobs for a while. We need to hire a new Dave." That was the thing for the longest time. "Oh, we've got four more developers than we did a year ago so there's a lot more management" or "This one client is requiring all these needs." Sometimes, it's process stuff. Sometimes, it's just I need to stop screwing around in my free time and actually, work through my email backlog, or I need to figure out how to handle my tasks better. Right now, I'm actually doing really good. It's because I've spent the last couple of weeks really putting in a concerted effort. We also have hired someone who is not joining us until mid-May, who's going to take probably a third of my job off my plate. It's funny because I was actually-- That whole thing, there was this guy, Dave, who managed all this. A lot of those responsibilities are going to be back off my plate soon, so I'm getting to that point. I usually can tell, "Do I finish my day with an empty email inbox and a task list with a couple items left on it and a clean desk? Do I finish my day with 70 emails still in my inbox, 20 things in my task list, a big pile of paper on my desk." Usually, those are the signs for me of, "Am I struggling to keep up, or am I actually on top of my life?" Matt Stauffer: What about you, Taylor? Taylor Otwell: I was just thinking I feel less overwhelmed by the work, and more overwhelmed by the expectations of everything. Because I don't really have that much I have to work on every single day, like Forge is going to run so I just have to answer the emails. It's a little different, I guess, because you probably want to crank out videos. I don't know what your schedule is and then, Matt probably has his daily tasks. For me, it's this expectation of somewhere out in the future, I have to do something impressive again. Matt Stauffer: Do something amazing. Taylor Otwell: I have to get up on stage and speak about it and it has to not fail. That's the pressure I feel really-- weighs on me every day, basically, because at Laracon, there has to be something cool to unveil, which, nobody panic, we are working on something but things can come up, or problems can arise. It could be buggy, it may not be finished in time, and that stuff's really overwhelming, more so than just the daily routine. Like Laracon itself could-- There's expectations there for it not to suck, for people to have a good time, for the food not to be terrible, for the speakers to do well, all that stuff is high expectation, too. Matt Stauffer: Had you guys seen the grid of urgent versus important? I'm trying to remember who it is, but somebody from a long time ago, basically, drew a grid and any given thing that's on your plate as a pressure should be doing can be urgent or not urgent, and important or not important. The really interesting thing is that you can put all the things that are pressing on you into that grid and figure out which of the quadrants they find themselves in. The things we're mostly like to do that are most wasteful is the urgent and not important. The things we're least likely to do that sounds like, really, what's on your plate a lot, Taylor, is the important and not urgent. It's the things that don't have that immediate time pressure but are the most important. It sounds like a lot of your life is important but not urgent which I know those are the hardest things to have the discipline, the focus on. Is that something where you have developed practices to make sure you're not just letting that stuff slip? Taylor Otwell: Past couple of years it's been trying to start really early on stuff like Horizon and then the thing I'm working on for this year's Laracon. I don't know. I do agree because Mohammad's going to take care of a lot of Forge stuff for me. I don't really spend a lot of time working on those features lately. I would say yes, you're right, it is important but not urgent. That is a challenging spot to be in. Jeffrey Way: Plus you have so many products. I wonder does it ever get to the point where you think "Well, I'd love to do another one but I just don't have the capacity to maintain yet another project" Taylor Otwell: Yes. There is a sense of when do you say "I did what I set out to do." This is what success is, basically. I should just maintain what I have and be happy that it got this far and not really try to overwhelm myself with a new impressive thing year after year because-- Most people will never reach the popularity of something like Laravel ever. I should just enjoy that maybe and not really try to stress out about creating the next big thing all over again, every single year. Which I think there's some merit to that as well but people don't really like that I guess [laughs]. Matt Stauffer: It's a little bit of the Apple thing, right? Is a WWDC where they don't completely blow your mind an acceptable WWDC? I would say "Yes man, I'm happy with what I've got. Just don't break it". Taylor Otwell: Yes. I remember Steve Jobs saying not to compare Laravel to Apple in any way really but he said something like most companies are lucky to ever invent one amazing product, They had invented the iPhone, the mac itself was amazing and then iPhone and iPod and all the stuff that came with it. I don't know. At some point, there's only so much you can do. I'm going to keep trying this year we'll see. Matt Stauffer: Jeffrey, what about you? Jeffrey Way: I'm okay right now but it's more of the anticipatory type of thing because my wife's pregnant so we're going to having a second child. We're not going to be having two children. Matt, I know you have more experience with that than me but it's stressing me out a little bit. Then, also this is the first year I've been working with a UI guy. I don't know what you call him, a designer or UX, I don't know what the terminology is anymore but he's doing really great work but every time he cranks out something new it ads to the backlog of stuff I have to implement, which I'm very thankful for but I'm kind of anticipating an insane amount of work in the next five months. I was just curious how you guys handle it. Then, there's also that thing where I worry sometimes when you feel stress and anxiety it's like to some extent you're creating it yourself and it's hard to determine, is this something I'm just doing myself and I am entirely in control of or are you not in control of it? That's something I think about a lot. Is there a way to turn that switch off when you need to? I don't know. Matt Stauffer: I know that you have at least some, like talking about that urgent versus not urgent thing. I know you have some urgency because there's this expectation of a certain timeline for delivering videos. Are there a lot of things on your plate, for work, that are in the longer terms? You mentioned one thing being the implementation in the UI. I know that you do visual refreshes occasionally, although in your latest podcast you talked about how a lot of that was early days and it probably will be a little bit less the case going on where you feel like you're getting more of a handle on things. Do you have a lot of things that are in the longer term bucket? Or are most things still locked in the immediate video production timeline? Jeffrey Way: Most is in the immediate. The UI work we're doing will probably be next year or at the end of this year. That's probably the most long-term work thing I'm doing. Most of it is immediate. It's very difficult to crank out content all of the time. Sometimes if I go even four days without something new I will get a tweet or somebody is complaining. It's like, you have to understand I've been doing this for three years, there's like thousands of videos. At some point, I'm going to have trouble thinking of new stuff to cover. I'm amazed every week I'm able to, I'm not complimenting myself, but I'm amazed th I'm able to think of something to publish every single week but that does wear on me a little bit to finding things to cover every week. Matt Stauffer: I hit episode 100 of the 5 Minute Geek Show and I just was like you know what I've talked for 10 to 15 minutes at a time for about 100 episodes and I don't have anything else stuff to say. People keep saying bring it back. I'm like-- Jeffrey Way: Yes and I think that's-- Have you close that down? Is it done? Matt Stauffer: It's not over. It's just on the hiatus. It's on hiatus until I come up with something else to say. You know what I mean? Jeffrey Way: Yes. Matt Stauffer: I'm not saying it's over because I'm sure that moment will come again, but right now, I'm just like, "I don't have anything else to say." If I felt that pressure like you do, to keep saying things, man-- granted, everytime the new tech comes out you can choose to go learn that tech and go to it. There's some things you can reach for, but still, I totally identify with what you're saying. It's just at some point, I just might not have anything else to teach right now. [laughs] One real quick, on ask for a pro tip, two kids. The big shift for two kids for me-- Taylor, I want to hear if you have the same perspective as-- With one kid, there's always the possibility for one parent to be taking care of the kid and the other parent being an adult. With two kids, there's now-- Even if one parent takes care of the kid, the other parent is taking care of another kid. All of a sudden, those rests that you get-- What I can imagine is, once you have three kids, it's even crazier. Because now, all of a sudden, there's never a one on one. That was the big shift that I noticed with the second kid was. Let's say, the other parent is feeding the baby or something like that, you're not cleaning up, you're taking care of a three-year-old or whatever else it ends up being. That's the biggest shift for me for a second kid. Jeffrey Way: Sounds stressful. Matt Stauffer: [laughs] It's not that bad. It's just a perspective shift, I think. Jeffrey Way: I have heard one bonus is that, like in your case, Matt, your oldest probably helps entertain your youngest quite a bit more, whether or not, depending upon you and your wife at all times for entertainment. Matt Stauffer: The older she gets, the more they play with each other and the more moments we get where they're playing together in the toy room for 45 minutes. We go, "Oh, my gosh." We sat down and had an adult conversation. That's definitely, definitely a boom. All right, that's what's going on with Laracon. You said the tickets are already sold out. Do you have a waiting list like you have previous years, Taylor? Taylor Otwell: There's not really an official waiting list right now. As people email me, I actually do put their name in a little file. I have sold a few tickets that way, but there hasn't been a lot of cancellations lately. There's not really any tickets to give out right now, anyway. Matt Stauffer: Got it, all right. I have a couple questions, but before we do that, let's talk Laracasts real quick. What kind of stuff have you-- let's say, anybody who hasn't been to Laracast for a little while, what have you been covering? What's your latest technologies that you've been looking at? Is there anything exciting you want to share with people? Jeffrey Way: Yes, sure. Let me take a look. Been doing a bunch of things lately. I finally covered Laravel Echo in full. Somehow, that was one of the things that I just missed a year ago. I went through that top to bottom. I think if you're intrigued by that, on how to communicate with the client, I think that would be really useful. It's a series called Get Real With Laravel Echo. Some things, I just have to refresh. That's one of the worst parts of my job is, even if it's from 2014 and it still works, it's like, there's just a few differences where you sort of have to record it all over again. That's the worst part of my job. Other than that, one of the things we're working on right now which I'm excited about, it's a series called How To Read Code. The whole point is not for me to write code, it's to work through the process of how you learn from the code that other people have written. There's that phrase about, "If you want to become better as a developer, you have to--" I can't remember what it is. You have to read a lot of code, you have to write a lot of code, and you have to learn, I guess. A lot of times, I think young people really get into the learning phase where they're reading the books and they're watching the videos, but they're not actually taking enough time to read code that other people have written. I notice that's sometimes a black box. People are afraid to dig behind the scenes and learn how these things are constructed, so they stay away from that. Then, also, they end up not writing as much code as they should, because they don't know what to build. This is the thing that comes up a lot. I learned this from students, is they don't know what to build. They haven't been hired yet, they're trying to think of projects they can flex their muscles on, and they have no idea where to start. With the How To Read Code, Taylor, we're actually going through the Laravel.com source code. I haven't told you about this. Taylor Otwell: Nice. Jeffrey Way: We're just pulling it up on GitHub, and we're figuring out every step, like, "Okay, if there's this repository for the markdown files, well, how is this project getting access to those markdown files and how is reading it and parsing it and replacing the URLs? How is versioning being handled?" What's fun about it is I don't have any experience with that codebase, so it's how I would exactly figure out how things are constructed. It seems like the feedback's been pretty good. Once again, I think, for so many, it's a black box. You're kind of scared to dig in because you don't know where to start. I encounter this a lot, so I hope it's useful. Then, other than that, I've been working with this UI guy. It's been fun because most of the time, I do things myself. That's a lot of coding in the browser, writing a lot of CSS and zeroing in on something that doesn't look horrible, which I'm not very good at. He is so much more systematized. He has me set up with this-- what is this app called? Marvel? Are you guys familiar with this? Marvelapp.com. It's new to me. It's amazing. He'll share a link with me and it's like an interactive website where he can swap things out, he can show me interactions and animations. Then, once I signed off on it, he sends me a link to this Mac app called Zeplin, zeplin.io. It's amazing because I'm so used to-- When extracting designs, I use Photoshop. If there's some SVG, I have to cut it out and save it as SVG. Very hard, creating new layers all the time. With this, everything is just clickable. If I need a particular icon, I click on it, and there's a button that says "Save as SVG." This is all new to me. I don't have any experience with tools like this. It's been a huge benefit to me in the last couple of months. I love it. Matt Stauffer: It's very cool. I'm going to try and go back through, listen to this, put all this in the show notes, everybody. Well, real quick going on with me. I'm updating Laravel, up and running for 5.5, so that's exciting. We finally got approval - actually, 5.5 or 5.6, I'm not sure I remember. I think we might be doing 5.6. I was going to do LTS and I think we've picked 5.6. Finally got my editors to sign off in doing that. I've got Wilbur Powery, who's doing some of the groundwork for me, and just reading through all the change logs, and making a list of all the things that are out of date, so that I don't have to do that work, so that he can just give me that list, and I'm going to sit down and write. The hope is for that to be some time in the fall for us to have edition two, so that's fun. I just left a project where I had been writing code, basically, for 20 to 30 hours a week on top of doing my normal job at Tighten just because we had a project that hit a point where no BLs was available. I felt that I just needed to fish it out. That's part of why I'm feeling so good right now because I'm going back to being a real boy again. [laughs] I'm not going to make any promises I keep making like, "I'm going to blog again. I'm gonna newsletter again." I'm actually feeling this possibility, especially when that new employee joins in May that I might actually start being a human again. I have said that at three or four times since my daughter was born two years ago and it hasn't happened yet. Who knows? Maybe that day will come. Jeffrey Way: That's great. It's great news. Matt Stauffer: Yes. That's very exciting. Okay, so I have a topic for us to talk about. I didn't prep you guys for this, so sorry about that. There's a couple of topics of conversation that have been coming up really recently at Tighten about - and if anybody listens to Twenty Percent Time podcast, you'll know at least a little bit about this. Talking about JavaScript versus PWAs versus straight Blade apps versus Blade apps that have some JavaScript components. First off the bat, before we go to the deeper conversation, I want to talk about PWAs. I want to see, have you guys dug into that at all? The iOS has just pushed out some of the core features that would make it so that you can actually write a PWA and have it work on iOS. This is the first day where you can actually even realistically consider building one that would work on the most modern devices. It's like when Flexbox first finally actually worked versus like, "This has been a thing for a while." We haven't written any production PWAs for anybody, but it's finally a point where we're like, "We can." Is that something you guys have dug into that you're even interested in or is it like, "Hey, it just became legitimate a week ago, so now, maybe, I'll put my brand on it"? Jeffrey Way: Yes. Beyond a blog post or two, I have no experience with that at all. Like you said, it's always tricky. Do I try and invest my time in this if I can't use it too much yet? It sounds like it's now becoming a possibility, but, for now, I have no experience at all. Taylor Otwell: Yes. Me either. Matt Stauffer: Okay. Well, I have no experience other than I did a whole bunch of research to write that blog post, November 9. Jeffrey Way: Right. It's one of the ones I read [chuckles]. Matt Stauffer: Yes. Nine months ago I did all that and then, basically, I said, "I'm going to go build some." Then, I discovered that it didn't even work on iOS, and I said, "Well, maybe I'll hit pause and all that until iOS supports it." They do, and I know that Keith, who works at Tighten, has been doing a lot more thinking about that than I have. I've been pushing him to-- with all his copious free time he's on at this point, he and Samantha are nearly as busy as I am - to see if he can do a part two write-up now that it's viable. I'll see if he can do that. Jeffrey Way: I'm curious to what extent it's viable. In the latest browsers, that's the idea? Matt Stauffer: Yes. Basically-- Jeffrey Way: What's the fallback look like? I wonder. Matt Stauffer: In theory, PWA should work on fallback browsers. In theory, it's not like it's not going to work, but it's more like it's just going to be a website with JavaScript versus the value that a PWA is going to provide. You don't want to really go hole-hogging to something, expecting it's going to be a PWA where people can use it offline, they can use it when their internet goes out, it's going to save stuff, stuff like that, and then have it not work on the major browsers. We're basically at a point where all the major mobile browsers are going to be little work with it. I don't know what the whole mobile Opera situation is like because I haven't dug into that. I know that we're at a point where literally all iPhone users couldn't even use PWAs up until a week ago. It was very non-viable up until a little bit ago. Now, your mobile Chrome, and your mobile Safari, and all those are all possible to use it. The biggest thing with the PWA is just it's a lot of work. It's a lot of work, and it's a lot of learning, and it's a lot of different ways of thinking about things because you're having to make things, basically, function regardless of whether or not the internet is there. It's that biggest shift in perspective over anything else. There's a lot of complexity in architecture that you need to introduce to make that happen. The good thing is, people are building tooling to make that easier, but it's something where you're not going to do it unless the client definitively needs it. I can imagine maybe you eventually building a Laracast PWA if you really wanted to so people could go on a Laracast, open up the PWA in their phone, in their iPad, and then tap the seven videos they want to download so they can watch them on a plane or something like that. That might be the possibility for it. But I still think the vast majority websites won't be PWAs because it's cost and you got to be sure that you're actually getting the benefit. Like you said, if most major browsers can't use it, then you're not going to get that benefit. We're now to the point where most major browsers could get the benefits so people should start learning about it. But again, it's just really early days right now. Jeffrey Way: Okay. Yes, I find in general, most of the apps I build are that combination you said. A little Blade, a little Vue, sometimes they're interconnected, that and something that the sort of apps I build. Although I find it gets tricky. I find that I do want to reach for something a little different. I do sometimes feel like, "If I just built this as an SPA entirely, this would be a lot cleaner." I think a lot of Laravel developers probably end up in the same boat where you're trying to do both at the same time. It gets tricky because you often end up reproducing the same logic in two different locations: one for the comments side and one for your back end. I think it's a common thing developers in our space are going through right now. Matt Stauffer: That's the second part of this conversation so I'm glad you transitioned to it. We're having this internal chat where Daniel Coborn is basically saying, "Look, most of the sites were hired to do or eventually are going to have some JavaScript so why don't you just go whole hog in the first place?" Caleb is saying, "I want to build Blade apps that have little widgets, and I'd rather explicitly do all the work in my controller and then pass it in these props to the Vue, which is when it comes up." I'm saying, "I want to do all Blade until I find a definitive need the JavaScript's going to happen. When that happens, then I'll modify it the way it should be. We have this kind of continue or whatever. We chose as a different side. I wanted to hear from you guys. If you were to start a new app today, are you in the world where you say, "You know what? I'm going to do Blade and then I'll modify it." Are you in the world where you're like, "You know what? I'm just going to do single-page app all the way." Or are you somewhere in between? Jeffrey just answered a little bit so I guess Taylor, what's your approach right now? Taylor Otwell: The latest thing I wrote which hasn't been unveiled yet, I did basically build it as a single-page app using Vue and Vue Router. Honestly, I really like it. I think Vue Router is pretty nice and easy to use. I think for this particular use case, it just solved the bunch of problems that we would have had trying to make it all Blade. I feel like my use cases, both times I've interacted with Vue Router, which is Horizon as a single-page app, basically, and the new thing. But then, there are unique situations where I wasn't having to duplicate a lot of rules on the front end. Either you authenticated to view the whole thing or you're not. There wasn't a bunch of other authorization that had to happen for various little features. That made it a little simpler, I feel like, to build it as a single-page app because I wasn't having to duplicate a bunch of junk. But if I was going to build something like Forge as a single-page app, I probably would have a little more duplication on various things. I don't know, man. I see Daniel's point to an extent that it does feel good to just go whole hog and embrace it because it feels nice to do it all in JavaScript if you go down that path. I don't know. I think Caleb's point, I feel that pain most often on authorization. I feel like than anything else. Jeffrey Way: Yes, absolutely. Matt, I'm curious about your point. Because I have seen a bit of a backlash to JavaScript in general, where people think, "Okay, you're getting some extra interactivity but the complexity you introduce to make all of these work is sometimes insane." Just the fact that Mix has to exist to make that build process somewhat easy to understand, shows how complicated this stuff can be. I understand exactly what Taylor's saying but I also get the angle of, "Let's put this off as far as we possibly can." Has your thinking on that changed in the last year? Matt Stauffer: Yes. I would say that I love Vue, I love React, I love single-page apps when they're appropriate. I think that knowing what a lot of projects Daniel has spanned recently, and that type of thing that I know Taylor is working on right now. I would pick SPA. I pick Vue Router SPA and I'd pick an API first in that context but I think that we can do that and we can then assume that that is always the right way to go forward. To me, that's not the case at all because of what you just said. I think testing is harder. I think debugging is harder. I think NPM and all the node modules issues breaks more. I think the entire complexity of this system is significantly higher. I think onboarding new developers in the system is more complicated and I want to make sure that it's not because I know PHP better than I know Javascript. I've been writing Javascript for as long as I've been writing PHP. Granted I haven't been writing React and Vue as long as I've been writing Laravel. I think I understand them relatively well and just the whole system everything is more complex than an all Javascript app. I am willing to make that statement and so to me- Taylor Otwell: The testing is definitely more complex. Jeffrey Way: Yes. Matt Stauffer: Yes. So to me, if I'm in a place where I can accomplish it with Blade then I'm not going to introduce any Javascript. If I can accomplish with Blade and the occasional Javascript widget then I'm going to use it with Blade and the occasional Javascript widget. That doesn't mean I don't believe that there are plenty of apps that are better as all Javascript or maybe even not using Vue Router or whatever but like a Javascript page that navigates to another Javascript page so you're doing your React containers or whatever else it ends up doing. I'm 100% on board with that possibility but I need to be convinced that that's the way to do it before I go there. Jeffrey Way: Taylor, for the SPAs you're building, when it comes to testing, are you doing endpoint testing for your backend code? In addition to that, how much client-side testing are you doing? Do you have tons of [crosstalk] Taylor Otwell: I wrote all of the endpoint test and there's hundreds of them for a new project and then we haven't even written the front end test yet, mainly because I'm working with other people on this. Of course, I have Steve, my designer, and then I have another person working on front-end stuff. It's also complicated by the fact that this is a package, it's not an app that Dusk is really easy to pull in to and so we haven't really toyed around with making Dusk work in a package environment yet. I don't know what Dusk's going to look like. We may end up using some kind of Javascript solution. There's just so many little subtle interactions on the front-end that are going to be one, important to test and two, hard to test I think. I don't know, we'll see I haven't gotten there yet. Jeffrey Way: Yes, I'm curious to see how you figure that out. Taylor Otwell: I would like to pull dusk in and just use it to test the package. Ideally kind of like the test bench for the back end which I used to write all my endpoint tests. Hopefully something similarly -- we can do something similar to that with Dusk, we'll see. Matt Stauffer: I hadn't thought about that because I was like, "Oh yes, Javascript just use Java--" but it's not, it's multiple pieces. We have found that once you put the work into the Javascript testing if that thing is full-on Javascript you can get it to be tenable? I feel like Javascript testing is, in our world, is probably the next great hurdle for us to make simple for people. Basic Laravel testing was one hurdle and then, what do you call it?, your package Jeffrey that was eventually pulled in the core like application testing that was the next hurdle. Gulp was a hurdle and Mix was a hurdle. These are hurdles where they're really complicated things that we look at and said, "You know what? People in the community are needing this to be simpler" and someone sat out usually one of the two of you sat out to make it a lot easier. I know that there's at least two people talking at Laracon about testing. Testing in Javascript and stuff like that. I'm super excited about the possibility that -- I thought there's two. I know that Samantha is at least. Her talk is about full-stack testing strategies. The reason for this is because at Tighten we're always asking this question of, what are our different ways of testing the whole way up and down the stack? Samantha's our resident React guru and we've had quite a few React developers at this point but she's the lead in thinking there and she's been asking this question a lot of like, "What does testing look like?" what I told her was like, "I'm going to wait until you give this talk to demand this of you of you but I want you to make it really easy for me and any app to write a Javascript test" I know Dusk and I know Laravel and PHPUnit but I want you to make it super easy for me. I'm hoping that that's what her talk is going to do for me and for everybody else. No pressure, Samantha. [laughs] Jeffrey Way: That would be great. I think so many times developers don't think about that. I think maybe they get too deep in the woods thinking, "okay, this is quite you have to do. You got to get this and this and this and this and this and then pull in these 8 dependencies then you're ready to go." They forget that to a newcomer that's horrible it's so frustrating. The view test utils library works great but just to get to the point where you can start writing your first test it's a lot of work. In many cases like this, it's not spotlighting them specifically but in so many cases like this you find situations where, "This could be significantly easier to get started" and it's not a badge of honor that you have to go through so many hurdles to write your first test, it should be easier. Matt Stauffer: I like that as a metric. I would like to have the ability to write a Reactor Vue test out of the gate. The same way that with a new Laravel app, I can write a test out of the gate without. I literally open up example test and just change some letters and I'm writing my test, that's brilliant. That was not what writing tests in PHP unit used to be like. It's not as if PHP unit is easy to bootstrap but Taylor and company did the work to make that easy, and you did the work to make it easy with application testing upon the core. I'm hopeful that we're we're moving in that direction. Alright. JavaScript, backends, Laracon , Laracasts, Laravel up and running. What are you guys learning these days? Are there any books you're reading? I know Taylor you've been talking about stoicism a lot. I started that one book, the really old one is it Marcus Aurelius or something like that? Taylor Otwell: Yes. Matt Stauffer: I started the book and I'm just moving really slowly through it. Could you could you give me the TLDR elevator pitch for stoicism? Is that is that possible? Jeffrey Way: What is stoicism? Matt Stauffer: Yes. What is stoicism, Taylor? Taylor Otwell: I think the one-sentence thing is this? It reminds me of that serenity prayer, I don't know if you ever heard that where stoicism is very focused on not worrying at all about the things that are out of your control. They define the things that are in your control as only your own boss, basically. Your health is not in your control, your job is not really, it's influenced by external factors. That was a little confusing to me at first because some things, say you're in a tennis match and you're facing someone, and whether you win or not is partly in your control, but it's partly not. I was always confused by that from a stoic perspective. There was one book that helped me resolve that situation, where it was like, You want to internalize your goals a little bit. To succeed at the tennis match is basically to give it your best so to speak. Whether you win or lose, is out of your control at that point, but you're still succeeding as long as you prepare and practice to give it your best shot. That's the main gist of Stoicism is not worrying about anything that's out of your control. Only worrying about the things you actually can control. Everything revolves around that. Matt Stauffer: I like that. Taylor Otwell: Basically Marcus Aurelius' book re-visits that theme a lot in various circumstances. One of the other popular stoic books, probably the other most popular Seneca's letters. He visits that topic on a variety of issues. Death and dying, sickness, what it means to be wealthy, and be a stoic because he was pretty wealthy. Of course, Marcus Aurelius was the Emperor so he was extremely privileged and wealthy. I think Marcus Aurelius' book is surprisingly relatable for a Roman Emperor that lived 2,000 years ago. [laughter] A lot of the things he mentions struggling with are very relatable. I was surprised at how modern it all came across really for someone that you would think would be very disconnected from our life experience. Matt Stauffer: Did I remember you saying something along the lines of Ryan Holiday, the guy who's speaking doing something about stoicism? Taylor Otwell: Yes, he wrote the Daily Stoic which is a really popular book. There's 365 little chapters, every day it's like a little daily reading. He expounds on it in a couple paragraphs. It's a pretty cool little book. Matt Stauffer: Cool. Taylor Otwell: On the tech side what I've been looking into a lot recently is containers, AWS, deployment, stuff like that. Serverless stuff like AWS Lambda. I feel there's gold in those hills somewhere. [laughter] I just feel like it's not really being presented and packaged up in a very approachable way right now. Because AWS feels very low level, it gives you all the tools you need to make things happen but you still have to tie them together in pretty complicated ways to build something useful. Probably the person that ties that kind of thing together the best is something like Heroku but just playing with some of those technologies. I think AWS Lambda is really cool. I really love the idea behind it, where basically you start out with just a function. By default, it's just like a JavaScript function that receives some arguments. You think of it like a little artisan command that receives a payload from the command line. You can invoke this function and pass it, little arguments. Then you can do whatever you want, you never really have to think about the underlying server. I think their concurrency limit is like 1000 concurrent tasks running at a time. It's pretty scalable for most situations, but you can actually do pretty interesting things like you can run a Laravel app on AWS Lambda which I actually did this week. I'm using some tutorials that people had written. It's a really interesting technology and like I said I feel like there's cool stuff there that just needs to be mined out, repackaged, and presented to people in this sort of digestible way. I've been trying to digest it myself and it's very complicated and there's actually a real lack of quality, like guides and documentation on how to do anything actually useful. There's lots of like, "Let's deploy a hello world" nginx page to elastic container service but how do I do zero downtime deployments reliably? How do I set up all my key workers reliably?" All that stuff is not there. Jeffry: You guys are making me feel bad. I'm trying to think of what I'm learning right now and the answer is nothing. I can't think of anything. Taylor Otwell: I've been playing Rocket League like an hour and a half a day. [laughs] Jeffrey Way: I think sometimes it's good to not always reach for something new but to get yourself in a habit of just a daily routine of every single day I'm going to chip away at this. There have been plenty of times where I'm really pushing my boundaries for a little bit trying to learn something new but I can't say that right now. I'm feeling horrible right now. Matt Stauffer: I can tell you, Jeffrey, I'm not learning anything about code right now so don't feel horrible. Jeffrey Way: Really? Matt Stauffer: I'm learning things. Let me tell you the things I'm learning and I bet you you'll have something related. I'm listening to this woman, Esther Perel, who's this relationship expert. I'm listening to her stuff nonstop. My wife and I are both listening to all her stuff. It's really good. It's like this progressive thinking about relationships but every time I've listened or read to people who are talking about this type of relationship stuff they're like, "By the way, you should just have open relationships and be married to 20 people and have sex with all of them. It's no big problem." I'm like, "That's not me so much." But she has progressive thinking that kind of throws of some of the old croft that we brought along with us but stills very much focused on, "Well you're married to this person, stay married to this person." It's helpful. It's like opening up my mind a little bit. The other thing I'm thinking about is money. I may have talked to you guys a little bit I've been- Jeffry: Yes, you're into that lately- Matt Stauffer: I'm so into it. I just got obsessed with how much I hate having a mortgage. It became this massive thing for me. I literally just looked at my mortgage statement and I think this is it, beginning balance, applied balance, and ending balance. I lived in my house for I feel like several years now. It's atleast one year and it might be two years. I'm paying thousands of dollars a month towards my mortgage and I've applied $5,000 to my balance because I'm paying everything to the interest this whole time. I just feel like I'm in this awful system. You guys know this but I've been listening to these audiobooks. One of them is the millionaire one, what's it called? The Millionaire Next Door and then the other one is The Simple Path To Wealth and just focusing on like really simple investment strategies, really simple decisions you can make. I'm not going to talk about -- I could talk to you guys your ear off in the next half hour but to me, the two things I've been learning about are simpler, healthier approaches to money and investment. Then relationship stuff where it's kind of like helping you understand what kind of garbage you're bringing into your marriage or your relationship but in a way that is for the focus of you staying there, to that person long-term versus a lot of the other alternative. You know, half ways to thinking about it. Jeffrey Way: I live everything you say on the finance stuff because you think the more you can simplify your financial situation the better it's going to improve your relationship as a result, too. I think it's the number one or the number two cause of fighting in relationships, is financial issues and of course, not everyone is in control of it. The more you can simplify your finances then and not buy a new car and instead buy an older car or something you can afford. The more you can simplify it, the better it's going to improve your relationship with your wife or your spouse and your kids. I see nothing but good things there. One thing I am doing, though -- This may interest you, Matt, when we had the Laravel podcast months ago I said, "Years ago I stopped playing guitar and the interest I had left" it's come back in the last couple of months. Matt Stauffer: That's awesome. Jeffrey Way: I know and I'm very happy about it. I went and bought a guitar and an amp. I've been playing lately. You can maybe see it in the back there and it's funny to see the parallels with code. I'm kind of getting in -- I'm approaching guitar from a more mature point of view, I guess. I'm getting more into this idea of like, "Okay, every single day I'm going to be working on this. I'm going to take a very fundamental approach to building up skills, whereas when I was a kid it was more, "I want to learn how to do this. Let's figure out how to do this as quickly as possible." Now, I take a very different approach to it, which I feel all of this parallels with code. It's very funny. I noticed on Twitter the other day a bunch of people were talking about how many coders have some interest in music or have some experience with music. It's interesting, the overlap there. Matt Stauffer: I just read the intro to this Imposters Handbook thing that I tweeted out. I wish I could remember the guy's name because he's a well-known software author but he's talking about being a saxophone player. I remembered having read a book by him in the past where he is making a lot of those parallels. Do you know who that is what is? Jeffrey Way: What is it? Hanselmann? Matt Stauffer: It wasn't Hanselmann. He wrote one but then it was the one after that. You guys would definitely know who this guy is but I just remember that he had studied saxophone. I remember him talking about that in his book that I read but yes, who knows who wrote that. Anyway, I'm only a chapter into this Imposters Handbook but I like that. Jeffrey Way: Very cool. Matt Stauffer: We are at 50 minutes, which is usually when we start ramping it down. Is there anything else going on with you guys, anything you've been thinking about or learning or exciting about that you want to get a chance to chat about? Taylor Otwell: Not for me that I haven't already discussed, I don't think. No, just what I already discussed but we're working on new Forge things, trying to make people's lives easier and Envoyer is getting redesigned, which it hasn't gotten since I originally wrote it in bootstrap, so that will be nice. Other than that, I think that's about it really on my end. Jeffrey Way: Matt, can you share any news about who's coming up on the podcast? Matt Stauffer: Oh man, I don't actually know who's next but let me go pull up my Trello board real quick. Basically what I'm trying to do is, I've been a little sneaky on this but I'm trying to mix up people who everybody knows, who everyone's been waiting for because every once in a while people are like, "Why has Adam not been in the podcast or whatever". I'm trying to mix up those people who I know that people are anxious about, for the people who they're not anxious about but I know that they're going to be really excited when they hear it. There's a couple of people who I know everybody want to hear and I'm trying to spread them out like every three or four guests and then be like, "Yes, but there's these other people that you don't know are super awesome." Some of my favorite responses have been people like, "I've never even heard that person's name before and now I want to be their best friend", I'm like, "Yes, I did my job well." Of course, the well-known names in Laravel are all going to get interviewed. I've got a list of dozens and dozens and dozens of people. I know that Adam's going to be coming up soon for sure and your Eric Barnes and your Chris Fidao's and them are going to be up in there, of course, as well and Freek and folks like that. One of the things I did also, was I didn't interview anybody from Tighten because I didn't want to seem like it was nepotism, but there's quite a few really interesting people at Tighten, so I think the Tightenites are going-- I'm going to start slipping in some Tightenites and some Vehikl and Spatie folks. I'm going to start slipping in some of those folks as well too. There's a huge list, I mean, you guys, I could do dozens and dozens and dozens of more just from the list I originally spit out before even touching any of the suggestions I got on Twitter. There's a lot of good ones coming. Jeffrey Way: I'm excited. It's been fun hearing from people that I'm not overly familiar with. I think that's a very wise choice you've made. Matt Stauffer: I'm happy to hear it, I had so much fun. Of course, I miss you guys which is why we're back here for today. I figured we can do this one, every dozen or something like that, keep that lines of communication going. Jeffrey Way: Yes. Cool. Matt Stauffer: All right guys, feeling good. Anything else? Jeffrey Way: That's it. Matt Stauffer: It was a ton of fun talking to you guys and I can't wait to see you in a couple months. Until then, thanks for hanging out and we'll see you all later. Taylor Otwell: Alright. See you. [music]
An interview with Abigail Otwell, wife of Laravel creator Taylor Otwell and co-owner of Laravel LLC. Editing sponsored by Larajobs Transcription sponsored by GoTranscript.com [music] Matt Stauffer: Welcome back to the Laravel Podcast. Today, we're going to be talking to Abigail Otwell, the woman behind the man behind Laravel. Stay tuned. [music] Matt Stauffer: Welcome back to the latest episode of Laravel Podcast, season three, where I interview the people you know, or I interview the people you don't know, but either way, I'm interviewing people who you should know. This one is the most interesting one yet, which is kind of crazy to say, since we've had all sorts of interesting people, including the founder of Laravel, because what we have right here is what would you say -- I feel like there's some phrase that people use when they talk about behind every something there's a woman -- I don't know, whatever. This is the woman- Abigail Otwell: Behind every great man, there's a great woman? Matt Stauffer: There's a something woman. Abigail Otwell: Something. Matt Stauffer: Right? Abigail Otwell: Something like that. [laughs] Matt Stauffer: I feel like it's something that's funnier, or stronger, or more -- whatever, but this is true here as well. I would say, and I'm interested to hear how Abigail feels about this and how Taylor feels about this, but it is very likely that without the support of Abigail Otwell, who I have here today, there would be no Laravel because I know that we're going to learn more today about what that story looks like. Obviously, you wouldn't say that because you're humble and all those things, but I think that's very likely the case. The goal today is to learn about Miss Abigail Otwell. Can you say "Hi" to the people, and for those who don't know you tell -- I ask this to everybody, tell us a little bit about yourself and who you are and then, we'll get digging into the backstory. Abigail Otwell: Hey. Well, let me think. I am Abigail Otwell and I live in Arkansas, and I have not lived here my whole life. I was born in Connecticut and raised in Pennsylvania, and moved to Oklahoma. When I was 16, my family moved to Oklahoma. I met Taylor a month before I turned 18 and we dated for a few months, and we were engaged for 30 days before we got married- [laughs] Matt Stauffer: Yes. [laughs] That's awesome. Abigail Otwell: -and we started on this crazy journey together, but it's been really great. We've really just had a great time, just a great life. [laughs] Matt Stauffer: I like it. You just gave us the broad overview and we're going to spend the next 45 minutes digging in deep into that. Abigail Otwell: [laughs] Matt Stauffer: If you meet somebody at the store today, that's not the story you give them. You meet somebody at the store and they say, "Hey. Oh, you've got these young kids, but what do you do?" How do you answer that question for people? Abigail Otwell: That's kind of tough for me because I feel like some people, when I say -- I feel like I'd say, "I'm just a stay-at-home mom," or whatever, but it's a big job. Matt Stauffer: There's no "just" on that one. Abigail Otwell: No. I feel like now, the kids are in school, it's even harder for me to figure out what to say to that because it's like, "What do you all day?" [laughs] But somehow, the days just fly by, just stay busy and yes. I tell them I'm a stay-at-home mom and I do sew. I used to take orders -- I sometimes decide to take orders, then I get kind of burned out because it's a lot of work and just a lot of time away from other stuff that I'd rather be doing. I really love sewing for my daughter, but I don't know, I'm not really into mass manufacturing it. [laughs] Matt Stauffer: That was actually going to be my next question about sewing because I know that, at one point, that was kind of -- You would be sewing on the couch and he'd be coding the couch, you guys have mentioned that issue before. When you were sewing -- I don't know anything about custom sewing, were you using, in design and development terms, were you the designer and the developer, or were you using somebody else's designs and you were mainly just doing implementation? Abigail Otwell: Well, some of both. The first time I took orders, I was actually using a pattern I had made up myself by just sketching from a dress that I had and I took like 36 orders for that dress. That was part of being burned out, I think, because it was one design and there was 30-some of the same fabric, so yes, that was a lot. But that's really a lot of -- When he was coding and I was sewing was because I had so many orders to finish. But for the most part, I used patterns as a framework, so to speak. Matt Stauffer: I like that. Abigail Otwell: [laughs] And I just kind of throw the directions out in certain parts of the pattern and then I just go from there. I almost never stick completely to a pattern. Matt Stauffer: So there's a little bit of everything. You are using tools or frameworks to help you get started, but then there's a creative aspect, but there's also a production aspect. It's when you spend too much time in production, like you mentioned, 32 orders, that it just like, "Do I really want to keep doing this?" Abigail Otwell: Right, yes, it does get to be a lot. Matt Stauffer: Have you ever done any boys' clothes or it's been all dresses and bell bottoms and stuff? Abigail Otwell: Well, I did some- Matt Stauffer: -and blouses. Abigail Otwell: [laughs] I did some -- Well, I've done some -- a few things for James. I made him a Prince Charming costume when we went to Walt Disney World. Matt Stauffer: Oh, cool. Abigail Otwell: He didn't really want to wear it, but I kind of made him wear it. [laughter] Matt Stauffer: Mom. Abigail Otwell: Then, he got kissed by Cinderella and it was all over. [laughs] Matt Stauffer: Nice. Abigail Otwell: He still hates that costume. Matt Stauffer: That's awesome. Abigail Otwell: I've done a few things for him, but not a whole lot of boy stuff. Boys are just kind of boring when it comes to clothes. There's just- Matt Stauffer: Right, especially now because it's all just basically Under Armour everything. Abigail Otwell: Yes, he's all about- Matt Stauffer: Just match your colors. Abigail Otwell: -all the Under Armour and Nike you can imagine, so yes. Matt Stauffer: Yes. Okay, so we'll go more there in a bit, but I want to get into the backstory a bit. I tell everybody this, but you are in control of where we go and don't go. Abigail Otwell: Okay. Matt Stauffer: I'm just going to ask some questions. You moved around a lot when you were a kid. First question I always ask people in that context is, military? Abigail Otwell: No, we just moved around a lot. I'm trying to think, I think the longest I ever lived in one place growing up was four years. Matt Stauffer: Wow. Abigail Otwell: It was just constant moving and changing and meeting people. I don't know, I like living in one place, I really love to travel, but I'm okay just -- I mean, it's okay. I like that my kids have friends and have a lot more of a just steady- Matt Stauffer: Stable, yes. Abigail Otwell: -stable life than I did. Yes, I don't miss the moving part, I hate moving. [laughs] Matt Stauffer: I was just going to ask, what sort of impact do you think moving around so much made on you long term? Do you feel like you have a sense of that? Abigail Otwell: Yes. I was just talking to Taylor about this the other day, actually. I feel like it's hard if you don't live in the same place you grew up in. I was homeschooled, so I didn't go to school. I didn't go to college, so I feel like there's a lot of friendships that you make, lasting friendships that you tend to make. Like old friends that you can't really force once you're an adult. I feel like I don't have that because we did move around so much. I'm 22 hours from where I grew up, so it's not like -- Even the people I did know there, it's hard to keep in contact and keep real close when you're so far away. Matt Stauffer: Yes. You would say, "Oh, I go back home and see the people I went to middle school with. I go back home and see the people I went to high school with." None of that being around you. Abigail Otwell: No, no. Matt Stauffer: Yes, making friends as a grown-up turns out to be- Abigail Otwell: It's extremely difficult. Matt Stauffer: Yes, it's a lot of work. Abigail Otwell: It's frustrating, too. I don't know, it's just like I don't want to come off as too desperate, but sometimes, I'm like, "Hey, you want to go out to dinner? Because I really need a friend." [laughs] Matt Stauffer: You need friends, yes. Abigail Otwell: Yes. Matt Stauffer: All right. You were just shy of 18 and you met the strapping young gentleman, [laughs] who has brought this conversation together. What were your first impressions of young Taylor? Abigail Otwell: That he was really quiet. It wasn't exactly love at first sight. Him and my dad were really more friends before we became friends. I listened to them talk a lot and they had a lot of deep conversations. It was interesting, sometimes I would join in. But once we got to know him more and his personality started to come out, because -- I think a lot of people just think of him as quiet, but he is hilarious. He's really, really funny. I think once his personality came out more, I was like, "I really like him." [laughs] Matt Stauffer: Cool. Abigail Otwell: Yes. Matt Stauffer: How techy are you? No, first of all, how techy were you then, and how techy are you now? Abigail Otwell: Well, my family was not techy at all. Not at all. I was kind of the tech person of our family, but that was really just emails and phones. We didn't even have smartphones. I remember when he came over and he had the -- I think it was the first iPhone. We were like, "What is that?" [laughter] Abigail Otwell: Oh my gosh, yes. Matt Stauffer: One of the first questions I always ask everybody is, what was your first access to computers? I'm going to ask you too. When was the first time you had access to a computer? Abigail Otwell: Yes, we got our first computer when I was 12, and that's back when there was dial-up and somebody picked up the phone and ruined your internet connection. My mom was really big into selling stuff on eBay back then, so I would often do all the posting for her. We used PayPal too back then, which was also pretty rough. Matt Stauffer: Okay, wow. Abigail Otwell: I remember I learned all the HTML for the eBay listings. Matt Stauffer: Wait, how old were you at this point? Abigail Otwell: 12. Matt Stauffer: You were 12 years old and you were writing -- Okay, so this is an unexpected part of this interview, where at 12 years old, you were writing HTML. This is destiny then- Abigail Otwell: [laughs] It really didn't go much further than that, but I learned how to make different sized fonts, different color fonts, spacing. Because you had to do all that manually back then on eBay. Matt Stauffer: In eBay, yes. Abigail Otwell: Yes, I learned- Matt Stauffer: You were using the color property, it was before CSS probably. Abigail Otwell: Right, right. Matt Stauffer: All right. Okay. While your family didn't have a lot of computers and stuff around, you did have a computer, you were writing HTML, you were selling stuff with PayPal on eBay. For the average 12-year-old home-schooler back in the '90s or whatever, you were pretty technically savvy. Abigail Otwell: Right, right, yes. Matt Stauffer: I'm guessing that that being the case, that still wasn't necessarily something that you and Taylor connected on, right? Abigail Otwell: Not really, no, not really. Matt Stauffer: When you were 12, what did you want to be when you grew up? Abigail Otwell: I really wanted to be a midwife or a doula, and I still do [laughs] actually. When I was in my teens, I read all the books to become a licensed doula or whatever. Do you know what that is? Matt Stauffer: Yes. Abigail Otwell: Okay. Matt Stauffer: Why don't you explain because I do because that's our- Abigail Otwell: Right, [laughs] you're a dad. Matt Stauffer: -that's our role, but can you explain for everybody what a doula is? Abigail Otwell: A doula is somebody that's there to support a mom during labor. She's really the person that comes for mom. She helps with relaxation and pressure points, just to be there and be reassuring. Basically, she's just there for the mom. That could be at home, that could be at a birth center, could be at a hospital. Matt Stauffer: I've always thought of the doula as basically the number one advocate for the mom, especially when the mom doesn't have a partner or the partner is not necessarily knowing what to do. I think of doulas as they know the things a mom's going to need to care about, they know the problems that they're going to run into, and they are likely the interference between mom and potential difficulty, right? Abigail Otwell: Yes, I agree. I feel like a lot of times, the poor dad's lost as to what to do and there's some things that only a woman can help you with when you're in labor, that men don't really know how to do. Yes, that's what I've always wanted to be since I was seven. Yes, maybe one day, when the kids are grown or whatever. The schedule would be just hard because there's no scheduling when you go into labor, so I could be gone all night, all day, so I think it'll be better to pursue that when the kids are a little bit bigger. Matt Stauffer: Yes. One of my questions I was going to ask is, let's say the kids are 16 or 18 or whatever, what would be your next thing? That's what you're thinking. You've got to be able to, say, get a phone call and be somewhere else with 30 minutes notice and be there for as long as it takes, for 20 hours or whatever. Yes, that's tough. Abigail Otwell: Yes, it is tough. I had a doula with my first and, bless her heart, she was there for 20 hours I think. [laughs] That's a long time. Matt Stauffer: My sister-in-law's a birth photographer, so she has a similar schedule and she's got kids around your kids' age, but the difference is the photographer doesn't have to be there the whole 20 hours. Now, they do need to be there when the baby comes out, but there's a little bit more flexibility, but even so, the only way she can do it is with a large, large, large support system of people who can jump in. Multiple grandparents ready to take a kid at the drop of the hat, and my brother has a flexible schedule, so it's a lot. I definitely hear you there. Abigail Otwell: I've actually thought about doing a birth photographer instead because I also love photography and it's actually something I'm pursuing. I'm taking a class in a few weeks, just to learn more about how to use a camera and stuff, so I have thought about that because I just love birth and being there, but that would be a little bit less time and less hands-on, so I don't know. Matt Stauffer: Okay. Well if you do do that, I'll introduce you to someone. Abigail Otwell: Okay, sounds good. [laughs] Matt Stauffer: Cool. All right, so you were 12, you were doing HTML, eBay, home-schooled, met him at age 17, you guys moved pretty quickly and so, you're in Oklahoma, you are a newly married couple. I assume that he was working at that first job out of college at that point or still in college, so what was life like? What were you interested in? You weren't becoming a doula, at least right then, so what did it feel like for you at that point? Abigail Otwell: Well, let me think. I met him as soon as he graduated college because that's when he moved to a town close to ours. Matt Stauffer: Got it, okay. Abigail Otwell: He lived in Fort Smith, Arkansas, which is right over the border. We were on the very edge of Oklahoma, so we were only about 30 minutes apart. I met him a couple of days after he graduated. I don't know any kind of career or anything else. [laughs] Matt Stauffer: Anything else other than keeping this child alive and fed and- Abigail Otwell: Yes, yes, so that -- Life has moved really fast basically since then. Then, we had our second 20 months after we had our first, so they're just real close. Yes, it's just been crazy. I feel like that stage of our life, which was this just exhausting -- just tunnel we were in, that you can't think of anything else except surviving from day to day. Then, once I started to come out of that, I feel like it was about when our youngest was three or four, I started to realize, "Oh, wow, life isn't about babies- Matt Stauffer: I'm a human being. [laughs] Abigail Otwell: -and toddlers anymore. Matt Stauffer: Right, right. Abigail Otwell: [laughs] Yes. What am I going to do with myself? I almost started having this panic moment, like, "Oh my gosh, should I go to school? What should I do?" He's like, "Calm down, take it one day at a time. You'll be busy, trust me." [laughs] Yes, so- Matt Stauffer: Just so if anybody else is -- Well, people are listening to this. The amount of work that a stay-at-home parent has to do is just unbelievable. It's something where the question of "What do you do all day?" Well, sometimes that can be a non-malicious question to ask, but sometimes it's not. Regardless of whether or not it's a malicious question, if you find yourself in the circumstance where you have kids and you've never been a stay-at-home parent, just take a week off of work and send your spouse off on a vacation to just see what it's like. Because I 've done it, and it is like -- Thankfully, my wife is very good at communicating to me the cost that it is on her, so I didn't have to do it to at least get that it's an idea. Having done it, I'm like, "This is non-stop work, non-stop exhaustion, non-stop energy. This is not just like, "Oh, yeah, I sit around and twiddle my thumbs." Have you noticed that children actually need taking care of? Abigail Otwell: Constantly. [laughs] Matt Stauffer: Usually, when you're a stay at home parent, you're also responsible for taking care of the house, right? Abigail Otwell: Right, oh, yeah. Which they're constantly tearing apart. [laughter] Matt Stauffer: Right, exactly. I'm basically a cleaning person, I am a chef, I am a childcare person. I am all of these things all together at once. I want to affirm that that's a crazy amount of work, and even thinking anything about being an actual just human being in the midst of that can be pretty nuts. Abigail Otwell: Yes. It's kind of overwhelming, really. When you're just in the throes of it, like you still are, it's just, especially for her, I feel bad for her. It's really hard to be with your kids all day, with no other human interaction really. Looking back, I'm like, "Wow, that is really difficult." In the midst of it, you're just so tired, you can't really think straight, but once you come out of it, it's like, "Wow, yeah, that's really difficult." Having little kids is very, very difficult. Matt Stauffer: Yes. One of the things that we noticed was that it's probably a lot more difficult now than it used to be, when you had family living all around you and everyone was really close. One of the things we did to make up for the fact that our family all lives many hours away, was move to a neighborhood with tiny little yards, where everybody is really tight and close together, so that you get some of that kind of communal aspect, and that's helped us a little bit. Abigail Otwell: Yes. I remember many mornings just thinking, "Oh, I would just give anything to have a mom or somebody come and sit with my kids for two hours, so I could sleep." [laughter] Just sleep, I don't care if she does nothing else, just keep the kids from killing each other, and let me get some sleep. Matt Stauffer: Right. If they're alive and not screaming when I wake up, I'm good. Right, okay. That was a pretty significant period of your life. That was probably six, seven years before you're really to the point where she was three years old, four years old, and you're out of it now. You've talked about, you did some sewing and it turns out you can burn out on that a little bit. You also were thinking about ten years down the road, 15 years down the road, or whatever it ended up being, where you're in a place where you're considering maybe being a doula or something else like that. What is it that you do day-to-day right now that gives you the most joy? Abigail Otwell: Well, I'll just tell you our daily schedule. It's pretty much the same every day. The alarm goes off at 6:30 and we set the alarm in the kids' room to keep them in bed till 6:30. It's like the opposite. Matt Stauffer: [laughs] It's the opposite, right. Abigail Otwell: It's the opposite. As soon as that alarm goes off, it's like elephants upstairs, just like “Shh”, just running as fast I can downstairs. They like to get up early. Then, get them ready, give them breakfast, get them ready for school, drop them off. Then I go, I normally go to the gym just about every day, straight from dropping them off. I work out and then I come home and shower. Sometimes, Taylor and I will go eat lunch together, and that's nice to be able to do that, to be able to just chat and see each other. Then, we go get the kids at 3:00, and they're home, and fix dinner. On Tuesdays, my daughter has dance and my son has basketball, so he'll take him to basketball practice and I'll take her to dance. We really like having our family time at night and I don't want to give that up. Anything that's going to take us away from the house for more than two nights a week, I'm not going to do it. It's not worth it, no. I just like having that time and they're so exhausted from being at school all day. School is really tough, especially now, it's just there's so much. Matt Stauffer: In what ways do you think your life is different, with Taylor running Laravel, versus if he had a normal 9-to-5? Abigail Otwell: Let me think. When he had a normal job, I felt a lot more alone. Of course, I had a little kid, but I don't know, just waiting for him to get home was my day, basically. I really like being able to go and travel more, that's really -- I love to travel. I think it's because we never did as a family at home, so it's something I really, really, really want to do with my kids, and they really love it and look forward to it. I don't know, when you're away from home and the kids are not infants, it's just like you can really cut loose and just -- there's not really any responsibilities, it's less stressful. You could just have fun and eat junk food and just [laughs] You know what I mean? Just really cut loose and have fun. I really enjoy that and I'm glad he can not have to just have one week a year that we have to squeeze our thing into. When the kids were little, it was nice because if one of us had a doctor's appointment, I could leave the other one with him, they could set up here in his office or whatever. That helped out a lot, not having to hold them everywhere I went throughout the day. Matt Stauffer: He went from that job, he went over to UserScape. When he was first talking about going full-time on Laravel, was that scary? What was it like for you? Abigail Otwell: It was a little scary, but he is extremely responsible, so I knew that if he felt okay with it, that it was going to be okay, probably. [laughs] And he waited until it was well-established, so it wasn't terribly scary, it was more just super exciting because when we were first married, for the first couple of years, I remember we would walk around our little duplex and we would just chat about -- have ideas and stuff that he could do to be able to work for himself, so that we could be together more. It was just like this pipe dream at that point, it was just like, "This will never happen, but it's kind of fun talking about it." He tried a few other little things before that we laugh at now because they're hilarious, but when he made Laravel, it wasn't one of those ideas that he thought would be really used, it was more like, "Hey, I don't like anything that's out there. I'm just going to build my own for me to use." Then, I remember the day he launched it and it was like, "Oh my gosh, Abigail, I've got --" I don't know, just a couple or stars or whatever one can have, and he was so excited. He was just really pumped about that and just, I don't know, just from there, we -- I remember he would get a retweet from somebody with 1,500 followers, and he'd be like, "Oh my gosh, can you imagine if one person retweets it with that many followers and then 1,500 people see it and then one of them retweets it?" It was just crazy. But yes, so when he went on his own, I felt pretty good about it. I've always told him, I said, "If all this goes away tomorrow and we're living in a cardboard box, I'll still love you. We have each other, that's what matters, so we'll figure it out." Of course, that's not going to happen because he's responsible and has everything figured out, but he was. Yes, so it's pretty cool. Matt Stauffer: You're technically not the primary entrepreneur, you're not the name who's behind the framework, you didn't code it. Someone could just say, "Hey, it's Taylor's idea and what you did was give him breathing room to do it." But I don't think that would be a full description of the situation. As an entrepreneur with an incredibly supportive spouse, who's a business partner with another entrepreneur who has a very supportive spouse, I'm very aware of how much our spouses are a part of the work we're doing, even if their fingers might not be in everything. Are there any aspects of what it feels like to not just be a supportive spouse, but to be a co-entrepreneur that you could talk a little bit about? I know that's a little bit of a vague question, but do you have any sense of the ways in which you see yourself being a part of Laravel, versus just watching Taylor do it? Abigail Otwell: Yes. Ever since I was little, I've been an entrepreneur. I love talking about small business ideas, I have had many little businesses over the years, ever since I was pretty little of my own, so I really love talking about the subject, whether it pertains to me or to somebody else. I love hearing other people's ideas, and dreaming about stuff. I often ask him -- I can't give away any secrets, so I've got to be careful here, but [laughs] I'll often ask him, "How's such and such coming?" I try to keep up and keep interested because I am interested. Even though I can't use it or whatever, I still am interested in the process and how it's coming. When things are really, really busy, like getting ready for Laracon, I just know in my mind he's going to need more time. I'll need to give him that time, and it's just a season, it may be busier, he may have to work a Saturday or Sunday here and there, or bring his laptop down after the kids are in bed and work a little bit, but I just know it's a season and it'll pass, and things will calm back down. That way, I try to give him time and space to create, but I also like to talk to him about it, try and stay interested in it and stay up on the latest programs. Also, I try to give him ideas here and there, where I can. I know once he incorporated one of my ideas in Forge, which was kind of cool. For security, but- Matt Stauffer: That's awesome. Abigail Otwell: Yes. I'm like, "I can't code it, but would this work?" He's like, "Oh, yes." Yes, that's kind of fun. Matt Stauffer: Are you familiar with the phrase "rubber duck debugging"? Abigail Otwell: No. Matt Stauffer: There's an idea in coding that when you're stuck or something's not working, one of the best ways to solve the problem is to talk to somebody about it, but it turns out it's not often what the other person is telling you that's helping, but just the process of talking through with someone. At Titan, we all have a little -- somebody in a book once said, "You could literally just stick a rubber duck on your desk," and so, you all who can't see, I just pulled a rubber duck off my desk. You could just sit there and talk to a rubber duck and I've realized that I use my wife as a rubber duck often, expecting that she'll just kind of smile and nod and then, like you said, she'll have really -- as a non-technical person, she'll have fantastic input about user behavior or what would look like for -- And I'm like, "I'm glad I used you instead of a rubber duck because this is way better." It sounds like you're not just rubber duck, although that is a thing, where you're really listening, but you're actively involved in some of the processes of thinking through stuff. Abigail Otwell: Yes, and I try to be, and if there's any way, I'm always telling him, "If there's any way I can help you with the conferences." I looked up videos for him and I was like, "I can just take over contacting the venues and getting food lined up," and so, just trying to take anything I can off his plate. He ends up doing most of it himself and does a great job at it, but I do try to help out here and there with that kind of stuff. Because I'm like, "I can do that." [laughs] Matt Stauffer: Sure, sure. All right, so one of the things I noticed is that you have had a little bit of social media interaction with various folks in the Twitter world and the Laravel world. You're on Twitter at times and we'll see you at conferences along with the kids, although you're usually taking care of the kids a little bit more in those contexts. What does it feel like to have a whole bunch of people interact with you and following you primarily because they're developers and just random people from countries around the world following you? Is it weird, is it kind of fun, do you have any idea what they're actually talking about? Abigail Otwell: It is a little funny because I'll tweet something and I'll be like, "Wait a minute, that was totally the wrong crowd for that." Because nobody's going to care in this crowd. But yes. Matt Stauffer: Some things go on Facebook, some things go on Twitter. Abigail Otwell: Right, exactly, yes. Although I have been trying to step away more from Facebook, Instagram. I'll delete Instagram for a while, then download it, post a picture and then, delete it again. It's just, I don't know, it's just so much to keep up with and sometimes, I just need a break. Anyway, yes, it is kind of funny to open Twitter and it's -- Twitter and Facebook are totally different worlds. Both politically and just everything. Everything is totally separate. Everybody I follow just about on Twitter is tech people, and I think everybody that follows me is tech people, so sometimes I have to keep that in mind, I'm like -- Then I feel like -- I don't tweet very often because I'm like, "What would I have to offer to this crowd? I don't know what to say." [laughs] Matt Stauffer: I know that feeling. Often, I also find myself saying, "You know what? I'm a whole human being and regardless of whether you followed me for one thing or another, this is who I am." I try to remind myself to self-censor a little bit less and just be like, "You know what? If you don't like this part of me, you can go follow somebody else who talks about just the tech you care about or whatever." [inaudible 00:28:50] Abigail Otwell: Yes, I agree. Sometimes, I'm just like, "I don't care, this is me, so-" [laughs] Matt Stauffer: Right, yes. You're following me, then you're going to get me. Abigail Otwell: [laughs] If you don't like me, there's an unfollow button. [laughs] Matt Stauffer: Nice. All right, so if there were a Laracon in a different country in the world that you are most interested in visiting, somebody should go spin up this Laracon just to give you the excuse to travel with Taylor, which one would it be? Abigail Otwell: Boy. Okay. Somewhere tropical. I love the beach. We're looking at a place- Matt Stauffer: What about Costa Rica? Laracon Costa Rica? Abigail Otwell: I think there's a huge Laravel group, is it -- Okay, where -- he was just telling me the other day there's -- one of the biggest Laravel groups there are, is somewhere like that. Is that Brazil or Costa Rica? I don't know, but- Matt Stauffer: There's definitely a big group in Brazil, for sure. Abigail Otwell: Yes, I think it may be that, but he pulled up and I was like, "Okay, I will go there." [laughs] Matt Stauffer: [laughs] All right. All right, so if you're listening and you have a large Laravel community in a tropical location, you might get some special- Abigail Otwell: I will be there. [laughs] Matt Stauffer: -special bonus points behind your conference Abigail Otwell: Yes, for sure. Matt Stauffer: I like that. You are technical, you understand technical things, but I think that your perspective on the apps that Taylor's building and the technical stuff he's doing can often just as, A, not being the one writing the code, and B, not someone who dreams of architecture design patterns all day, I would bet it gives you a little bit of a broader perspective than some of us can have at times, when we're stuck in code. I got two questions around that. Number one, what, either, is the best thing you've seen come out of the Laravel community or the best hope you have for the Laravel community on a broader perspective? Two, do you have any worries or correctives or things you -- warnings you want to give or things you want to tell people, "Hey, make sure you stay away from it?" I know it's kind of broad and vague, but basically, what are your hopes and dreams or what are your fears, from a broader perspective, for Laravel, as a framework, as a community, as its possible impacts and all that kind of stuff? Abigail Otwell: One thing I was really surprised about the first time I came to Laracon, which would have been the first year, in Louisville, so it was three years ago, I guess? Matt Stauffer: I think so. Abigail Otwell: Before then, my kids were so little and dependent on me. There was no way I was going to be able to leave them and go to these conferences, even though I really, really wanted to. It was the first year, we actually all went and brought his mom to that one, but now I'm able to go. I was really pleasantly surprised by just how -- just these people, they were just so friendly, and happy, and welcoming, and just really, they were -- everyone was so excited about it. It made me really excited for the future of Laravel and just to see the culmination of all his work, because I see the grueling day-to-day stress and just hard work and extra hours. To see it like always feel using it and all these cool stories of people being able to quit their jobs and work from home with their families because of it, that, to me, was so rewarding, very, very rewarding. Even though I wasn't technical, I still felt like I made a lot of friends and still talk to a ton of people. Yes, I really love that. As far as the warnings go, I don't know. I don't know, I think it's -- I feel like the Twitter fighting has kind of died down a little bit. Matt Stauffer: Yes, it does seem like it. Abigail Otwell: Maybe I'm just kind of in a hole, but- [laughter] Matt Stauffer: No, I think it's either died down or- Abigail Otwell: I don't really go and read it that often. Matt Stauffer: Yes, or I've just muted everybody, I'm not sure which. Abigail Otwell: Yes, one of the two. I don't know, lately, I think have been going pretty well, as far as that goes and everything. Matt Stauffer: Cool. No, I like the idea that you said about -- I mean, when I was asking about the impact it's had on your life, you described a lot of impacts on quality of life for your family. When you described the impacts it's had on other people, it was a similar thing, it was quality of life, and self-determination, and family time, stuff like that, and it's cool for that. I never want to be the one who pits financial success against those sorts of things because, often, financial success gives you freedom and gives you the ability to do that. Abigail Otwell: It does. Matt Stauffer: We could have said, "Oh, you know what? The really good thing is that lots of people are making lots of money or lots of people are getting famous or rich or whatever," which are not bad things, but again, I love that one of the vibes is for people to live the life that they want to live. That's something I've heard you talk about a lot here, which I think is really cool. Abigail Otwell: Yes. That, to me, is -- I mean, that's really all there is. Family and just being able to -- I don't know. I think it's just coming from where I come from, I think it's -- that's so important to me, is just spending a lot of family time. I love that the kids can come in and see Taylor after school and -- I mean, I try to keep that at a minimum because I know he's working, but he'll often let them come in and say hi. Then, within two hours, he's downstairs for dinner. It's just really enriched our family life so much, having him home and working for himself and it's really cool to see that happen in other people's life, especially as a direct product of Laravel. I think that's really cool to me. Matt Stauffer: I love it. I think that's a good point to stop on because it makes -- it gives you all the feel [unintelligible 00:34:04] -- This has been amazing. I really appreciate you taking your time here. If people who listen to this were to take one action in their lives or in the Lavarel community or something in response to this, one thing. Some people, it's, "Hey, follow me on Twitter." Is there one thing that they did in response to hearing you talk with -- what would that one thing be? Abigail Otwell: Just enjoy each other. Just, I don't know, just try not to get bogged down in the day-to-day or the stress, the arguments. Just to really try to enjoy your family, and spend time with them and -- I don't know because, in the end, that's really all that matters, I guess. Matt Stauffer: I love it. That's great. Abigail Otwell: Well, I appreciate you asking me. Nobody has really asked me to be on these things before, so I was a little nervous. I was like, "What I'm going to say?" You're easy to talk to. Matt Stauffer: Yes. That's what it says, it's about you, it's not about saying the right thing or teaching the right thing, it's just -- there's people behind all this. The hope is to get to know the people. A lot of people, again, they know your name, they might not know you. Hopefully, they know you a little bit more and you'll have even more friends at next Laracon. [laughter] Matt Stauffer: Cool. Well, Abigail, thank you so much for your time. It was a total pleasure talking to you and see you later. Abigail Otwell: Okay, thank you, bye. [music]
An interview with Marcel Pociot, creator of BotMan and co-founder of Beyond Code. Marcel on Twitter API Doc generator BotMan BeyondCode Laravel Notification Channels Marcel's Laracon EU talk Night Night Baby | Träum Süss BotMan slack invite Editing sponsored by Larajobs Transcription sponsored by GoTranscript.com [music] Matt Stauffer: Welcome back to the Laravel podcast, today we're talking to Marcel Pociot, the founder of BotMan, the framework agnostic PHP chatbot package. Try saying that two times, 10 times fast. Stay tuned. [music] Welcome back to the Laravel podcast. This is season three where we're doing interviews. It's the people you know—getting to know aspects of them you never understood. Or it's also finding some people who you probably have used their tools or you've seen them but you don't actually, necessarily know who they are. Those names who you've been putting in GitHub require or to Composer require for ages but never actually known who the person is. The guy we have in front of us today, I'm actually curious to see what his entire history of working with Laravel is, but the current most present one that's going on right now is connecting Laravel to chatbots and slackbots, and all that kind of stuff, and this is called BotMan but there's a lot more going on here. First of all, we start with the point where I massacre somebody's name and then we move on to the next point where I ask that person to say their name correctly and then introduce themselves a little bit. Marcel Pociot, that's close, not perfect. He's still smiling, so I didn't massacre it too badly. Can you tell us-- and I'm probably ending up calling you just Marcel through this podcast. Marcel Pociot: Yes, that's fine. Matt Stauffer: That's because it is easier for me to say. Thank You. Can you tell us a little bit about-- just real quick, you don't have to tell us your whole life story, I'll ask those questions but—who are you? What are you doing? What are you about? What's BotMan? What is your new company? Just give us the basics of what should we know about you. Marcel Pociot: Okay. Yes, my name is Marcel Pociot. I think that's at least the German pronunciation. I co-founded a company in December last year. Matt Stauffer: Congratulations. Marcel Pociot: Thank you. Very fresh still. I think you're one of the first people that I actually tell this in person that's not from my family- Matt Stauffer: I got the insider track then. [laughter] Marcel Pociot: -and friends because the website isn't finished yet. Yes. I think I'm quite around in the Laravel community for a bit. Matt Stauffer: You've been working-- I've known you just generally in the Laravel community, but you're one of those people where I know that I've known you but I don't even know how we originally connected. Now, you mentioned that we spoke together at a conference so that it may have been it, but do you have any early claim to fame in the Laravel community? Were there any packages that you did earlier on it that were more popular or is it just that you've been around for a while that you're known? Do you know? Marcel Pociot: Well, I did a few. There is one, I think it's called teamwork, for some user/team association package. Matt Stauffer: I remember that. Marcel Pociot: But they're all a bit older. Matt Stauffer: Where did first start using Laravel? Marcel Pociot: Two and a half years ago, I think. I wasn't doing that much PHP back in the days, at least not with frameworks. At the companies I work with, they were using self-built frameworks which are usually crap. You do this once in your lifetime and never again. Well, I ended up at companies that did it all the time. At one point, we decided that we'd built a SaaS application and we were looking for framework to use. This is pretty much the story I tell everyone when they ask me how I got into Laravel. My boss was really into Zend because of the whole Zend ecosystem, with the Zend Studio and the Zend server. I looked into the Zend framework, I think it was two. I gave it a week, I gave it really my best shot. I even bought a book and to gave it a try. In the meantime, I looked around for other frameworks and discovered Laravel. What I did with Zend framework in a week, I did with Laravel in an hour in the evening on the couch. This was the main motivation to use Laravel then. Matt Stauffer: Got it. Okay. I do remember that one of the things that, originally I saw, is that you were doing the Laravel notifications thing. Did you help co-manage that? Marcel Pociot: Yes. Matt Stauffer: Or manage or- Marcel Pociot: With Mohamed and Freek, yes. Matt Stauffer: Okay. Cool. Got it. Stepping back for a second, it's so funny because I try not to go too deep in my own ethnological and linguistic curiosities in the podcasts because nobody else isn't quite as interested as I am, so one of the things I actually ask myself before we were on a call is how was your English so good, we went to that little bit but I must admit that based on your name, it's sounds French to me, but I know that you live in Germany. Are you French origin living in Germany or I'm I just totally? Marcel Pociot: No. I hear that a lot. I think it's also because of my first name. People try to pronounce it French, like Marcel Pociot or something like that. Matt Stauffer: That's exactly what I expected you to say when you first told me, yes. Marcel Pociot: As far as I can tell, the name-- we can't trace it back that much. I think it's just two generations and it's from Eastern Europe, so that's pretty much all I can say. Matt Stauffer: Okay, but you're German, you live in-- where do you live in Germany? Marcel Pociot: Near Dusseldorf, which is near Cologne so, yes. Matt Stauffer: I took a little bit of German in high school and college and probably forgot the majority of it, but just enough that I can read a couple of German story books to my kids and to try to get a little bit of German heritage in for them. My sister was in a little bookstore, a local bookstore and found this-- what's it called? It's like sweet dreams or something like that - Träumt Suss? Marcel Pociot: Susse Träume? Matt Stauffer: Anyway, it's this cute little blue book so I read it to my son over and over and over again, and my pronunciation was really bad at day one, but over time I got good at it. Then at some point, my wife found the exact same book in English and so now, with both of my kids, I read them both of the books back and forth, but my daughter is understanding enough English right now that when I read the German version to her she's like, "Wait a minute, I don't understand this one". She gets mad at me [laughs] because she prefers the English version. Anyway, cool. I do remember there was another big one, the API documentation generator, tell me a little bit about that project. Marcel Pociot: Well, it's a tool that you can pull into your Laravel application and it will basically just reads the routes that you define, so you can call it and give it the prefix of the routes that you want documentation for and will scan the routes and create this Stripe like documentation. So that you have the documentation on the left and then code examples how you can interact with the API on the right, and it does it by just pausing the routes and then reading the documentation of the code. Matt Stauffer: Is it its own thing or is generating like one of the preexisting styles? You know what I mean? Because I've never got to use it, but we are always looking for API documentation generators. Marcel Pociot: It's a theme that's called slate, so it's using this. Matt Stauffer: Cool. Very cool. I'll put links in the show notes. But the main two that I see associated with your name right now are the API doc generator and then, of course, BotMan, which we'll talk about in a minute. Those are the things and then we've got your company. Let's real quick talk about what is BotMan, where did it come from and then also, what's your company and then we're going to dig into the back story. BotMan, what is BotMan? What does it do and where did it come from? Marcel Pociot: Okay, I'll start with where it came from. It was really just coincidence. Late 2016, Slack announced that they now have a new HTTP based API, it's called event API. Basically, before that when you wanted to react to Slack events, like new messages, you had to connect through web sockets and the new API was basically just webhooks. Whenever a new action appears-- yes. Well, I mean, if you have a large Slack team it will blast a lot of events to your server. When I heard that Slack announced this API, I just thought that it would be cool to have a PHP API that wraps around it and have an elegant API around it, it's sort of what Laravel is all about, then apply this to Slack. Then I did this, I open sourced it. It was called just SlackBot at the time. It lay around there for three or four months, I didn't do anything with it and then, I came up with the idea that it might be cool to connect multiple services to it, not just Slack, but also Telegram and Facebook Messenger. That's the main thing with BotMan. It's one of the only-- maybe it's the only —PHP library that actually allows you to connect to multiple messenger services. Matt Stauffer: Yes. If it not the only, it's the only one that matters. That's what I think. [laughs] Marcel Pociot: It allows you to connect to these services with one API and reuse your code. Matt Stauffer: One of the hardest things for people to think about, chatbots— everyone hears "Chatbot is the cool new thing", whatever and often, it's really difficult to understand in what context would I actually want to use this, what are some--? Some of the simplest ones we've seen are, "Oh well, when I hook into a CodeShip integration, something that already exists but, what are some of the-- either in your personal use of it or in seeing other people use it, what are some of the most compelling uses of chatbots? Whether it's in Slack or Telegram, or whatever else that you've seen to help people's imagination get started a little. Marcel Pociot: Yes, I think the problem is that people always associate chatbots with these super artificial intelligence systems that understand whatever the user wants. In my opinion, it's just a different interface for your application. It's a conversational interface for your application and what I've seen that was built with BotMan, a lot is like websites, for example, for insurance companies. On their website, they have this chat bubble, that you know maybe from Intercom, and what it does is it guides you through the website. When you click on a button, the chatbot opens and asks you a question related to the action that you triggered when you clicked on the button. That's one-use case and I think- Matt Stauffer: I want to stop you for a second. When I think of a chatbot, what I think about is something that allows someone to use a preexisting chat system, like Facebook Messenger or something else, to interact with their backend API. What you're describing sounds like an entirely manual process where you just used webhooks to hook in your app, right? Am I missing what you're talking about? Marcel Pociot: No. That's also possible. With BotMan, it is the web drivers, so you can just connect it to your own API and then you send the message from your user to your own API and reply back. Matt Stauffer: Okay. Got it. Marcel Pociot: But in the end, that's what happens with Telegram or Facebook too. Yes. Matt Stauffer: So really, anything that has to do with sending and receiving messages to your user in a chat-like format. Marcel Pociot: Yes, right. Matt Stauffer: Regardless of which chat format they're usbing. Okay. I think the on page one is just so clear of an example. Everyone has used a website with Intercom on it or one of Intercom's competitors at some point. I get that one. I think that's super compelling. I'm happy to know that if I need to build that, still reach for BotMan, that's cool. I wouldn't have known that until you said that. Have you seen people use-- I think the hard thing for me is that when I think about Telegram or when I think about Facebook Messenger, I very infrequently think about interacting with someone who has enough money to have an API. I think of my friends. I'm sending a message to my friend, my friend messages me back. Have you seen or heard of really compelling use cases where people are using traditional chats systems, outside of Slack? We'll talk about Slack in a second, but has anybody done anything interesting that you know of with Telegram or Messenger or are those little more aspirational at this point? Marcel Pociot: Messenger is used a lot for more marketing kind of services. For example, TechCrunch has this, well, it's a chatbot where you can-- when you sign up you can register for different topics from their RSS feeds. Matt Stauffer: Intere-- wow. Marcel Pociot: Then you get- Matt Stauffer: They are using it to publish information out and people are subscribing. Marcel Pociot: Yes, every evening-- so you can select topics and then the time. Every evening, I get the top 10 stories from TechCrunch into the Messenger. Matt Stauffer: You just blew my mind. My son just started a podcast www.stauffersonscience.com, and I have a whole bunch of people who I grew up with, who are completely un-computer savvy and they're all saying, "How do I subscribe to a podcast?", I'm like, "Oh Gosh, how am I going to handle this?". I could build a little light Laravel or Lumen app that subscribes to the RSS feed of the podcast and allows people to enter their-- authenticate their Messenger information and pushes every new episode to their Messenger inbox. Marcel Pociot: Yes, right. Matt Stauffer: Holy crap, you just blew my mind. That's amazing. That is so cool, that's so clever. That opens up so many things for people to subscribe because everybody, all your non-tech savvy friends, your mom, your grandma, all of them, they all have Facebook which means they all have Messenger. Marcel Pociot: Yes. I think even more like the younger generation because they don't have MacBooks or laptops, they just have smartphone and use Messenger to communicate. Matt Stauffer: Do you know-- I'm sorry I'm just going into the weeds here, but I am so fascinated. If somebody doesn't use Messenger and they send something to a Messenger authenticated thing, does it show up on the web interface in their little messages thing in Facebook website? Marcel Pociot: You mean if they don't use the Messenger application? Matt Stauffer: Like if somebody doesn't have an iPhone but they go to facebook.com on their browser every day, can they do Messenger interactions using the little- Marcel Pociot: Yes. Matt Stauffer: Okay, so it's the same thing as Facebook. Man, I need to pause for a moment, this is so cool. Okay, broadcasting makes a ton of sense. Broadcasting information, this—in some ways, you have some of the value but a lot more configurability of like an RSS feed through a multiple-medium subscription. That makes a ton of sense and I get that now. Marcel Pociot: Plus, I think. maybe this will change over time, but right now the click rates are much higher because it's not that overused as e-mail newsletters. For example, with the TechCrunch- Matt Stauffer: They feel more personal too? Marcel Pociot: Yes. It feels-- even though you know that you're not actually talking to someone at the company, it feels like you're interacting with the company, well, with its brand. The whole market taking thing is really popular on Facebook, also for artists, they have chatbots that you can ask, "where's the next concert?", and the user feels like they are talking to, I don't know, Beyoncé, whatever. Matt Stauffer: Interesting. I was just going to ask about questions. That one right there would feel like a little bit of natural language processing. If you can do some of that then you can have like ask questions of our whatever bot, or whatever, and that makes sense too. You imagine that you are working for some big company, like an insurance company maybe, and they say, "You want to ask us a question? Here, hook up to our messenger bot and you can ask--" blah, blah, blah. The messenger bot parses out using some basic natural language processing. So, the messenger bot is basically BotMan hooked in your API. The API, your Laravel app takes the questions tries to process them, tries to look up an answer and then sends the message back to that person. So that BotMan would be the interface layer in between. Marcel Pociot: Yes, right. Matt Stauffer: Okay, that makes sense. Slack makes the most sense for our context. I think we're all sitting and using cycle work every day, and it seems like Slack is adding more and more things you can do every time. Buttons at the bottom and stuff like that. What is the most interesting thing that you have built or seen built with Slack integrations on BotMan? Marcel Pociot: It's also interesting because Slack got-- I think they moved away from the term chatbots a while ago, and I think they just called it application. They even integrated like forms that open up, like select boxes, drop downs. I haven't seen that many slackbots using BotMan. There's one, I forgot the name who built it, but he built a slack game, it's like a dice rolling game, it's called Liar's dice. Matt Stauffer: I, obviously, could talk about BotMan the whole time. But this isn't actually about BotMan, this is about you. BotMan is amazing, there's all sorts of interesting stuff. You also have given-- do you know if your Laravel EU talk is online? I didn't actually watch those. Marcel Pociot: Yes, it's online. Matt Stauffer: Okay, great. I'll put a link up to your BotMan talk which is called From zero to multi-platform Chatbot with BotMan. I'll put the link up to that one as well. Let's move on to you. The first place I always start with everybody is, when did you first get interested in computers? Or when did you first get access to a computer? What did your original kind of exposure to computers? Marcel Pociot: I think the first memory that I have from a computer was, I was sitting, I might be like 6 or 7, sitting in the living room with my father, and I don't remember what kind of computer it was. But we had a book with games, so if you wanted to play a game that was the source code of the game in the book. Matt Stauffer: Was it BASIC? Marcel Pociot: Yes, it was. You had to type it in and then you got the game. What I remember, maybe that's also the reason why I remembered it is, my father was sitting there and typing everything in, and I just came at the power adapter and the whole thing crashed. [laughter] He was frustrated. Matt Stauffer: Yes, I believe it. I assume that was like one of those black and green old-- those boxes. Very cool. Marcel Pociot: This is the first memory of sitting in front of a computer. Matt Stauffer: I try not to call at people's ages too much, but I think that you're around my age, around 33, is that right? Marcel Pociot: Yes. 32 and in April 33. Matt Stauffer: We're almost exactly the same age. In our generation it was not all that common, at least in the US, I don't know about Germany, for people to have a home computer when we were that young. Since your father was the one doing this. Was your father-- was he a geek or is he a programmer? Marcel Pociot: Not at all, no. He was always interested in it, but well not so much that he really wanted to write more code than there was in the book. [laughs] Matt Stauffer: At what point did your interaction with the computer go from pulling out the plug from your dad typing in BASIC program to you creating things on your own? Marcel Pociot: I think it was-- in school we had, at the programming class, we wrote Turbo Pascal. Matt Stauffer: Wait, what age of school are you talking about? Marcel Pociot: I think this is seventh grade, so I must have been like 12, 13. Matt Stauffer: You had programming class when you were 13 years old? Marcel Pociot: Yes. Matt Stauffer: That's fascinating. When I was in seventh grade, we had typing class and I- Marcel Pociot: With typewriters or--? Matt Stauffer: They were on Macs, but they were old Macs and we'd all sit around and I would finish the Mavis Beacon thing in five minutes and then I'd go try to learn Applescript and write programs that would infect all the other computers in the network and shut them all down at the same time without the teacher noticing, but there's no formal programming education even in high school. The best we had was an engineering class where the teacher would let us go hack around and stuff, but certainly, nothing formal. So, you learned Turbo Pascal in seventh grade? Marcel Pociot: Yes, pretty much and then- Matt Stauffer: How did that go? Marcel Pociot: Well, I think we moved quite fast from there to Delphi where also-- in the class, there were a handful of people that were always very fast with all the tasks and, just as you said, had a lot of time. We developed like a Trojan, a Trojan Horse [laughter] to open the CD trays from the other computers and stuff like that. Matt Stauffer: Exactly. That's exactly what I was trying to do. That's awesome. Okay, early on you were deep in the computers, you were writing code, you were hacking at it. When did you first get into the web? Marcel Pociot: I don't really remember what age I was, but it was like the Geocities sites. All this crappy-- Matt Stauffer: Yes, man. I still remember, mine was MA slash 1984. My first two letters in my name and then the birth year. [laughter] What was your first Geocities site, you remember? Marcel Pociot: No, I just remember that I had this cool hacker name. Matt Stauffer: What? Like 1337 speak?? Marcel Pociot: Yes. Matt Stauffer: One, three, three, seven, four, four, whatever. Marcel Pociot: It was Delta2K, I don't know. Matt Stauffer: Nice. Marcel Pociot: It sounded cool. Matt Stauffer: Yes, of course, with 2k especially. Okay, it's funny because it seems like I'm either picking people to interview who are old head PHP dorks or there's something consistent about folks who are helping lead in our community that a lot of us are from similar generation. I'm curious to see where that goes, but-- you were doing that, you were playing around with it at the side, what did you study? Did you study that in university or--? Marcel Pociot: No. Here in Germany after you finish school, you can either go to a university or you can do training. You go to a company and then you have three years at the company and besides working at the company, you also go to school. Matt Stauffer: Is it a school provided by the government or provided by the company? Marcel Pociot: No, it's just a public school for learning the- Matt Stauffer: For that specific career? Marcel Pociot: -specific profession. Yes. Matt Stauffer: Got it, okay. Marcel Pociot: I did that to become a software engineer and I ended up in a company in Bochum, here in Germany, and- Matt Stauffer: I don't even know how to spell that. I'll put that down on the show notes [laughs]. Okay, cool. Marcel Pociot: Yes, that's what I did. I wasn't that much into liking school that much back in the days. So pretty early on, I decided to skip the school part and rather work five days a week, so that I can hack on some code. That's what I did and then just did the tasks on my own and learned from them on my own. Matt Stauffer: Got it. You have a pretty straight line from being a little kid watching your dad enter QBASIC programs in. Through learning in school and doing your own Geocities stuff, to being a software engineer and going straight in the industry. Have you at any point felt like, "Oh my gosh, this is not what I want to do"? Or is it just been pretty clear since early on- Marcel Pociot: Yes, it's been really clear since early on. Matt Stauffer: - "I'm a programmer, this is my thing"? Marcel Pociot: That's always what I wanted to do. It's always a bit funny when I talk to people that don't really know what they want to do with their lives and what direction they want to go because it was always really clear for me that I want to go to that direction. Matt Stauffer: Interesting. If you today-- and I know that you just started your own company in December, so hopefully this is really fresh in your head. If you today were to be able to pick exactly what you were doing day to day, if your company was successful in exactly all the ways you want it to be, what would you be doing with your time? Marcel Pociot: Right now, I would say I would still love to write code. I heard that you talked about this also with a few other people, what to do when you're 40 or 50 years old. Well, right now, I would say that I hope that I still want to write code at that time Matt Stauffer: If you found yourself in a situation where your company just-- and we will talk about you company in a second, but you just took off and it's going really well. You decide to hire five people and all the sudden, you're spending all your time doing administrative work. At that point, you think you might say, "I gotta fix this, I got to get back into the code"? Is that your sense of it right now? Marcel Pociot: Right now, it is, yes, but I'm just so refreshed and I'm really just coming from a lead developer role. Matt Stauffer: Yes. Okay. All right. Tell me about your company. You went right into that internship, what's your work history look like? You don't have to tell me every company, but what kind of stuff you've been doing. Have you been working primarily for software firms or have you've been working for non-software companies as a software programmer? Marcel Pociot: No. I just worked for agencies, like web agencies. Matt Stauffer: Got it. Marcel Pociot: The first one was very small, four people when I started there which was very cool because I got to do everything. I had to talk to customers and the clients. We had-- it was very small so we had to do things like setting up e-mail accounts for them. They called if they couldn't set up the email account on their mobile phone. Then they would come in with their phone and stuff like that. Yes, the second company was also a bigger agency but still an agency, where I did-- At the first one, I did PHP and then I got a lot into Appcelerator Titanium. Matt Stauffer: That's why I thought you'd done Titanium. Let's talk about Titanium for a second. Titanium, I feel like was one of the first used JavaScript to write multi-platform apps. How is it different and similar from something like Ionic? Marcel Pociot: The main difference is that while Ionic is just html that gets executed on the phone in the browser, or in the web view, Titanium used the JavaScript code that you wrote and they had proxies for the native languages for java or Objective C. Then the JavaScript code would call the native proxy objects that would then execute native code. When you wanted [crosstalk]- Matt Stauffer: It is more of like a predecessor of React Native. Marcel Pociot: Yes, right. It's like- Matt Stauffer: Okay. Got it. Is it still around? Marcel Pociot: It is. The company got acquired and they still develop it but the time Facebook announced React Native, the community just ran away and went to Facebook, yes. Matt Stauffer: Got it. Okay. I'm sorry, I interrupted. You were doing that at that company and then--? Continue. Marcel Pociot: Yes. Titanium was also my main motivation to work on open source in the first place. I haven't done that before and I started developing Titanium modules. Just small user interfaces- Matt Stauffer: Like packages. Marcel Pociot: Yes. Right. User interface libraries to share and I put them open source and I think I did Titanium for, maybe, one and a half years. Mostly Titanium and then also some Java and Objective C to work on some native modules. During that time, I got bit away from PHP because also, at the time, there was no Composer. The whole ecosystem wasn't as stable as it is right now. Matt Stauffer: Yes. What brought you back? Marcel Pociot: Well, I think it was just a client project. [laughs] Matt Stauffer: Okay. Did they say PHP or it was a web and you had to pick and you just pick PHP because you knew it? Marcel Pociot: Yes, because I knew it and also because of React Native. When React Native was announced, Titanium just pretty much died. Matt Stauffer: Yes. But that was pretty recently, right? Marcel Pociot: Well-- Matt Stauffer: Like a year [crosstalk] Marcel Pociot: No. Native is more around more than a year, I think. Matt Stauffer: Is that real? I believe you, I don't actually know. Okay. Yes, let's say, it may be as long time as 2015 but-- because a lot of times when I hear people talk about "I stepped away from PHP--", blah, blah, blah, "and I finally came back", and they are in the Laravel community. A lot of them came back right around the time when Laravel 4 came out. Maybe I just got the timeline on that wrong in my head. When did Laravel 4 come out? Marcel Pociot: When I started working with their Laravel, 5 came out. I think I worked with 4 for about a month. Matt Stauffer: That is what I was expecting then. Okay. Marcel Pociot: Yes. We started this SaaS product at our company and we chose to use Laravel 5 because-- I think the main reason was the form requests, which just blew my mind. I thought they were super cool to validate stuff and then we decided to pick up, there Laravel 5 during the development with the beta, there was no good decision. Matt Stauffer: I didn't say and it was also bad decision. Marcel Pociot: We had to fix several things every day and at some point we just pinned the dependency to one specific commit, so we knew, “okay, this is working” Matt Stauffer: And you built against that commit until you released it until and then deal with all the fixes at once. Marcel Pociot: And then it stays that way for a long time Matt Stauffer: It's funny. This timeline does line up here is what I have seen, as four came out in 2013, five came out in 2015 and React Native was announced probably at some point in 2015. So you were deep in titanium, you were off in that world and interestingly you were doing a lot of other mobile stuff. You talked about getting into Java, getting into objective C a little bit it, so it was both Titanium, which is JavaScript but then also the adapter worlds, which means you got to know a little bit of Java from Android, a little objective C for Apple and then you all of a sudden come and jump back into PHP and it was Laravel 5, things were modern and Composer all that kind of stuff, were you still working for that same consultancy at that point? Marcel Pociot: Yes, must have been sort of at the same time that I switched jobs, yes. And I didn't do that-- I always did PHP in the afternoon on the couch Matt Stauffer: Got it. It was still always like your fun time favorite language because I know a lot of people would say they left, they're like "oh well, I got tired of PHP I left for rails, I got tired of PHP and I left for .NET or whatever, so you still had a soft spot in your heart for PHP the whole time. Marcel Pociot: Yes right, but not with the framework at the time. Matt Stauffer: You ever rolled your own? You said your company rolled their own, Marcel Pociot: Yes, of course. Matt Stauffer: Does it have a name? Marcel Pociot: No, it didn't really have a name, no. Matt Stauffer: Never got that far? Marcel Pociot: No. Matt Stauffer: Okay. You got a pretty classic story here, obviously everyone's different but a lot of us left at some point a lot of us came back at some point but it's interesting for the amount of impact you have made with BotMan you came up to Laravel pretty recently and BotMan isn't really a Laravel framework either. I feel like it was tied to Laravel at some point, is it basically just a PHP framework that does it even have a Laravel convenience layer on top of it right now? Marcel Pociot: Yes it does. It is framework agnostic but there's a piece that's called BotMan Studio which is basically a blank Laravel 5.5 installation with some additional BotMan service provider and additional commands, a Tinker page to play around with it but it's not tied to Laravel. Matt Stauffer: Got it. Okay we've caught up, you switched consultancies, you got in Laravel 5, you built BotMan, you talked about how you built BotMan so let's talk about your company. We chatted on and off about it but let's pretend that we haven't chatted at all. In December you formed your own company, you went out on your own. Tell me about it, what's your motivation, what's your goal, what's your desire; what made you want to get out of working for other consultancies and start your own thing and what is your own thing? Marcel Pociot: Okay. I'm not doing this alone, I'm doing this with a former colleague, he has been a freelancer for a year now already and already a year ago when he left the company, we were already thinking about doing something on our own and I think the main motivation was- when we started this SaaS application at our company, we thought about turning it into its own company, which they eventually did. I ended up sitting in a new office with my now business partner and the CEO from this new company and we basically sat together for 2 years, just the two of us working on the product and we just knew that the CEO back at the time was a sales person and- how can I put it, a sales person as the CEO of a software product is difficult. This was like the main motivation because we had a different idea of the product, the way we wanted to get with it and it didn't turn out into that direction so we thought that, well if we do something on our own, we can give it our best shot. Matt Stauffer: Okay. Is it a similar product to what you originally planned but since it didn't go the way you originally planned you're going to go build, are you doing product work then? Marcel Pociot: Right now the company is called Beyond Code and we are, it's sort of a split. We have, on the one hand, we do projects, project work mostly we try to do it for Chatbots obviously. Matt Stauffer: Your consultancy that builds Chatbots for people as a part of what you're doing. Marcel Pociot: Yes, right. On the other hand, we have BotMan as the library and we want to focus around building a whole product ecosystem around it so that it becomes easier for people to pick it up and use it like analytics, bot building systems. Matt Stauffer: So Beyond Code GMBH, what does that stand for by the way? I've never known that. GMBH. I assume it means limited liability corporation but the Germany version. Marcel Pociot: Yes. Matt Stauffer: Let's test my German. Gesellschaft mit beschränkter Haftung. Marcel Pociot: Yes, that's quite good. Matt Stauffer: All right. I did okay. All right. Beyond Code is a consultancy that builds primarily applications that have Chatbots on them and also uses the finances that come from that to further build the ecosystem around BotMan which is a PHP framework agnostic library to make it easy to build the type of applications that Beyond Code is building for people. Right? Marcel Pociot: Right. Exactly. Matt Stauffer: It makes sense. It's like that, not quite, like the Discourse model where like hey, there's a free or then Wordpress model. There's a free piece of software, there's also the way to pay us to do it, the money that you pay us to do it makes the free piece software better. Everything fits and everything else. Okay. That totally makes sense. All right, that's going forward. A success for the next couple years of your life would mean that the work that you're doing or consultancy work, the work you're doing for clients basically allows you to make BotMan better, is that the general? Marcel Pociot: Yes. Matt Stauffer: You mentioned analytics, you mention understanding what's going on. Are there any other big next goals or features or things that you want that you feel like you can share with us that aren't the secret sauce? Marcel Pociot: No. Not that I can share them. No. Matt Stauffer: Okay, cool. But you've got big plans, it's not just sitting where it is, it is something you want to grow. Marcel Pociot: Yes. Matt Stauffer: Okay, that's cool. I think that the ability to compellingly get someone excited about the possibilities with a Chatbot obviously is going to be a big part of your doing. I'm glad we had the opportunity for that. Like I said, I'm literally going to get off this call and go see how fast I can hack together something to send that one woman who went church with me growing up. Facebook Messenger notifications when my son's podcast goes out. I'm super geeked about that. Okay, let's see. What else, what do you do in your free time? One of the things is that you have such a straight line through programming that I think that I want to know more about what is not programming you. What motivates you? I know you've got a family, I know you've got one kid? Marcel Pociot: Yes, one kid. Matt Stauffer: One kid. How old is your kid? Marcel Pociot: Four. Matt Stauffer: Four. Okay. Obviously spending time with your family is significant but whether with your family or on your own, what do you do outside of coding? What motivates you? What excites you? What do you do when you're away from the computer? Marcel Pociot: I think I have to re-calibrate myself a bit because when I was working at the consultancy, what I was doing in the afternoon was BotMan and now I'm doing this during the day job. Matt Stauffer: Actually I got to stop you for a second. You keep mentioning the afternoon as your free time, what does your schedule look like? Marcel Pociot: It's mostly nine to five. Matt Stauffer: When you say in the afternoon, do you mean after five? Marcel Pociot: Yes, right. Sorry, in the evening. Matt Stauffer: In the evening. Got it. Okay. What you mean is basically your free time, hacking time in your old job you're doing consultancy during the day and then BotMan stuff at night but now the BotMan is your day job. How do you reorient? Marcel Pociot: Yes, I still have to figure that out myself. I'm not that much of like a sports person or anything. I think really my main motivation was to program still. Matt Stauffer: You just love coding. Marcel Pociot: Yes. Well and other than that it's mostly, beside my family of course, playing some video games but- yes. Matt Stauffer: Yes. I'm not a gamer but I gotta ask what kind of games are, I don't even know what questions gamers ask, is it a PC or console that the question they would ask what game you are into? Marcel Pociot: No, it is console but also it's funny and also a bit sad that I just realized that I'm getting old because I'm no longer good at these games. I no longer can play these games longer. I have always liked these big games that pull you in like big RPGs but now with a kid, I don't really have the time to do that. Matt Stauffer: You don't have much time. Marcel Pociot: I don't want to play for five consecutive hours and if I come back after a few days, I don't want an hour to find out where was I or what I'm supposed to do. Matt Stauffer: That's why I loved Nintendo, that's one of many reasons why I love Nintendo. Because for people with families, Nintendo is good. A, because there's games that you can play with your kids, and also user interfaces you can play with the kids, but B, there's games that are like you can dip in and out. Marcel Pociot: Yes, you can just pick them up and then play for half an hour and then your're done. Matt Stauffer: Even Zelda as an extremely immersive game. You can still pick it up for 20 minutes here or there. Marcel Pociot: That is also too big for me. Matt Stauffer: Zelda is. I mean I can understand it. I've played more video games when I played through-- I'm not done with Zelda, but I played more video games when I first got the Switch and Zelda than I have in years. And even so, it was 20 minutes here and there. Because of the Switch, I just put it down and it just pauses it, but I hear you. Super Mario Odyssey is pretty small. And of course, Mario Kart I play with my son nearly every day. Marcel Pociot: Yes, [laughs] me too, yes. Matt Stauffer: Nice. Marcel Pociot: So now we have this rule that we play every other day. [laughter]. Matt Stauffer: Yes, yes. Every night became a problem, so I was like, "You need to get off." The good thing is my son is super, super active. I was a lazy kid, I didn't want to do anything, I just wanted to sit around. My kid, if I let him, we would be outside running around every day, I don't don't have any problems. Marcel Pociot: Yes, my son too. Yes, when I came home from work, usually the first thing that he would tell me was, "Okay, you can leave your shoes on, we go out and play some soccer." [laughter] Matt Stauffer: I love it, that's very cool. Yes, I think my biggest bummer about the neighborhood we live in right now is that-- the best thing about it is the houses are really close and everybody gets to know each other very well, so he's got tons of friends. But the bummer is the yards are so small that there's nowhere for us to play without getting in the car and driving somewhere. Like, play soccer or baseball or something like that. But what we end up doing is just running around in the house like crazy people anyway. Marcel Pociot: [laughs]. Matt Stauffer: It's his favorite game right now. Marcel Pociot: We have people living underneath so we can't do this all the time. Matt Stauffer: My son's favorite game right now is turn on some music really loud, some really hype pop music or something like that, and then run around and chase each other and throw bouncy balls at each other or try to tickle each other or something like that while the music plays really loud. I'm like, "Okay." Marcel Pociot: [laughs]. Yes, haven't done that in a while. Matt Stauffer: What keeps you from getting stuck when you're coding? Or what tools do you use, or what book or what languages. How do you keep either on a single problem, or on a single framework, or single language? What broadens your perspectives? Whether it's in the programming world, like some other programming language, or whether it's something about your family or your life. What helps you keep your brain out of just the really narrow focus of, "I work in one language, one package, all day long." What gives you inspiration? Marcel Pociot: Recently, when we had in mind that we're going to start the company, I focused a lot on the organizational things and on how to get this even up and running. During that time I was not that much focused on code, or on frameworks, or anything else, because it also meant for me just to get out of the comfort zone and start a company, and not have the safety as an employee. What I'm trying to tell is that, during this time, I sort of stepped away from being too close to the coding world a bit, and now I'm just catching up again. But I think it's mostly just talking to other people and exchanging with my business partner, things like that. It's not that I use other languages and look into them specifically to see new things, so it's not that I really have the plan on how to broaden my view. I don't know, I think it just happens this way. And if I'm stuck at a specific problem, I just try to go out for a bit and [chuckle] step away from the code. Matt Stauffer: Yes. All right. I feel like I promised every time that I'm not going to say I could talk for hours and then I do it every time anyway. Oh well, I failed, I did it. Marcel Pociot: [laughs]. Matt Stauffer: We are nearing time, so I don't want to start anything new and big. Are there any other big parts of you, your life, your motivation or your work that you feel like we haven't got a chance to cover? Marcel Pociot: No, I think we covered the important parts, most of all, yes. Matt Stauffer: Okay, I like it. What's your favorite candy? Marcel Pociot: Candy? [laughs]. After the whole Christmas candy mess-- we set ourselves as a family goal to not eat any candy for a week. Matt Stauffer: I like that. Marcel Pociot: My son is doing great. Matt Stauffer: [laughs]. He's doing better than you, huh? Marcel Pociot: Yes, right. [laughter] Marcel Pociot: I cheated but he doesn't know. Matt Stauffer: All right. Well, hopefully, he doesn't listen to this. Marcel Pociot: Well, he doesn't understand English. So-- Matt Stauffer: There you go, that's the way to do it. Reveal your secrets in the other language. Marcel Pociot: [laughs]. Yes. Marcel Pociot: But other than that-- favorite candy-- I'm mostly into some sour candy. Matt Stauffer: Like what? Marcel Pociot: Skittles in sour, they're pretty good. Matt Stauffer: Really? Skittle Sour-- I had no idea. Marcel Pociot: Yes. Matt Stauffer: All right, Skittle Sour, favorite candy. Marcel Pociot: How about you? Matt Stauffer: I ask this question to people all the time and I don't know if I know the answer. The first thing that came to my mind was Snickers. I think that I like candies with chocolate, and I think if it's chocolate plus some things that rounded it out, those are high in my list. I mean I really like Almond Joys, and Mounds as well. But I think Snickers is probably my top one. Marcel Pociot: We all like bread with Nutella, but is it really candy? Matt Stauffer: Yes, but I mean, it's basically candy. Marcel Pociot: Yes. [laughs]. Yes. Matt Stauffer: Yes. It's funny, my wife likes to put Nutella on sweet things. I'm like, "No, no, no, the Nutella is the sweet, I want it on bread or toast.", just plain piece of multi-grain bread, put some Nutella on top of it, good to go. Marcel Pociot: And peanut butter, and then you basically have Snickers. Matt Stauffer: Wait, do you put peanut butter and Nutella on the same thing? Marcel Pociot: Sure. That's literally Snickers, right? Matt Stauffer: Oh my god [whispers]. I had never thought of that. Alright last story and then I got to let you go. My dad worked for a German company when I was growing up, and he was the president of the US distributor of a German-based company. So he would fly over to Germany pretty frequently, and he would bring Levi's jeans and peanut butter to Germany, because it was hard for them to get, and he'd bring back German chocolate and Nutella, because it was hard for us to get. You can get Nutella in the grocery stores now, but back then you couldn't. And so, every time dad came home, we would get Nutella and we tried to keep these couple of jars of Nutella to last until the next time he went to Germany. Marcel Pociot: Okay. Next time I see you, can you get some Nutella? Matt Stauffer: Yes, I mean, we've got a lot of Nutella here, so you have to pick something up to trade with. Marcel Pociot: But not the German one. [laughs]. Matt Stauffer: Yes, it's true, it's true. All right, Marcel, this was a ton of fun talking to you. Thanks for taking some time. Thank you for BotMan, I'm seriously going to go distribute my son's podcasts using it. So you can expect me to bother you with requests for help sometime soon. Marcel Pociot: No problem. Thank you for inviting me. Matt Stauffer: How can people follow you? And, I guess, go start BotMan. What is following after you look like? Marcel Pociot: Well I think the easiest way to connect with me is on Twitter. Matt Stauffer: All right. I'll make sure your handle is linked to the show notes. Marcel Pociot: Okay. Or, if people want to talk about BotMan, I have the Slack team of BotMan where you can join, I think we're nearly 500 people in there. Matt Stauffer: All right, we'll link that in the show notes too. Got it. Marcel Pociot: Yes. Matt Stauffer: Cool. All right, well thanks for your time, was a pleasure talking to you. Until next time everyone. See you later. Marcel Pociot: Bye.
An interview with Antonio Ribeiro, package author and master of StackOverflow Laravel. Rio de Janeiro Laravel-News interview TDDD Stats Tracker Antonio on Twitter Antonio on StackOverflow Antonio's web site Version Google2FA Firewall Pascal Delphi "Concourse" (?) Antonio's photography Editing sponsored by Tighten Transcription sponsored by LaraJobs Matt Stauffer: [music] Welcome back to The Laravel Podcast, this is your host Matt Stauffer. Today I'm going to be talking to someone whose name I struggle with, Antonio Ribeiro. He's the master of Stack Overflow Laravel and much more. Stay tuned. [music] Welcome back to the Laravel podcast, season three. I'm your host. I wanted to say I'm your favorite host but I'm your only host so that'd be kind of cheating. Like when you only have one kid and you say "I'm your favorite kid". I'm your host. I'm one of your hosts. No, I'm the only host. See? Matt Stauffer. That's me. I'm the guy talking to you. Joining me is someone who a lot of you have probably learned from at some point in your life but you often haven't associated that you're actually learning from him. This is the master of Stack Overflow Laravel. That's what's going on here. And I think a lot of people have no recognized that this is actually a thing. We'll get into this in a bit. His name, in Portuguese, is pronounced in such a way that I'm going to totally massacre it. So I'm going to say it and then literally the first thing I'm going to ask him to do is say it the way it's actually supposed to be said. So, Antonio Heb ... Ribeiro. No see, it's totally failed. Say your name for us. Also, what I'd love for you to do is just give us a picture of who are you, what are you about, when you meet someone for the first time what do you tell him about what you do, and then where are you? And then I'll get started in asking some questions. Antonio Ribeiro: Hi Matt. My name is Antonio Ribeiro. Matt Stauffer: Howdy. That's how badly I pronounced it. Antonio Ribeiro: No, no. The second time you say it was really cool. Matt Stauffer: It was a little better? Antonio Ribeiro: I'm from Brazil, originally. I work in Brazil and I work for a company outside Brazil. I lived in Europe for four years or five years. I don't remember exactly how much time. I lived in a city everybody knows. I think everybody knows. It's Rio de Janeiro. It as difficult as my name to say. Matt Stauffer: Rio de Janeiro. [Said with intentionally strong American accent] Antonio Ribeiro: Exactly. I work for the Brazilian government. Specifically, the state legislature in Rio. So I'm a public service. I do six hour per day of public serving. Of work. And after-hours, I do a lot of work. I work for another company. Now, I'm not exactly working for them but I'm available for them. I love the program and that's why I got into Laravel so quickly and maybe had some success in Stack Overflow. So I started my programming life when I was 12, I think, in Switzerland, in a big department store working with computers that were in the store. I was amazed about computers. I got a job when I was 12, 13. Matt Stauffer: You got a job when you were 12 years old working on computers? Antonio Ribeiro: No, not working on computers. I got a job delivering groceries for a store. Matt Stauffer: Oh okay. Antonio Ribeiro: To buy a computer. Matt Stauffer: Oh nice! I was going to say. That's still impressive. Man, you're getting right into it here. You've heard this before and you know that I'm gonna ask about your whole background. But let me pause for just one second because what I want to make sure that I have is ... I want to have context for why it is that I'm talking to you. And like I said, the whole point of this version of the podcast is to get to know the people who everybody knows but maybe they don't know who they are. Also, to get to know the people that nobody knows but they might have benefited from. I think you're in the second box. So, the reason that I originally met you is because I started Laravel. I don't know if you and I started at the same time or not ... So actually before I go any further, what version of Laravel was it when you first started getting really involved? Antonio Ribeiro: 3.2. Yeah, 3.2. Matt Stauffer: Yep, so you showed up there just a little bit before I did. I remember in the early days, and especially in the middle days, every time I'd come across everything in Stack Overflow, you would always be the answer. It's just consistently over and over. And I'm looking at this and you have 59,000 reputation on Stack Overflow. If anybody doesn't know, that's a very, very, very large number of answers. Who knows how good their ideas are here of how many people he's reached but it is telling me that he's reached 3.7 million people with his answers in Stack Overflow. Antonio Ribeiro: Wow. I didn't know that. Matt Stauffer: Right! And the large number of them are in Laravel. His top tag is in Laravel and then he's got Laravel 4. He's got 1,000 posts in Laravel that he's interacted with. Or that maybe even he's created. So there's a lot. There's a lot going on here. He's in the top 0.3% in Stack Overflow and I'm only saying that, not because that makes you worthwhile or not worthwhile, but that was the reason that we originally connected. Now, since you've made a couple repositories in a couple packages for Laravel, the most recent ones that have come up have been your tracker, the Stats Tracker. Then the Test-Dashboard? Is that what it's called? I'm trying to remember what it's called. Antonio Ribeiro: Yeah. I call it TDDD now. Matt Stauffer: Oh, it's got a new name. So TDDD. Antonio Ribeiro: Yeah. TDDD. Matt Stauffer: Got it. Also, the one I've tweeted out a little bit recently is that you have Version. Which basically allows you to pull the version of your Laravel application into your app based on any number of criteria. One of which being the Git tag, which I was super interested in. But it seems like you got a lot more in those. Do you even know how many packages you have? Antonio Ribeiro: No. I'm not sure, really. I have, I think, five or six really popular packages but I have like 150 repositories in my account so I don't know. Matt Stauffer: Yeah. So you're big on Stack Overflow. You've got a lot of packages. You are also are a Twitter presence here and there. Just like a few of the other people we've talked to so far, you're not someone, at least in the US or Europe, where everybody knows you and everybody knows your name. I don't know the Brazilian Laravel community quite so well so is that different either in Brazil or Rio? Do you guys have a really strong community there that you're really invested and involved in? Or are you kind of solo with this? Antonio Ribeiro: Yeah. I'm kind of solo because it all started for me in Stack Overflow. Matt Stauffer: Got it. Antonio Ribeiro: And in English, which is not exactly a language I used to speak. So I decided to go deep in this Stack Overflow thing but it was way before I discovered I was ranking on Stack Overflow. Matt Stauffer: Yeah. Antonio Ribeiro: So, I did not really contacted people in the Brazilian Laravel community but we got in touch via IRC when Taylor was still very frequent. I don't know if they are now because I'm not very frequent now. Matt Stauffer: Not so much, no. Antonio Ribeiro: I know some people of the Laravel community, Laravel.com.br, which is the website but I just saw that they kind of let it down. Unfortunately, the last posts on the websites- Matt Stauffer: 2016. Antonio Ribeiro: 2016, yeah. One of these days, someone asked me if I was going to do a Laraconf Brazil actually. I didn't even know that it was happening so- Matt Stauffer: Right. Antonio Ribeiro: I just say, "I'm sorry." Matt Stauffer: Yeah, so you're relatively disconnected. Antonio Ribeiro: Yeah. Matt Stauffer: I want to get your whole backstory but I want everybody to have the context for what we're talking about here. Do you use Laravel in your day job? Antonio Ribeiro: Yes. Yes. Of course. Everything we do for the government, now, is done in Laravel. Matt Stauffer: Cool. Antonio Ribeiro: Mostly everything. I am a lead of a very small group of developers and we work primarily in Laravel. Laravel and VueJS. Matt Stauffer: Oh, very cool. Did you get in VueJS pretty early last summer or is it something you're jumping into more recently? Antonio Ribeiro: No, no. Pretty early Matt Stauffer: Okay. Cool. Antonio Ribeiro: Almost when Taylor started to talk about it, I got in. Matt Stauffer: Nice, very cool. It's interesting because I just googled your name so that I could throw your website into the show notes and found that you had done an interview on Laravel News. I try to read those beforehand so that I can make sure I'm not covering the same territory and I had never read that you've done that. I had no idea that happened. So, excuse me, I didn't do the research I should have done. But that's fine because I still have plenty of questions and curiosities. Okay. So, you are doing Laravel in your day job but you're also doing some stuff on the side. There's various level of folks who you're working with. You're in Stack Overflow English early. You're somewhat connected but it's been a little while with the Laravel Brazil community. One of the reasons I asked that is because my book has been translated into two or three languages and Brazilian Portuguese is one of them. I was pretty surprised by that because that takes a pretty big commitment for somebody in the community to have decided that it's a group they want to target. I was wondering if there's some huge Brazilian Laravel community that I wasn't aware of. It sounds like at least there at some point was but it, at least the one in Rio, might have gone a little quiet for a little while. Antonio Ribeiro: Yes, I think the community to large but they are not very connected. Matt Stauffer: Mm-hmm (affirmative). Antonio Ribeiro: I think they are more connected in the PHP community than in the Laravel community. Matt Stauffer: Got it. That makes sense. Okay, so before I got to your life story, I want you to give me a pitch real quick on the TDDD and then if there's any other one package that it's just really your favorite package or your favorite contribution to Laravel. I don't know if Stats Tracker or something else but first, tell me about TDDD as if I'd never heard of it before. Then, do you have any other packages that you really love and that you want to share with everybody? Antonio Ribeiro: Well, TDDD is becoming an app actually. It's an app for helping people do TDDD. Basically, you are writing tests. If you write tests before or during or after you are coding- doesn't matter. You can use it to help you test your app during development. You make a change in your code, it will run all your tests. If you do a change in one of your tests, it will run that test particularly. It's basically that. We have some other things it does. It is able to link all the lines of your failures so you can click a link and it will open your PHPStorm, or your Sublime Text, or VSCode. It doesn't matter what editor you are using. I just added code coverage to it so you can also see the code coverage there. It's basically that. You can add as many projects as you have. You can use whatever code editor you have. If you have a project which you have tests in JavaScript, in PHP, in any other thing, you can add as many suites you want to add on it so it's very flexible. I use it all the time. I think it's the package that I'm using the most these days. Matt Stauffer: Okay, very cool. Is this an app where you think that if anybody's doing TDD in Laravel, they should just be using TDDD? Or is it more for specific contexts and not for others? Antonio Ribeiro: No, everybody can use it. If you are using TDD in Laravel or PHP or you can use it in Ruby. It's very open. I think it's a good one to use because Freek has a package almost like it but it's for the command line. Matt Stauffer: Okay. Antonio Ribeiro: The difference for me is that I keep a monitor ... I have three monitors here. I keep a monitor with it and while I'm coding I'm looking at the monitor and seeing if anything is broken with the code that I'm writing. It's very handy. Matt Stauffer: That's really cool. I asked for one other package that is really big for you. I know you've been working on Version recently but I also know that Stats Tracker is one of your more popular ones. If you had one more of your packages that you think people should check out, which ones at the top of your brain? Antonio Ribeiro: I like, very much, Google 2FA but I think there are other options and people are using Authy which you can blend into Laravel very easily. I think Firewall is a package that people should look at. Matt Stauffer: Yeah, I use Firewall. Antonio Ribeiro: You use Firewall? Matt Stauffer: Yeah. I had basically written a crappy version of Firewall and then you can out with Firewall so I just switched over to using your package so ... Could you give like a high-level introduction to what Firewall is? Antonio Ribeiro: Firewall is basically something you put in front of your app to protect it. It's like a real firewall. The difference, of course, is that you cannot rely on Firewall for everything but you can rely on it for things like someone trying to exploit your app. A Firewall will be better on that but if someone tries to hit one route 50 times, it will warn you about them and it can block the person or block the country. It's very flexible in this way too. I like it because one of these days I found someone in Denmark trying to exploit one of my end points so it's cool. Matt Stauffer: Nice. Some of the things that Firewall can do is it black lists and white lists, it allows you to block people really easily. It also does some detection, like you were saying. It does some intelligent detection to find people causing problems. It's also got a couple other cool features. One of the things I liked was, you can basically send everybody on the whole site to a "Coming Soon" page except people with white-listed IP addresses. So there's a couple other tools that are in the same vein of Firewall but are not just for security purposes. Some of them are for access purposes as well. It's really, really fast. I think I remember looking at some other packages and they would add 50 to 100 milliseconds and your GitHub page says 10 milliseconds which is really basically negligible on most sites. Alright, so I have given a little bit of the high-level introduction. Who you are and what ... People may have heard of your or they may have seen your stuff before and not have always known. We're about to jump into the history of who you are but I wanted to point one thing out which is that for the longest time, I had difficulty remembering what your name was because you have an "I" in front of it in your twitter handle. So it says "iantontio" and I would always think, "His name is Iantonio or" ... But then I would remember there's a Carlos somewhere in there and I'd be like "Is it Ian Carlos" and I always had a lot of trouble. I've always wanted to tell you the "I" has been so confusing to me. Alright, so. Antonio Ribeiro: Sorry. Matt Stauffer: No no, you're fine. You said, when you're 12 years old you were in Switzerland? You were living there at the time and you got into computers and so you got a job delivering stuff so that you could have enough money to ... But what I'm curious about is, how did you actually get into computers in the first time? I don't want to go too far down this road but I will mention that there's a little more gray in your beard than there is my beard. Maybe I'll just say that. So at this point you were not discovering the same computers that I was discovering when I was 12 years old. What did it look like for you to learn about and get interested in computers and what were those first computers you were getting interested in at that point? Antonio Ribeiro: Commodore VIC-20 was the first computer I touched with my own fingers. People were talking very much about Commodore 64, I think. I wasn't able to use one but after some time I got back to Brazil. I went first to France. I was there for some time. Then I got to Switzerland, some cities in Switzerland. Then I got back to Brazil and I decided to do a course. I was 18, I think. Then I was really amazed by Apple computers and the first PCs in Brazil. I think it was that. Very early in computing, here in Brazil, I got catched by them. Matt Stauffer: Yeah, yeah. At that point, there were actually classes that you could be taking. You weren't having to teach you on your own, right? Antonio Ribeiro: Yes. Mostly, yes. That was my whole life because first I try a course to get classes and it was not very good because I was already reading a lot about computers and about programming. Then I got to try class of a friend of my father which basically gave me a book and a computer and told me to learn by myself. I was basically self-taught my whole life. Matt Stauffer: Was that Commodore 64 that you were working with at that point then? Antonio Ribeiro: No, at that point it was an Apple 2. Matt Stauffer: Oh okay. So I assume you were learning how to use the machine but were you learning coding, like AppleScript at that point? Or what were you learning at that point? Antonio Ribeiro: First, it was basic and then I got to dBase. You know dBase? Matt Stauffer: No, I've never heard of it. Antonio Ribeiro: Oh yeah. It's like a language for querying databases. Matt Stauffer: Oh okay. Antonio Ribeiro: It was not exactly a language. Then there was Clipper. I think Clipper is a little bit more popular that dBase. Matt Stauffer: I've never heard of Clipper either. dBase and Clipper. Okay. Antonio Ribeiro: Yeah, so those were the languages that I started to learn. Then after doing this course I went to a company to work for them but work and learn. It was more like a friend than a boss. There we started to work with C. Not C++ yet. This was before. We were building a translation system in Clipper and C. Matt Stauffer: Translation meaning translating languages. Antonio Ribeiro: Exactly. It was trying to translate from six different languages but it was like changing words, not really- Matt Stauffer: It didn't understand syntax. It just replaced one word with another? Antonio Ribeiro: Yeah, basically that. After, we started to translate to switch sentences and idioms and things like that. Matt Stauffer: You understood how to do the parsing well enough to write all that? Were you actively involved in writing those translation layers? Antonio Ribeiro: Yeah, it was not exactly a parsing. It was like, try to get the meaning in the sentence and just switch words. Matt Stauffer: Okay. Antonio Ribeiro: Really rudimentary I think. Matt Stauffer: Mm-hmm (affirmative). I'm trying to get all the age ranges here. You said when you got to Brazil you were taking courses so was that university when you got back home? Antonio Ribeiro: No. It was during high school. Matt Stauffer: Oh, okay. Was this job doing the translation layer, were you also still in school at that point? Or was that out of school? Antonio Ribeiro: Yes, yes. I was working then and studying at the same time. Always. Matt Stauffer: Okay, so what was your degree that you were seeking? Antonio Ribeiro: Some years after I got to do university here. I have a degree in computing. Matt Stauffer: Got it, yeah. It sounds like computers have been a thing for a very long time. The first thing you mentioned about when you were younger is getting into computers when you were 12 years old. I know that you're interested in photography and I feel like you've mentioned dancing at one point so I know you have some other things. Are those going as far back as computers, as well? Or have you sort of always been ... Computers is one of your biggest hobbies since the early days? Antonio Ribeiro: No. Both dancing and photography are things that I started five years ago, eight years ago. Eight years ago photography and five years ago dancing. At that point my wife had the dance classes. We are seven years together so seven years of dancing and eight years of photography. Matt Stauffer: That's amazing. What sort of dancing was it? Antonio Ribeiro: Samba. Do you know samba? Matt Stauffer: Yeah, yeah. I can't do it but I know what it is. [laughter] Antonio Ribeiro: Samba, rock-and-roll. We call it differently here but it's like rock-and-roll. And salsa. Matt Stauffer: My wife is a dancer and I'm one of the worst dancers of all time. She's like a professional dancer and I'm a klumbling, bumbling idiot so it's a very fun pair. I know the words even if I don't know how to do anything. So five to ten years of photography, five to ten years of dancing, but this computer thing goes the whole way back there. Was it weird that you were 12 and you were into computing and it wasn't as much of a cultural phenomenon ... I mean, a 12 year old kid that's into computers today is just no big deal. Being a 12 year old in the 90's, for me, was a little bit weird. I get the sense that you were in the 12 year old more in the late 80's or something like that. Was it culturally strange in Switzerland, where you were, or was this a normative thing? Was it normal in Brazil? Was it weird in Brazil? What, culturally, was it like being that into computers that young? Antonio Ribeiro: I think it was completely different for people to know that I was excited about something nobody knew at the time. It was very, very expensive. In Brazil, a computer- it was like buying a car or two. My mother didn't want me to go to that path because she didn't believe very much in the power of a computer. I had to be an engineer or something like that. Matt Stauffer: Yeah, yeah. Antonio Ribeiro: So I asked her to buy me a computer and she basically said no, of course not. Matt Stauffer: Of course not. What are you talking about? What was it that interested you so much about computers when you were 12? What was the thing that you saw or the possibilities that you saw or did you see a specific thing happen and you say, "I want to be able to do that"? What was it Antonio Ribeiro: I think it was exactly that. Infinite possibilities. Matt Stauffer: And you were able to figure that out? That early? Antonio Ribeiro: Yeah, I think so. For a lot of time, in that department store, I was just trying to figure out what the thing was about. I was able to play with it and to write things and to create small programs. It was really cool. Matt Stauffer: I learned basic but you said, this was the Commodore 64, or VIC-something, or I don't know. What were you writing at that point? Antonio Ribeiro: VIC-20. Matt Stauffer: Yeah, 20. What were you writing in at that point, when you were really getting started? Antonio Ribeiro: I don't remember. I was just copying stuff from magazines and then changing words and changing functions. Matt Stauffer: And seeing if you could control things, yeah. Antonio Ribeiro: Yeah. Matt Stauffer: Very cool. When you were back in Brazil, you started studying things. You got the job translating. It seems like you were always had multiple fingers in multiple pies, as the expression goes. What was your goal then? Did you have a goal other than just to do more stuff with computers? Antonio Ribeiro: Learning was always my goal. Even today. What happened there ... Actually I was working for another company in Brazil before going to that job. There I learned to write a little bit more of Clipper and when I go to the company of the translation, I decided I was able to do the translation system in a different way. What we had at the time, it was a software that was plugged into a editor like Microsoft Word. It was not that, it was another editor. It was able to get the words from the editor and write words in another language. So I decided to build an editor which was able to translate at the same time. Matt Stauffer: Oh my gosh. Like a Word Perfect type thing. Antonio Ribeiro: Yeah, exactly. Before Word Perfect. Matt Stauffer: Oh god. That's no big project or anything like that. No big deal. [laughter] Okay so how'd that work for you? Antonio Ribeiro: I was young and I had no idea- [laughter] Matt Stauffer: That's fantastic. How long did that dream last? Antonio Ribeiro: That dream come true. Matt Stauffer: You actually built one? Antonio Ribeiro: Yeah! It was released and it was sold to a lot of people. Matt Stauffer: It was you working alone? Antonio Ribeiro: For some time, yeah. Until I got everything almost done, it was me in secret. Then it became a project from the company. Matt Stauffer: Oh okay. So the company that you were working for sort of absorbed it and then they released it but it was your work originally. Antonio Ribeiro: Yeah but for the company. I was working there. Matt Stauffer: Sure. What I'm hearing you say is- Antonio Ribeiro: Nobody knew exactly what I was doing but I was working there. Matt Stauffer: What I'm hearing you say is that at a relatively young age, you built a word processor from scratch that was live-translating from one language to another that was released and purchased by many, many, many people. Antonio Ribeiro: Yes. Matt Stauffer: No big deal. No big deal. You just do it in your sleep, ya know? [laughter] We've talked about your work there. You released that thing. What was next after that? I assumed you worked there for a little while. You said you started there when you were in school so what was the next big move whether being done with school or being with that company or geographic move- what was the next thing that went from there? Antonio Ribeiro: No big moves. I went from one job to another because I was always seeking something new to do, something new to learn. When I was 21, my girlfriend got pregnant so I got married. Things got a little bit different because I was not working for learning anymore. I was working for money. Matt Stauffer: For providing, yeah. Antonio Ribeiro: To provide. I went to university when my daughter was already born. Then I went and worked for another company of a big friend. Then I stayed there for five or six years and then around 1998 I decided to move completely to a completely different life and built a webhost company. There I working for a company. I was trying to get into the public serving. I was doing a concourse, I don't know how to say that in English but you have to do a test to enter to public serving. Matt Stauffer: Like a certification? Antonio Ribeiro: No, it's like ... I don't know exactly how to say that in English. Matt Stauffer: Okay. Antonio Ribeiro: It's a concourse. You have a lot of people competing for a position in the company. Matt Stauffer: Oh, it's almost like a competition and you have to get a better score on an exam, or something like that? Antonio Ribeiro: Yeah, that's it exactly. Exactly like that. I don't know if you have that in US. Matt Stauffer: I'm sure that concept exists where multiple people are competing for the same promotion. I don't know if it's such a normative thing where we have a word for it though. That makes sense though, what you're saying. Antonio Ribeiro: I got a position; we built the company, me and Anselmo, my partner. The company was doing a lot of things and we were also working for another company rebuilding their system. They have the system written in Pascal. You know Pascal? Matt Stauffer: Mm-hmm (affirmative). I don't know it but I know what it is. Antonio Ribeiro: Actually, TurboPascal at the time and we decided to move everything to Delphi. Matt Stauffer: Okay. Antonio Ribeiro: Me and him, basically, he wrote a 20 year old software into Delphi. Matt Stauffer: Wow. Antonio Ribeiro: That was our greatest move at the time, I think. The company had a lot of clients and nobody knew exactly how to build things for Windows, at the time. Everybody was still working on DOS. The company had five or six different big softwares including a healthcare system using Pascal and everything running DOS. We had to move to Windows because DOS was dying at the time. I think it was almost dead. Matt Stauffer: Yeah. Antonio Ribeiro: That was a really big move. For that move, why we decided to go in this path was because they offered us part of the company. Matt Stauffer: For rewriting all those systems? Antonio Ribeiro: So we had 20% of the company and 13 years ago this move and everything switched and the software was working, they basically cut us off the contact. Matt Stauffer: But you had 20% of the company at that point, right? Antonio Ribeiro: No, not anymore. We lost everything. Matt Stauffer: Oh my gosh. Antonio Ribeiro: That was 2013. It was exactly when I decided go web. We were not web anymore. Actually, the whole problem was we were talking to them that we needed to go to the web. Move everything to the web as fast as we could because everybody else was already there. Matt Stauffer: Right. Antonio Ribeiro: So, they say to us, "No, we cannot do that now" and just cut us off. End of story. Matt Stauffer: I don't wanna go too deep into money issues but if you own 20%, did they just force you to sell your shares? I don't know how that worked legally. Or was it more of an agreement where that was a little more casual. Antonio Ribeiro: Yeah, that was the problem actually. We had no contract. We had no shares. We had nothing. It was basically friends doing something really big together for 10 years or 13 years. They just stopped giving us money and end of story. Matt Stauffer: I don't mean to at all preach in the face of something difficult that you're going through but my business partner, Dan, and I have found that since the beginning of us starting the company together we said, "you know what, we have each been burned in this similar way at some point in our lives. Where we go into business with friends and just hugely regret it later". Because you're working with friends you don't do the same level of protection that you might've normally done otherwise and so what we decided to do as we started our company was to be very legalistic. Even more than you might be with someone that you don't know so that at no point do we get to a point where our friendship is on the rocks because of those tensions. Because everything's explicitly spelled out. But obviously we had that after having been burned multiple times just like you were on that one. So I know how that feels although I don't think to the level that you experienced so I'm sorry. That's not fun. Antonio Ribeiro: Yeah. Matt Stauffer: How did you guys recover from that? That's a hard hit. What did you do next? Antonio Ribeiro: I was lucky because I had two different jobs. The job I still have now, working for government, I had it because it will basically give me money for the rest of my life. Matt Stauffer: Right. Antonio Ribeiro: So I lost 50% of what I was making at the time but that's not really bad. Matt Stauffer: It's not the end of the world. Antonio Ribeiro: I had to move from the apartment I was in. A lot of things happened in my life but I survived. And him too. So it's okay. Matt Stauffer: Okay. I like the attitude. The hosting provider, is that still going on? Because you've mentioned working for the government. You've mentioned working for the translation people. Then you switched jobs to other people. You're mentioned these folks who you had the 20% with but you don't anymore. You mentioned the hosting provider that you created. I'm not always fully following who you work for at any given moment so you're definitely still working for the government because you just told me that. Are you still doing this hosting thing? Antonio Ribeiro: No, not anymore. Matt Stauffer: Oh okay. Antonio Ribeiro: We had to close everything because- Matt Stauffer: Oh I'm sorry. Antonio Ribeiro: The money that we were making with the other company was providing a lot of things, including the hosting company that was not very profitable at the time. Matt Stauffer: Got it. Antonio Ribeiro: So we closed it. Very fast. Matt Stauffer: When you said hosting company, the first that came to my mind was your were running some servers and you were renting out shared hosting but you've never actually said that. What sort of hosting were you renting and what sort of folks were your clients? Antonio Ribeiro: Exactly that. The hosting company started because we knew a little bit about internet. We saw some hosting companies doing really bad things in the market and we decided to get one client of ours, which was not exactly that company that was our partner, and build a site for them. For that we needed a good webserver so we learn a lot of Linux at the time, Debian Linux, build a server, got a home internet connection, discovered how to make things happen to get a DNS up, Apache mail server ... So we learn everything in three months and we got it up. Matt Stauffer: Geez. Antonio Ribeiro: Got it all up and the company was online, working- Matt Stauffer: You said home internet server. You were able to get a fixed IP address though, right? Antonio Ribeiro: Yes. Afterwards, yeah. We started with an IP address. Actually, our tests were all doing at home. Then we got an IP address in an office of a friend in downtown so it was that. After that, we moved our server collocation inside the center and got more servers and the thing got really big. Matt Stauffer: Right. Was it just the two of you remoting into those servers in the collocation center or did you start having other folks working for you as well? Antonio Ribeiro: Not in the webservers company. It was only me and him. Matt Stauffer: Okay. What do you use for hosting now for your side projects? Are you a Linode guy or are you hosting your own stuff? Antonio Ribeiro: Yeah, I host everything in Digital Ocean using Laravel Forge. Matt Stauffer: Yeah. Antonio Ribeiro: Except for my backups that are on Amazon. Matt Stauffer: I do the same thing. I know my way around a basic Linode server or an Nginx and Apache and stuff like that but I'm not to the point where I could be running my own hosting service. It's interesting to hear someone who has such a depth of experience in hosting still choosing. Saying, "Hey this is the easiest way to do it so why not". Antonio Ribeiro: Yeah. Matt Stauffer: So that was 2013. Those things shut down. Since 2013, obviously you've mentioned that the last time the Laravel meet-up was going was in 2016 and you said at that point you had already kind of stepped away a little bit. What have the last four years been like? What have you been working on? Obviously you're still spitting our packages and I'm guessing you're still answering questions on Stack Overflow, although I have not looking at how recent your most recent was. What else are you up to? What are you most interested in? What have you been learning and excited about learning recently? Antonio Ribeiro: I'm learning JavaScript now. Matt Stauffer: Okay, got it. Antonio Ribeiro: I got into VueJS very early but I did not move my thinks to VueJS. Right now everything I do is Laravel, back end API, VueJS front end. Matt Stauffer: Got it. Antonio Ribeiro: The past four years, I was basically learning, doing some jobs and some websites for one or another people or company. Doing some contracting work. Everything is small. Two years ago we started to build things in the government using Laravel so it got really big. I have at least five sites and two mobile apps using Laravel. One of the sites, we have a voting system for young congressmen in Rio de Janeiro. Matt Stauffer: Cool. Antonio Ribeiro: Yeah. My company, it has a program for young congressmen so every year we have all the schools in the state, the students, trying to become young congressmen. We have a big voting, I think in July, and then they go to be a congressman for a week. Creating bills and voting bills in and afterwards those bills usually become a real state bill. Matt Stauffer: Really? Antonio Ribeiro: Yeah really. Matt Stauffer: Wow, that's fascinating. And a little bit terrifying, but mainly fascinating Antonio Ribeiro: [laughter] Everything is done with our real congressman so it's cool. Matt Stauffer: So, you built that. I assume you're using View Router and Laravel is really just basically spitting out the view initialization and then the API but none of the front end of those applications is actually built by Laravel? Or is it more of a mix? Antonio Ribeiro: Oh, no. The APIs, Laravel, the front end, is usually view. Particularly this one is not 100% view yet because it has one year and a half. But it basically VueJS. Matt Stauffer: Stepping outside of coding a little bit, I am going to admit that I am an extraordinarily, commonly ignorant American when it comes to most things Brazil, Portuguese, and even Rio. I've seen a couple movies. I watched City of God a whole bunch of times. My sister lived in Rio for a year and my book was translated- Antonio Ribeiro: Oh yeah? Matt Stauffer: Yeah, she's obsessed with Portuguese. When I went home for Thanksgiving a couple of weeks ago, she had been at the bank after coming back from a year living in Brazil and she heard two people speaking Brazilian Portuguese. She walked up, she said "Excuse me, are you from Brazil?" And they look at her like she's a crazy person. They say "Yes, we just moved here and we're setting up our first bank account". She said, "Let's be friends!" And so they and one of her other random Brazilian friends were over at my family's house for Thanksgiving and my son does capoeira so he was like doing the capoeira plays back and forth with one of the guys who does capoeira. I have this very tiny, tiny, tiny side influence that is bringing more than average amount of Brazil into my life but I really know very, very little about the city. I know very little about the country. I know very little about the language. So as a total American idiot who doesn't know anything, let's start with Rio. What aspect of Rio do you feel like, if someone were to visit, they just needed to take in? Obviously, there's a couple specific tourist sites but what aspect of living there and being there do you think is really interest and unique relative to other similar countries that you would really want people to know about? Antonio Ribeiro: Yeah, I think if you are coming to Brazil you have to come blend. The people are the best. We are, I'll not say "cool", but we are good. We are warming. We love to chat, to be with people, to laugh. Knowing the city is something that will happen really fast if you know people here because, of course, you can go to tourist sites. It's easy to get a book and go to tourist sites but to eat food, if you like food, to eat good food. To know amazing restaurants and not very known restaurants. You have to know people. You have to make friends here. And its very easy to make friends in Brazil. Really, really easy. Matt Stauffer: I like that. Talking about food, if there was one food that you would want everyone to try, what would it be? Antonio Ribeiro: My American boss was in Brazil last week. I got them to eat a lamb. There is a very good lamb here in Lapa. I don't know if you know the name. Matt Stauffer: No. Antonio Ribeiro: It's a very popular part of the city where you can find a lot of bars opening at night. Friday and Saturday you go there and you will probably see like 200 persons. 200,000 persons in that part of the city. It's really very crowded. So the lamb. Matt Stauffer: So, if I were go to and I were to visit, I would need to get lamb. I would make friends with people. Get to know ... And honestly that's one of the most commonly known things about Brazil. It's just wonderful. A lot of the stereotypes also have to do with parties and fun and entertainment and Carnival and all that kind of stuff. Are there any stereotypes or any common misconceptions you think that people have about Brazil and Brazilians that you think aren't true that you want to dispel? Antonio Ribeiro: Probably, people think that Rio in particular is too dangerous to know. Of course, it's dangerous. We are living in dangerous times. But it's not like that. You can come here and you will be safe. It's not like something bad will happen as you as you touch the soil. Matt Stauffer: Walk out the door, right. Antonio Ribeiro: It's safe here. It's a good place to be. Matt Stauffer: Cool, I like that. We're a little short on time but I want to make sure that we touch into the other things that you're really passionate about. We've got dancing and photography cued up. I do want to ask before I go into those two, am I missing anything about you? Is there an aspect of who you are or what you've done, a part of your story or anything, that I've just completely missed that you really want to make sure people get the chance to hear? Antonio Ribeiro: Not at the top of my mind, I don't think so. Matt Stauffer: Okay, so let's talk photography. Antonio Ribeiro: Probably yes, but nothing I can remember. Matt Stauffer: Alright, let's talk photography. What got you into photography? What sort of things do you primarily focus on photographing? How much is it actually a part of your life right now? I know it has been as some point, is it still? Antonio Ribeiro: Yeah, I got into photography because I love to make photos. I'm very technical with everything I do so I like very much to program my camera. Matt Stauffer: Are you a manual-mode kind of guy? Antonio Ribeiro: Yes, yes. I do all the time. I love to take pictures of people. This may be what I do the best. Matt Stauffer: Uh-huh. Antonio Ribeiro: I got known in the photography world by taking pictures of shows and nature. Matt Stauffer: Like music shows? Antonio Ribeiro: Music shows, yeah. Because of the dancing, which is the other, I got to the music of the city. To know a lot of musicians, to be with musicians. I have at least two great friends in music here in Rio. I got to photograph them. Today I think their photos in Facebook and Twitter are my photos. Matt Stauffer: When you go straight to your website, you see photography right in there. Is the background of your website, is that a photo you took? Antonio Ribeiro: Yes. Everything, yes. Matt Stauffer: That's gorgeous. It doesn't look real. I assumed, even though I knew you did photography, I assumed you must not have taken them because they're so beautiful. I'm really impressed with this. Antonio Ribeiro: All of them. You're talking about which one? Matt Stauffer: Well, the first ones that came up the last few times I went were a couple of the view of Rio from above. Then, obviously, I'm sure you're aware it keeps cycling through photos. These are incredible photos. Do you consider yourself a professional photographer? Antonio Ribeiro: Yes but I don't make money from photography. I have some professional work, three or four, but I'm not really into it. I'm not photography too much these days. Photography takes a lot of time. You have to really stop and look at the photo. Retouch sometimes. That takes a lot of time too. It's time consuming so I don't have that time now. Matt Stauffer: Yeah. It's mildly offensive that you can say that you don't even have time for photography and you don't do much and then your photos are this good. I'm just going to tell you that right now. Antonio Ribeiro: Yes. I agree. Matt Stauffer: Yeah, this is really beautiful stuff. Folks who are listening, definitely check it out. Of course this will all be in the show notes. Okay so, do you and your wife still dance a lot? Antonio Ribeiro: We dance a little bit. Not as much as we would like to dance and we are not in the dance classes anymore. We were in the beginning of the year. We went back to the dance classes but our lives are getting too crazy to be there, to go to class every week at such time. It's hard. It's hard for us. Matt Stauffer: Yeah, absolutely. Especially when you have a family. There's just a lot of obligations that come from family and come from work and everything like that. I'm finding that I haven't picked up a lot of my hobbies. Somebody asked in the Laravel advent "What are your hobbies" and I laughed and I said, "Keeping my kids alive". There's just times when, if everybody's alive and fed at the end of the time and the house hasn't burned down, I'm considering it a win. Cool. Well, we're coming up on time. I know I said is there any high-level aspects of your story that we haven't covered but are there any projects or any frameworks or any packages or any conferences or meet ups that you'd like to plug, you want to talk about, or you want to make sure people know about? Antonio Ribeiro: No, I don't think so. I'm basically trying to get into my packages a little bit more. I'm trying to rewrite Tracker from scratch. Matt Stauffer: Oh cool. Antonio Ribeiro: Yeah, because it's getting old. Codes is really ugly to look at right now. I think I have changed as a coder in the past years. Matt Stauffer: It's a couple years old, right? Antonio Ribeiro: Yeah, yeah. It's like two or three years old. I think it was the first big package that I wrote and people really like it. I think I have to give some love to the package again. Matt Stauffer: Yeah, yeah. It's this thing where we look at our old code and we can't imagine how we ever wrote like that but it's still our baby. I like it. It's hard every time. It's hard to cut off talking when I have so many more questions but I feel like we've covered a really good chunk. We made it from at least age 14 until today, even if we probably missed a lot of interesting digressions we could have taken. Thank you so much for your time. It was a ton of fun talking to you. I love getting to learn about you. Thank you for the contribution you make, especially because often you're making those contributions ... Again, I don't want to say nobody knows who you are or anything like that but you're consistently helping. Getting a good Stack Overflow score means that you have helped a huge number of people. You've helped me many, many, many times. So, for the tireless work that you do helping people in our community- thank you very, very, very much. Antonio Ribeiro: Thanks for having me and thanks for inviting me do this interview. And thanks for your blogging too because your blog posts are helping me all the time as well. Matt Stauffer: I love it. Well, I promise that I'm gonna do my best to actually writing them again. I'm in the same pit as you where anything other than the day job and keeping my family alive have really dropped. But my hope for 2018, let's get back into doing these side things and working on our packages and our blogs. Antonio, thank you so much for your time. Everybody else, see everything you need in the show notes. Just go to laravelpodcast.com and we'll see you next time. [music]
An interview with Mohamed Said, Laravel's first employee. Laravel News Interview StackOverflow interview Hurghada, Egypt Cairo, Egypt A sample diving video from Mohamed's instagram Transcription sponsored by LaraJobs Matt Stauffer: Welcome back to the Laravel podcast. This week, I'm talking with Mohamed Said, Laravel's first employee. But he's also a freediver who lives in what looks like a vacation paradise. Stay tuned to learn more! Matt Stauffer: All right, welcome back to the Laravel podcast. I'm not even going to be counting these interviews, who knows which number ... Number fifty-trillion, podcast, episode, season 3, words ... I don't even know. I've got Mohamed Said. Mohamed has done quite a few interviews, because it's really special. He's the first employee of Laravel, and Laravel is the most popular PHP framework. It's got a lot going on for it, and it's kind of like a one-man show. There's this idea of the BDFL, the "Benevolent Dictator For Life", being Taylor Orwell. We both have, first of all, the first non-Taylor person working for Laravel, who is Mohamed, but we also have the first idea where you seen an open-source framework, you're comparing to an Angular and an Ember or someone like that, who just kind of has the BDFL, and then hired an employee. Taylor created Laravel LLC, which is a company named Laravel, and that company has an employee. So, it's a little bit of a different working arrangement, and also, a lot of people hadn't heard of Mohamed when he got hired. He's actually already had an interview on the Laravel News podcast, he's already been interviewed by Stack Overflow. I'm hoping that we're going to be able to cover a little bit more, and a little bit of different things, maybe. I don't want to cover exactly the same territory, but I just wanted to point out -- if you had never heard of Mohamed before, you obviously have never put in an issue or pull request to the Laravel core, because he's really been very active in all those spaces for quite a while, together of course with a team of volunteers. He also writes on Medium, he also develops his own features, he's got a couple of other packages. Mohamed is a man around the Laravel community that has been doing a lot of stuff, so I'm really excited to get to talk to him. Before I start asking you questions, Mohamed, why don't you say hi and just give us the basic picture of who you are and what you're about, when you first meet someone, how do you tell them what you're about and what you're interested in and what you do, and where you're from and anything else? Say whatever you've got to say, and then we'll go from there. Mohamed Said: Okay. First, my name is Mohamed Said. I live in Hurghada, Egypt. Hurghada is a small city on the Red Sea. I work as a web developer at Laravel with Taylor Otwell. I've been working with Taylor for the past year or so, and that's pretty much how I describe myself to listeners about Laravel, but one of the things that I usually mention when I speak with anyone -- that I love to dive, to dive into the ocean. If I am a Laravel developer, I am also a free diver, and that's the two parts of me. That's me. Matt Stauffer: Very cool. I think that when I follow you, the three things I get about you are, I get that you love to dive. I don't know anything about that, so I definitely have some questions for you there. I know that you're married and that you'll often reference your wife. Actually, in one of your interviews, you mention that of the things you tend to do, it's program, dive, and shop with your wife. So I might go somewhere there. Programming, diving, and shopping with your wife. So, you didn't originally live in Hurghada - is Cairo, is that where you were originally, and then once you started working with him you moved to Hurghada, is that how it worked? Mohamed Said: Yeah, I am originally from Cairo. I lived there all my life until one year ago. Cairo is like a group of four large cities that grew up massively to become one large, huge city. So, you kind of find a huge crowd of people on every corner. It became very crowded, and very noisy, so me and a couple of friends, we tried to think like, other options, if we would like to live in a better place, or so. Each one of us picked one of the cities that we would like to move to, and my choice was Hurghada, because I love being around the sea, I love meeting different kinds of people, and the interesting thing about Hurghada is that it is full of foreigners, like tourists and residents who are not from Egypt. That's very interesting for me, because I get to meet people from different nationalities, and I get to make friends from different point of views, and so on. That's why I picked Hurghada, and me and my wife, we traveled to Hurghada for two weeks to test the waters. We really liked it so much, and we decided just to move. Maybe that was December 2016, around a year ago. Matt Stauffer: Okay. I love learning about where people are from, and what they're about. One of the things that I did was I opened up KAYAK for looking up flights, and I just said, you know what, if I were to leave out of Orlando, which is my closest major international airport, and I were to go to Hurghada, what would it take? What it told me was, the affordable option is around one thousand U.S. dollars. That is a multi-stage flight, with going through JFK and, I think, Cairo. It says Hurghada International Airport, but it's obviously not big enough that I could fly directly into it. But, it's a big enough airport that I could basically go out of my next major hub, which is JFK for me, and then over to Cairo, and then over to Hurghada, it would take me about nineteen hours to get there. Have you ever considered -- we'll go lots of different places -- have you ever considered pulling a Michael Durinda and all those other folks, and flying the holy over to U.S. for a Laracon? Is that something that might be in the cards for you one day? Mohamed Said: Yeah, I'd definitely do it. I tried to do that for the past couple of Laracons, but I couldn't really arrange it for myself to fly to the states. But, I will definitely do it if I get the chance. Matt Stauffer: Cool. So, Hurghada -- I love getting context about things -- Hurghada is a touristy, beach city, it's right on the Red Sea. Cairo is a big, metropolitan hub. You said it's four cities that have kind of grown up together, and it's really massive. Hurghada, does it feel very big? Mohamed Said: Hurghada, it's not very big and not very small. You can drive around Hurghada in less than thirty minutes, from the beginning of the city to the end of it, because it's two roads on the sea. If you are driving on the street that is directly on the sea, from the start to the end, you can do it in thirty minutes. Matt Stauffer: Wow. Mohamed Said: So it's not very big and not very small, but it has a lot of different kind of people from different nationalities. That makes it feel even more rich than Cairo. In Cairo, you get to meet a lot of people everywhere, it's very crowded. Hurghada is not as crowded, but with the diversity, it makes it a rich city, not just a small city that you just go and relax. There are a lot of activities, and a lot of people to meet here, and that's why I like it in the first place. Matt Stauffer: It seems like the best of both worlds, where it's both kind of small. There's only around two hundred and fifty thousand people, which, I complain about how small Gainesville is where I live, and the Gainesville metro area is over two hundred and fifty thousand people, but it's also spread out, so it's not super compact. Also, one of the problems with Gainesville is it's hard to get anywhere, and there's not as much of an international vibe, which you just mentioned. So you're getting a small, easily travelable place where the population density isn't too high, you're meeting people from all over, and ... Anybody who's listening to this, just pause for a second and go Google Hurghada, "H-u-r-g-h-a-d-a", and just go to Google images. It's just luxurious, beautiful blue and teal ocean vista after vista, it's just gorgeous. You can also just follow Mohamed on any social media platform, and you'll know. Pretty much all he's doing is just being in a vacation commercial every single day. Every picture you get is just you diving through the most beautiful water I've ever seen, it's kind of unbelievable. Mohamed Said: The water here is very amazing. Matt Stauffer: Hurghada is five hours away from Cairo, so there's a lot of people who are five hours away from just absolutely beautiful vacation destinations. There's a lot of different things that hold us back from doing what you did, pulling up your roots and moving to this beautiful place where you can do these things you want. I want to talk a little bit about some of the things that might have kept you from moving over there. For starters, is your family all still back in Cairo, and if so, has it been hard being so far away from them? Or was that a pretty easy decision to make? Mohamed Said: No, it wasn't easy, because it took us two years to make that move, because all of the family and friends are living in Cairo. Also, I had to be in Cairo for work purposes. I just started working remotely one year before the move. So, we had a lot of attachments in Cairo, either me and my wife, because she used to work at a teaching assistant in the university in Cairo. It took us around two years for us to get ready for the move, and I keep telling my friends, I keep encouraging them to get out of Cairo and try to experience other places, but I know how difficult it can be, so I just hope that people give it a chance and try to move there for a limited amount of time, not just to make the final decision. Just to try it for two weeks or three weeks or so before they can feel good about it, and can sacrifice all of the attachments that they have in Cairo and move to a new city, or it just doesn't worth it. I try to convince people to make the move, but it's not easy. I understand that. Matt Stauffer: When you decided to do that two-week trip -- I think that's a really cool idea, the going somewhere for two weeks to try it out -- were you just living in a hotel, or was it something like an Airbnb, or how were you able to move to a place for a short term? Mohamed Said: We used Airbnb to find a nice apartment. You mentioned that Hurghada is a luxurious city -- it's not. What you see on the Internet is the photos of the hotels and resorts, but actually the city is like a city in Egypt, and we can like it or not, but Egypt is a Third World country. It's not very clean, and not very well taken-care of, but it's definitely a nice, wild place on the sea. That's how I describe it, it's a wild place on the sea. When we moved there for two weeks, we tried to pick an apartment at the heart of the city, not in any of the luxurious areas or places that has lots of hotels and lots of resorts, just a place in the middle of the city itself. Just to know the people, just to know how life is in the city, the actual city, not the touristic place. That was wise, wise enough for us, to understand the actual city, not just the luxurious places if we stayed in a hotel or so. Matt Stauffer: Yeah, and I didn't say Hurghada was beautiful, I said when you look up Google images, it's beautiful, and that's exactly what you pointed out, which is that there's often a difference. The interesting thing is, the more First World it is, the more likely it is that if there is natural beauty, then the cost and also the quality of the places you can live around the beautiful thing, is more necessarily higher. There's not a lot of really, really, really beautiful beaches in the U.S., maybe none, where you can live close enough to the beach that you can walk or maybe drive for five minutes and have a place that you could describe the way you just described Hurghada. Because, if there's a beach, then that means there's -- a beautiful beach, at least -- that means there's incredibly expensive ocean high rises all along the way that are really, really, really, really costly. Anybody who has got access to a beach like that is probably paying quite a premium. I visited Miami very recently, and they're extremely expensive. I'm looking at an Airbnb in Hurghada. Literally the first result that came up, studio with free private beach. It's not a beautiful place, it can fit two people, it's probably a couple hundred square foot. It's seventeen dollars per night. If you compare what that looks like to somewhere in Florida, it's kind of mind-boggling to me. I told you before we started this call, that you have opportunity to just say, you know what, I don't want to discuss that. I'm not going to ask you how much money you're making, but I do want to ask a broader question of, does working for a U.S-based company, did that make it easier to move somewhere like Hurghada? Did that give you a little bit more financial flexibility because you're getting paid a little bit closer to American rates but living at Egyptian costs, or is the cost of living not so different that that made a big impact? Mohamed Said: Yeah, it definitely made a huge difference, like before I started working at Laravel, the decision to move to a different city not having any friends or any family around in case I needed any kind of help, that was terrifying, but the financial security that ... It gives you a feeling of security, that's how you can describe it. That you can afford living in a place like Hurghada... Even for an Egyptian having a normal Egyptian salary, Hurghada is not very expensive. What you see in Airbnb, it's like the price or the cost for foreigners. Matt Stauffer: Got it. Mohamed Said: Everything has two prices, one price for foreigners and other for Egyptians. Matt Stauffer: That's hilarious. (laughs) Mohamed Said: That's not fair, but that's how it ... Matt Stauffer: That's life. Mohamed Said: Because if I have an apartment in Hurghada, and I want to rent it to someone, if I don't rent it to Egyptians and I only put prices for where foreigners can afford, Egyptians won't ever be able to rent my apartment, and it will be empty for most of the year. So, people put prices for everything, even gifts, even in the shops, they put prices in dollars or euros, or the equivalent in Egyptian pounds, dollars, and euros, but if you're an Egyptian and you go and try to buy something, they give you a different price because they know that you can't afford that high price that they give to foreigners and tourists. Yes, Hurghada is a touristic city, but that kind of separation between foreigners and Egyptians, it made it a bit easier for me to make the decision. Like the financial security that I am having from my current job, it made a big difference, I can't deny. Matt Stauffer: You talked a little bit in one of your other interviews, and just for anybody who knows, there's two interviews that I'm referencing. He was interviewed on Laravel News podcast, and he was interviewed on the Stack Overflow blog. I'll link both of those in the show notes. Go take a look at those, because I'm not going to try and cover the same stuff that they were covering there. One of the things that you mentioned was that you had done swimming, and then your trainer pushed you a little bit too hard, and you almost had to stop swimming for a while. What was it that got you back into swimming, after you had that negative experience with it? Mohamed Said: We used to go to the sea every summer, when I was a kid, but seven years or maybe back, my father got sick and he had problems with his business, and he had to shut it down. Matt Stauffer: I'm sorry. Mohamed Said: They were tough years, so we didn't get the chance to go to the sea for a few years, but then when I first got engaged to my wife, we had a trip with her family and I joined them. It was in Hurghada here in a hotel on the beach, and we just got into the sea, and I wanted to impress my fiancée. (laughs) Matt Stauffer: That's awesome. Mohamed Said: So I tried to swim and look cool while swimming, so that she gets impressed. Matt Stauffer: Right. Mohamed Said: That's when I discovered that I need to get back to swimming, and I really like swimming, I really like the sea, and I need to get back to learning how to swim better. That's pretty much how that started. Matt Stauffer: That's cool. When did you make the switch from swimming to realizing that diving was something you were interested in? What was that like? Mohamed Said: Again, my wife was the reason, because she likes to collect seashells. I used to swim and try to dive and bring her seashells from two meters or three meters deep, and then I realized that I love diving. Because when you dive, you get closer to the fish, and get closer to the marine life, and I look cool as well. Matt Stauffer: Yeah, you sure do. That's awesome. Mohamed Said: That's again because of my wife. Matt Stauffer: That's very cool. I don't know what made me think about this, but I started wondering about the languages. I don't know what put that in my brain, but I assume that the common language that everyone speaks and everything -- oh, it's because you mentioned putting things in English and U.S. dollars in the windows -- is Arabic. What was learning English like for you? Was that something that you learned in school, or was it an intentional decision that you made? Do you speak English a lot better than the folks you know, or is your level of fluency pretty common? Mohamed Said: Well, in Egypt everybody learns English in the schools. There are two types of schools, they call the New system or the Experimental system and the Old system. The Old system is Arabic only. They only learn English when they are not very young, but the school I went to, we used to have an English class since I was five or six years old. That really helped a lot. Then, later, I kept watching a lot of T.V. movies, a lot of movies and a lot of T.V. series in English, and listened to music and songs or so. That made me collect a good amount of vocabulary. I know I have a heavy accent, and I'm not as fluent as I am while I'm writing English. I write better than speaking, because I don't get to practice English a lot. But, I think among my folks, we are all on the same level, because we all get to learn English in schools. Matt Stauffer: That's cool. Just, for what it's worth, you don't have a heavy accent. You have an accent, but you don't have a heavy accent. Further, I think there's a difference between an accent and fluency. You are extremely fluent, there is nothing that would suggest that you're having any trouble conveying your words. That often is the difference between either a school system that introduces it really early, or someone who's taken extraordinary efforts to learn the language. So that's really cool to hear that there are schools where they're starting it so early and making it so intensive. I've spoken to a lot of people about the impact that many or most programming things being in English has, and I actually asked for a while, to people, would it be worth me building into the CMS that powers my website, the ability to have a translated version into multiple translations for each of my blog posts. Of course the people that follow me are willing to speak English, because otherwise why follow me on Twitter? So I got a little bit of a biased sample because they all said don't worry, you just need to learn English to program. Have you seen any, or do you have any thoughts, about non-English programming education or anything like that, or are you in the camp that just says, you know what, if you're going to do code, you've got to learn English, that's just a part of the deal? Mohamed Said: I think that if you're going to do code, you'll have to learn English. That's why I keep telling to everyone around, because the problem is, the content of the tutorials and learning content online is all in English. If you choose not to learn English just because you don't like it or you don't think it's very important, you are missing a lot. I'm not saying that people should learn the language because it's the language of the world, and so on. People have different opinions about that around the world, but if you are a programmer, and if you don't want to learn English, you are missing a lot. The number of programmers, and the number of people who have blogs and post videos online who are willing to translate their content, is not that big. So, you definitely need to learn English to have access to all this content online. Matt Stauffer: Speaking of access to the content, I know that one of the things that impacts people's ability to learn programming, especially in our generation where there weren't a lot of resources for programming when we were a little bit younger, is when those resources and the Internet are made available in their country. I think it's a little bit more ubiquitous now than it was ten, twenty years ago. One of the things that you had mentioned was, you'd said something along the lines of, basically, when the internet became widely available in Egypt was when, I think you were twelve or thirteen or something, and you instantly latched onto Flash. You talked a little bit about your journey from Flash to HTML to PHP and WordPress, and so I don't want to double-cover that. What I'm a little more interested in, what was it like culturally to go from what was prior to that -- and I don't know what your level of access to the internet was prior -- to after that. Not even just as a programmer, but just daily life. What was that shift like, how universal and how abrupt was the shift where you felt like you did not, and then later did, have access to the internet? Mohamed Said: Well, before that, you just know people, just limited amount of people around you, and you only get to know other people or other thoughts or other experiences from T.V. The thing about T.V. is that it's all managed, it's not natural. You open a channel, and you see what the channel wants you to see. It was a bit limited, and you don't get to choose what idea you need to follow, you just open the T.V., and you see programs that you must watch, that's the only option you can have. You have to watch these programs in this sequence, and so on. After I got exposed to the Internet and I tested it the first time, actually the first few times I had to open the Internet, my father was there with me and I was sitting beside him, and he opened Yahoo! and told me how to search and write a search term, and how to find information ... Back then, I was interested in maybe animals, like I want to know more about giraffes, I want to know more about elephants, and so on. He taught me how to do search and how to find the information I need. I started getting into this world on my own, and tried to find things that I am interested in, and tried to learn more about it. Back then, there was no YouTube, and not much entertainment as far as I can remember. It wasn't like a tool for entertainment like it is now. It wasn't very, very much full of the videos and the photos like before. All websites were text-based and you just get to know information about a specific topic or so, and that's how I started. But, then I knew about chatting, and I started using Yahoo! Chat, and there was a room for web designers, and I think that this room or this period of my life where I started to chat with people, it made a huge impact on who I am right now. Because when you get to meet people from outside your world or universe, like people from different countries, and they are focused on speaking about a single topic, which is web design. It's not a general chat where everybody's talking about everything, they're just a focused room full of people from different nationalities. I was maybe thirteen or fourteen years old back then, and getting to chat with people who are much, much older than me and much more experienced, I felt like I am not very ... very amateur. I can discuss topics, and I can get into conversations, and I can have my own opinions, and that gave me a kind of confidence that I think many people, especially here in Egypt, lack. They always feel like they are not valuable enough, or not good enough to contribute or not good enough to be able to discuss a certain topic, because maybe it's their first time to ... I don't know, I can't actually explain why people think like it, but it gave me, interacting with people and speaking with them at this young age, it gave me the confidence I need. Matt Stauffer: That's really cool to hear. Let's say, whether through you sending this to all your friends or maybe just the natural reach of this podcast, let's say we got a hundred young Egyptian women and men who are hearing you saying this, and they say, I identify with everything that Mohamed just said. I feel like I don't have anything to contribute, or I don't know how to contribute or whatever. That's not how we want them to feel. That's not how you want them to feel, that's not how I want them to feel, I know it's not how Taylor or other members of the community want them to feel. We want them to feel like they, just like anybody in any other country, whether the U.S. or anywhere else, are welcome and have something to contribute. Is there something you could say to them, or some advice you could give to them, that would help them? That's not just for folks in Egypt, it's for anybody else in a similar country. Let's, for your sake, target people in Egypt, young people in Egypt who feel the same way that you just described. Where they just don't know how to contribute, or that they don't feel like they're good enough or whatever. Can you give them a piece of advice or say something to them, to help them move past that? Mohamed Said: Well, I think that if you are on an online forum where people discuss web development or the area you are interested in, and you just decided or saw a post where you have an answer, or you have a reply, or you have a point of view, and you just write on your keyboard whatever you have in mind. The problem is the click on the post bottom, that's the problem. That's what's stopping everyone. Many people, I know for sure, that they see something in Laravel or any of the other repositories, and they try to contribute or ask a question or require a change or something, and they go all the way until they even open the pull request, but they just don't publish it. They just keep it, or stop at this level. So, my advice or what I want to say, just keep it out there. Nobody will judge you. Even if you have a question, and you think it's stupid, you just have to go into the forums and see how many stupid questions are out there. I myself, I post a lot of stupid questions everywhere. The first few times, when I got hired at Laravel, I thought, I can't be an employee at Laravel and just go to the forums and ask questions about Laravel. That will make me look like I was a misfit, or it was a mistake to hire me. But then, I decided that I'll just go ahead and continue whatever I was doing, and I'll just keep posting questions, and some of these questions are really stupid. Some of them, I can really find the answer myself if I look very deep, but it's just how people are compelled to be. We are built to live together and share what we think, and just interact with each other. So, I just post it, and don't feel embarrassed or anything. Matt Stauffer: That's really great advice, and I really appreciate you sharing that. I think it's an interesting inverse, because I think a lot of people say, well, I don't know what I'm doing, and I don't want to ask a question. But it's funny, because the more your reputation grows, actually, the more you feel you don't have the freedom to ask those questions, just like you mentioned. You felt a lot more free asking questions before you had 'first employee of Laravel' next to your name, and then all of a sudden once you do you now have, 'oh, well I gotta know these things'! I remember when I signed a contract with O'Reilly to write Laravel: Up & Running, the first or one of the first Laravel books with a major tech publisher, I instantly had this feeling that, well, now I gotta do everything on my own, because I can't be seen asking these questions. And it's totally true. I think that not only the best learning, but even some of the best teaching to other people, requires us to start from a place of assuming that where we are is okay, and revealing that that's where we are is not going to hurt us. Because, often, you're ... Not even just learn, you're not capable of teaching something to other people until you reveal the fact that that's something that you just learned. Sometimes you're scared to teach something to someone, because what if they say, oh, duh, everybody knows that! Well, then, you don't share that thing. So, it doesn't just limit you from learning it, it even limits you from helping other people. You mentioned that with the pull requests and stuff. I totally affirm what Mohamed just said, which is we really welcome people to be where they are, and that's okay. I think the biggest thing, if you end up going into the Larachat Slack or Laravel IRC or the GitHub issues, or anything else like that, you'll notice that people with the simplest of questions who are kind and respectful are just helped like crazy, and people with really complicated questions who are trying to show off how much they know, who are disrespectful or unkind, aren't helped so much. It's very much like, if you treat people the way you want to be treated, as long as you're kind and as long as you're respectful, I don't think there's any such thing as a bad question in that context. Let's do a quick break before we change topics. Your Twitter handle. I have always read it as "The M Said", like "The ... M ... Said". Is that actually what it is? What is your Twitter handle and your GitHub handle actually representing? Mohamed Said: Well, my name is Mohamed Said. When I was young, I used to have all my usernames everywhere as "m-s-a-i-d", as "msaid". Then, I don't remember what happened, but for like a year or so, I stopped being interested in the Internet and stuff and I remember closing my accounts or just ignoring them until they got deactivated on their own, and then when I came back again, I tried to register accounts from the start, and the username "msaid" wasn't available, so the second option ... Matt Stauffer: Ah, the worst. Mohamed Said: Yeah! So the second option was "the-M-Said", but I pronounce it as "them-said". Matt Stauffer: That's what I was wondering. (laughs) That was my next question, was, now that I know the source of it, how do you pronounce it? So you pronounce it like it was "them". Mohamed Said: Yeah, "them-said". It's easier this way. Matt Stauffer: Yeah, that's funny. All right. So, again, I don't want to dig too far down this direction, but one of the things that I had mentioned to you before was that when there was a time, probably three to six months prior to when you got hired by Laravel, where you came out of nowhere. Nobody had really heard your name, at least not folks in the U.S. All of a sudden, you were making pull request after pull request after pull request, you were communicating extremely well, you were writing good code, they were extremely useful pull requests. We just kind of said, who is this guy, and where is he coming from? I remember that when Taylor started hiring for the first Laravel employee, one of the things I said was, this Mohamed guy is someone you want to take a look at. It wasn't my recommendation that got you the job or anything like that, but I definitely put a vote in your favor because I was so impressed with how useful your pull requests were, and how good your code was, and how well you were writing them. The way I've kind of thought about it was that you were at a job, you were using Laravel, and I think it was something about collections or paginates or something where you just had a very specific set of needs, and you just ran into situations, and you kind of have the mind to say, well, it doesn't do what I want, so I'm going to write them. Do I have the right story in my head? Is that where all that came from? You basically jumped into a new code-base that was Laravel, you found missing things, and you pull-requested them? Mohamed Said: Yeah, it was basically in the Validator, and I was working on a project where I had to do a lot of array validation, and I just discovered this tiny bug in an edge case, and I thought to myself that I can fix it, I know what went wrong, and I know how the code works internally, so I can fix it. I tried to just make the changes on my vendor's folder, just not doing anything pull requests or something, and I got it to work. I tested it on my code, and it was working. The next step, I saw that it might be useful that these changes, or these fixes that I did, to be published on Laravel so that everyone else can use them, and I just opened GitHub and read about how to open a pull request, and that's how I got my first pull request opened. It was rejected, because it was fixing something, but it was breaking another thing. Matt Stauffer: Right. Mohamed Said: After some time, I opened another pull request maybe the next day, and that one got merged. That's how it started. Matt Stauffer: So those pagination pull requests that you put in, that I watched happen, those weren't just your first pull requests to Laravel. They were your first open source GitHub pull requests ever? Mohamed Said: Yeah, I never contributed to open source before. Laravel is my first project. Matt Stauffer: All right, so there's an example of someone who had never contributed to open source before, never done a GitHub pull request before. From that to working as the first employee of Laravel within under a year if I remember correctly, and if not under a year, very close to it. There's a validation for what Mohamed was saying earlier, about just go do it, because ... Not saying that could be every person listening, but that could be! That could potentially be, you, young listener, who has never contributed to open source, who feels like you don't have the ability to do that. That's a story that could be a part of your story, whether with Laravel or with somebody else, but you need to make that first pull request before that happens. Mohamed Said: I would just go and say, if you have something, or if you have an opinion, if you have an idea, just don't be scared to share it. If you keep it to yourself, nobody is benefited. But if you just share it, it might be useful for someone else. Just let it out there. Matt Stauffer: Yeah, I like that. All right, so we're going to talk a little bit about your work, and your work with Laravel, and all that kind of stuff. A couple easy questions first that a few folks from Titan wanted me to ask you. The first one was, what is your editor of choice? Mohamed Said: PhpStorm. Matt Stauffer: All right. Did you do a transition, like a lot of folks do, where you go Sublime Text to PhpStorm, or was that just how you got started when you started writing PHP? Mohamed Said: Well, I started writing PHP on Front Page, it was Microsoft Front Page. Matt Stauffer: Yes! Oh my gosh, Microsoft Front Page! That's a throwback. Mohamed Said: Yeah. And then I moved to Dreamweaver, to Sublime, and from Sublime to NetBeans to Sublime again, and then to PhpStorm. Currently I use PhpStorm on a regular basis, but I have Sublime opened, I use it for taking screen shots, because the theme there looks cool. Matt Stauffer: (laughs) I love it. So, what is your favorite thing about PhpStorm that makes it more useful to you than Sublime? Mohamed Said: Well, I tried a lot of IDEs before, and I think PhpStorm is the fastest. If you are coming from a background where you are using Sublime for a lot of time, you think that PhpStorm is slow, but it's not. I think it's very fast, and it makes writing good easier with auto completion, and with the many helpers that the software has. I like it because it's fast. It is fast, compared to other IDEs. Don't compare it to Sublime but compare it to other IDEs, and you will find it very fast. Matt Stauffer: Right. So once you've decided you're going to use an IDE, then it becomes the best option. Mohamed Said: Yeah. Matt Stauffer: What is the most important or impactful thing you've learned from working together with Taylor? Mohamed Said: Well, there is something that I didn't learn yet, but I wish at some point I'll start to understand how he works. Being someone like Taylor Otwell, he's very successful in what he does. He did a lot of very interesting projects helping millions of people, and the two projects or the three projects that are getting him income are very successful, and he is doing really great. But, at the same time, he didn't lose motivation. It's very amazing for me. I feel like at some point, if I get a kind of success that I am recognized by a lot of people, and that my projects are being used by a lot of people, and I am doing very well financially, by this time, I think that I will start losing motivation in building other stuff. Like, I'll start just to relax and having something like an early retirement, but Taylor is constantly motivated to do other things. He wants to build other packages, he wants to enhance the existing packages, and he just keeps searching for ideas like new packages and how to enhance the current ones nonstop. That's something I really wish to learn. The thing that I really admire about Taylor and that currently I think I started to learn, is how important is details. Everyone writes code, but Taylor, he doesn't only write code, he writes beautiful code. Something that when you look at, it looks nice, it looks beautiful, it looks readable. These are the details, and he is very, very focused on details as much as he is focused on the core of the thing he is building or the thing he is working on. Matt Stauffer: Yeah, that's a really great point. One of the things that we mentioned working with Taylor, working for Laravel, has allowed you to do, was it made the move to Hurghada a little bit easier. Are there other things that working with Laravel has allowed you to do, either now or maybe that you look forward to in the future, that you think you might not have been able to do had you stayed working for the company you were before? Mohamed Said: Well, basically right now, I think, as I shared, I am most secure financially, in terms of money. But, one of the other perks that I get when I work for Laravel, is that I know a lot of people right now in different countries, so I have that plan with my wife that at some point, when we get a chance, we would love to visit a lot of countries around the world. Now I meet a lot of friends around the world, so it would be really amazing to meet all of these people in person, and get to know their life, and just not to go to the country as a tourist but knowing someone in the country gives you the chance to know the actual life of the country, not the side that tourists see. That's one thing that I find very useful. Matt Stauffer: That's very cool. If, let's say, and God forbid, let's say for some reason, in five years, you didn't work for Laravel. For whatever reason, good or bad. What would be your dream to do, if you were spun off, you were financially stable, let's say you had some savings. Are you the sort where you would want to start a consultancy, would you want to start a product? Would you just say, you know what, I hope that I would be financially stable enough that I could just retire? Outside of the job you have right now, which is really good and I don't want to suggest you leaving or anything. Let's say there was some circumstance that led you to not be working there anymore. What would be the thing that you would pursue, or do you even have anything in mind? Mohamed Said: Well, during the past few months I've been speaking with my wife regarding something like that. Before working at Laravel, I used to consider myself as a mid-level developer. I am not a professional developer, I never worked for a big company or a successful company. All my past employers were small start-ups or companies that have two or three developers or so. So, I always thought that my next level is to try to apply to bigger companies, and try to enhance myself and become a professional developer, or a senior-level developer, and then maybe a team leader. Just the regular ladder of web developer or programmer. But then, suddenly, I find myself working for Laravel, and I always thought that that's something I will reach when I am, maybe over my forties or something. To work for a big name as big as Laravel itself. So, it kind of made me a little bit confused for some time, that what's next for me? What's the next step? I am twenty-eight years old, and I don't really see myself stopping working with Laravel because I love my job very much, and I love being around with all these people. Speaking with them and interacting with them, trying to help and trying to find other ways to add to the community, so on and so forth. I don't see myself leaving this job anytime soon, but the next step, which I hope will be not before at least ten years or so, I think that I am going to try a different profession. Not even programming. The thing is, I love programming, and I've been doing it since I was very young, but moving to a city where a lot of foreigners live, I met a lot of people who just decide for like, two years, I am not going to work. I am going to live on my savings. I've met a couple of these people who just decide for a year or two, just to relax or to enjoy or to experience something different. That idea, at first, was very strange to me. If you are successful at your job and you are moving forward in your career, why would you stop and do something different in the middle of your very fruitful years? But I realized that people, when they do this, when they pause, when they get a break, when they try something different -- when they get back, they are more rich. They think of things in a different way. So, my plan is if at some point, I have to stop working for Laravel, I think that I will try to become a professional free diver. Matt Stauffer: Tell me more about that. Is that instruction? Is it competition? What does it look like to be a professional? Mohamed Said: Well, I think being in competitions is on the map, but I think that I still have a long way to go before I can go to competitions, because it's a very difficult sport and it requires a lot of training. For a free diver to be able to reach to the competition level, he have to be full time training, every day, for a long, long time. Not just ... Matt Stauffer: Wow. Mohamed Said: I go free dive once a week. That's not enough for me to reach a level where I can compete. But definitely, at some point I'd love to get certified and teach people free diving, because I like to teach people stuff. I like to see someone who is not familiar with something and I help him, and in a few months I see him doing great in the area that I try to help him with. I like that feeling, I feel like that's something that everybody likes. I think it's not something special about me. Everyone likes to see the impact of what he does on other people. I think that my next experiment would be something related to free diving. That's pretty much what it ... Matt Stauffer: That's cool. That makes a ton of sense. I mean, a lot of us, even Taylor and Jeffrey and me and Ed, a lot of us have said, what do I want to be doing when I'm forty or when I'm fifty? Do I want to be sitting down writing code? I don't know the answer. For some folks, the answer is yes. Some folks, the answer is no. Some folks, we don't know. Jeffrey and I have often joked about being goat farmers (laughs). Someday down the road. I think a lot of people who are programmers really focus on having ... And they have a higher focus than a lot of other people on having a physically creative hobby. A lot of them do carpentry or woodworking or whatever, because what we do is so much in the mind, it has so little actually practical, concrete application in the physical world, that sometimes we just feel like, I just want to go do something with my hands, and just see the result. Yours isn't exactly that, but it definitely is, it's a real-world, physical, tangible thing that you already love doing, that lines up with your desires of teaching, and stuff like that. I empathize with that so much. I don't live close enough to the water for that to be a thing, and I don't know that I'm as interested in free diving as you are, but the idea of being able to spend every day in the sea sounds pretty great to me. That makes a lot of sense. I got a couple more questions, but we're nearing the end of the interview. One of the things I wanted to ask was, we've talked a little bit about some of the different aspects of what it would look like for people's confidence level of being a programmer in Egypt. We talked a little bit about how coming up into programming might have been a little bit different, coming up into open source, about how some of your international exposure through chatrooms have changed the way you see yourself and see the world a little bit. Are there any things we haven't covered where you can say, here are some factors that make it unique to be a programmer in Egypt, that are different from what you perceive from other folks in the Laravel community, that you would want to share with us? Mohamed Said: I'm sorry, can you rephrase that question? Matt Stauffer: Yeah, yeah. Is there anything we haven't already talked about that is an interesting way that being a programmer in Egypt is different from being a programmer elsewhere, as you kind of see from the people you know? Mohamed Said: Well, I can pretty much say that before 2011, the programming scene in Egypt, it wasn't very fruitful. A lot of people, they favored other professions than programming, but after 2011, the Egyptian Revolution, a lot of changes in the country and one of the things that made programming pretty popular is that a lot of start-ups started in Egypt. And because there was cheap labor, like programmers in Egypt, their salaries were not as high as programmers in Europe -- a lot of companies in Europe, they started companies in Egypt to control the amount of expense they have to pay. So, programming became one of the professions that people look forward to, and everyone is trying to become a programmer. But, then after a few years, the curve changed and the mood changed. Because of the political instability and economic instability, a lot of companies shut down and they just left, and a lot of developers who are really good, they left their country and are now working in Europe or the States. So that leaves the scene here in Egypt as if it was like the past maybe, seven or six years, weren't there. People are starting from the beginning right now. I think that for everyone who was an Egyptian programmer who was looking forward to try to learn more and become a better programmer, I think the lessons learned from people who started early in 2010, 2011, they all have blogs online, and they have blog posts, and they talk about everything. You can just go there and read about. You will find a lot of information on these blog posts that will help you go through the journey even faster. I'm not sure that answers your question or not. Matt Stauffer: Yeah, that's a fantastic answer. Since that change has happened, where it feels like a lot of those companies, and even a lot of the more talented programmers, have left, are you in a place where you have any other programmers in town? Are there even any meet-ups that you can go to, or are you kind of getting all of your community online? Mohamed Said: Well, that might sound depressing, but all my friends during the past seven years, everyone I ever worked with who was a developer, he already left the country. Matt Stauffer: Wow. Mohamed Said: I am the only one from my group of friends who are still in Egypt. It's pretty much very, very rough now. The scene right now is like how it was before that start-up movement appeared in Egypt. Matt Stauffer: Right. That does sound a little depressing. The good thing is, you're living in that beautiful place with your wife, and getting to dive all the time. You have this great online community. I don't want to project this on you, but do you have a priority of seeing Egypt grow back in that direction, or is it like, well if it does, it does, and if it doesn't, it doesn't, and it's not too much of a bother? Mohamed Said: Well, I have mixed thoughts about that. I wake up and I think that I want to help, I want to speak with developers in Egypt and try to... Actually, most of the developers, they don't know me, they don't know I work for Laravel. They are not on Twitter, so I am not that popular here. I wake up and I think that I want to help, I want to speak with people, I want to try to make a meet-up and teach people what I know, and try to start a community, but the next day I wake up and I think that maybe it's something good, but maybe it's not someone like me who can do that. It requires a lot of energy. Yes, a lot of energy. I see Prosper and Neo and what they are doing in Nigeria, it's incredible. These guys are heroes, they are real heroes. It takes a lot of energy for you to speak with people and gather them, and try to start a community. I'm not sure if I can do it, but I definitely help anyone who is willing to do it. I can help them in any way. Matt Stauffer: That's cool. I really want to affirm what you just said, which is you can believe that the thing should happen, and still decide that you're not the person to do it. I feel that sometimes we feel the pressure that, well, it's not happening, and I value it, so maybe I should have to do it. I think that's a recipe for overcommitment and burnout. So, I applaud your wisdom in being able to recognize that even though you want that to happen, you are not necessarily the one who is supposed to be actually running it. Okay, Mohamed, I have one last question for you. As somebody who watches all the issues, all the pull requests, all the documentation, everything else that come into Laravel, is there something, maybe a technical something, but maybe just how to interact with people, that you wish people would know? Is there one main thing that you say, as I watch the issues and pull requests that come into Laravel, I wish everybody knew this one thing? Mohamed Said: I wish everybody reads the full documentation before they even start to call. A lot of people, they open issues and they try to ask questions while everything is already answered in the documentation. The thing is, people don't believe the documentation because they are used to documentation of other projects where things are not very clear, so it's easier to just ask the question on the forums or on the repository. But, for Laravel, the documentation is very, very clear. If you read the documentation, you will find a lot of gems, a lot of great stuff that you can use in your project. I advise everyone to read the documentation from page one to the last page, and they will find themselves knowing a lot of stuff that, even if you are following Laracast, even if you already read Matt Stauffer's book, the documentation is necessary. It's important because it gets updated nearly every week with new features and even warnings about edge cases and no-fixes, things that we are unable to fix. So it's important that people should follow documentation, should read it every once in a while to make sure they are on the same page with the rest of the community. Matt Stauffer: I like that. That's a very good one. I second that too. Not only are the docs always good, but Taylor has done several rounds of extensive review to make them better, clearer, more robust and easier to understand. There's as much work put into documentation, if not more, than into the actual code itself. All right, so we're basically out of time, but before we go I want to ask, are there any things that you wish we had had time to cover, whether it's technical, about Laravel, or things about you that you wish people knew or just that are interesting, that we didn't have the chance to talk about? Mohamed Said: Well, I won't feel tired for hours speaking about free diving. Maybe next time we speak on a podcast, or we meet in person, we speak about free diving a little bit more. Matt Stauffer: It's funny, because every single podcast that I've had, I tried to stop saying it so that's why I've said it a million times, but I think in my head, I could talk about this one subject for hours! I think that several times during each of these interviews, and that was one of them. I do want to ask you one question about that. You put a lot of energy, a lot of time into free diving. Now granted, there are some easy, obvious wins. You're in the sea, it's beautiful, you're seeing ocean life and all this kind of stuff, but I want to hear from your brain, what is the main aspect of free diving that makes it so compelling to you? Mohamed Said: The freedom. What I feel at the top, when you are not in the ocean, there are a lot of rules. You have to take care of how you look in front of people, how you speak, how you move, and sometimes how we think. But down under when you are into the sea, you go blank. Your mind just stop thinking, and you enjoy the freedom that you can. You don't care how you look, you don't care how you move. Even if you are swimming wrong, no one will be there to judge or tell you that you are wrong, and you can pretty much do whatever you want. There's something I really do, if I am upset or I am mad, or I don't feel quite happy. When I dive, I just go down there, maybe ten meters down, and I scream. I let it all out, until there is no air in my lungs any more, and that's the time I come up, but that feeling of being able to do whatever you want, it's freedom. That's the most incredible thing I love about free diving. Matt Stauffer: That's amazing. I'm really glad we at least went five minutes in, because like I said, I agree with you, I'd love to go for hours like that, but I don't know if I would have even begun to understand that that is a part of it because you mention that, and I've never done free diving but I've swum in the ocean, and I remember one time I went lobster hunting and it was just me, digging around and diving around, and you're right, I had no thoughts whatsoever about other people looking at me, or my gait, or my dress, or my anything. Pure focus was on what was around me. You're really right to point that there's not a lot of contexts where that's the case. I think it's probably true at least a little bit anytime we're out in nature, it's one of the reasons why people love mountains and oceans and stuff. That's really fascinating. Thanks for sharing that. Mohamed Said: Yeah, I love it so much. I'd keep speaking about it for hours. Matt Stauffer: Yeah, next time we will do that. Mohamed Said: Okay. Matt Stauffer: So, if people are going to follow you, you are on Medium, you are on GitHub, you are on website, on Twitter, and GitHub, and they're all basically, you said, "them-said" is how you say it. So, "t-h-e-m-s-a-i-d", and pretty much on all those contexts you're there. Are there any other ways people should follow you, or any other projects or anything that you want to shout out? Mohamed Said: Well I am on Twitter, and I like to speak with people, I like to get to know people, so just drop me a line and I'd love to speak with you on any topic. That's the message I want to tell everyone. Matt Stauffer: I love it, that's great. Well, I could talk for hours, but we're definitely hitting time now, so ... Mohamed, thank you so much. Thank you for your time today, thank you for sharing all this stuff with us, thank you for the hard work you put in for the Laravel community. Not just as work, but as your love for helping and teaching people, thank you for contributing that and for being a part of making the Laravel community a better place. Mohamed Said: Thank you Matt for having me, and thank you for this season three of the podcast. I've heard the past three episodes, and they were really amazing. The questions you ask and how people answer, it makes you get to know people themselves, not people as programmers, the persons. So, thank you for this. Matt Stauffer: Well, I'm overjoyed to hear that, and I look forward to hearing when everybody gets to learn about you as well. Mohamed, thank you, it was great talking to you, and I'll talk to you later. Mohamed Said: See you later, Matt.
An interview with Laravel woman around town and lover of puppies J.T. Grimes. SPONSOR: Twilio provided J.T. audio recording equipment ❤️ J.T. on twitter Actuary Marco Cantu COBOL Fortran Delphi CompuServe IBM iSeries Zend ZendCon Alan Seiden QCodo Juan Treminio Yak shaving Transcription sponsored by LaraJobs Matt Stauffer: It's time to learn about Miss J.T. Matt's son: It's time to learn about J.T., JST. Matt Stauffer: No, just J.T. Matt's son: J.T. Matt Stauffer: Time to learn about J.T. Matt's son: Time to learn about J.T. Matt Stauffer: Welcome to the third interview of Laravel Podcast, season three. We're going to be talking to J.T. Grimes who has been around the Laravel community and is one of the funniest people in Laravel, but you might not know much about her. Stay tuned. We're going to get started. It's the next episode. This is the third interview of Laravel Podcast season three, so the first one was Taylor Otwell, so Taylor who everyone knows he created Laravel. The second was introducing Neo who a lot of people don't know but within his world he's extremely well-known, so within the Laravel, Nigeria world everyone knows who Neo is. It was kind of a fun little world, way for them to join in to maybe I don't know if the American or whatever space. m This next interview is very interesting and I very intentionally not told anybody who I'm talking to, which is tough because what I wanted to do was go out in Twitter and say, "Hey, who has questions for this person?" But I decided intentionally to wait because I think that this is going to be such a treat for someone who is everywhere but nobody knows anything about her. The interview today is with J.T. Grimes and I actually need to pull up your Twitter profile because one of the things about your Twitter profile, is it a South Park character? J.T. Grimes: Yeah. Matt Stauffer: Almost everybody who interacts with you doesn't even know you look like. The Golden State, we got some Cal going on there, there's South Park, but you're one of those folks like you and Amanda Folsom like nobody unless you've been to a Lericon Conference and had the pleasure of interact with J.T. don't actually know. I guess like at Sunshine PHP or something like, you're actually know what J.T. looks like, but are you wearing the hat right now? J.T. Grimes: I'm wearing a hat. Matt Stauffer: Are wearing a Cal hat? J.T. Grimes: I'm wearing a Cal hat, of course. Matt Stauffer: Is it safe to assume you're always wearing your Cal hat. J.T. Grimes: Sometimes it's a raiders hat but- Matt Stauffer: Okay, fair enough. J.T. Grimes: My hair wants to do this Alfalfa thing all the time, and it's either be seen in public like that or wear a hat- Matt Stauffer: Got it. Got it. J.T. Grimes:... so always the hat. Matt Stauffer: I like it. J.T., can you tell people, say hi to people and tell them who are you in whatever length you want to say, and where do you work and what do you do and what brings you exposure to the Laravel community? J.T. Grimes: I was frankly a little surprised that you wanted to talk to me because I don't see myself as being one of the "She's everywhere" community members. I work for a little insurance company in San Francisco, I've been in the same job for 21 years. Matt Stauffer: Wow. J.T. Grimes: Well the same company. Longer than some of your listeners have been alive. Matt Stauffer: It's true. J.T. Grimes: I never wanted to be a programmer, I was very clear that that was not going to be the direction my life was going in. My mother is a programmer and so I spent all of my teenage years saying, "I'm not going to be like her." I went to school with a degree in Statistics, got a job as an actuary or an actuary trainee. Every job I had they kept trying to make me progress. I kept saying no, no this is so me. Matt Stauffer: The universe. J.T. Grimes: Finally I just had to give in. Matt Stauffer: Actually, I need to pause and do one thing. I said I was going to do this, getting like totally failed. I'm looking at you and I'm seeing a microphone sitting in front your face and that microphone arrived too because Twilio the people at Twilio.com are amazing human beings and they have sponsored us getting good recording equipment to anybody who doesn't have it. I want to say, Twilio, if you need text messages or voicemails or anything like that programmatically Twilio are the bomb, they're freaking amazing people. Greg Baugues is the man so as Ricky, and they sent us stuff over. Okay, thank you, Twilio. We love you, you're great. Okay, now back to my question. When they got you in? J.T. Grimes: Can I throw-? Matt Stauffer: Yeah, go ahead, go ahead. J.T. Grimes: Let me throw in a quick shout out to Twilio. They've just added fax capability. Matt Stauffer: What? J.T. Grimes: Yeah. When you work in insurance and you're in all the economy kind of company you are still sending faxes. Matt Stauffer: Got it, so you actually love, you are using them on a regular then? J.T. Grimes: Oh yeah. Matt Stauffer: Oh man. Good, Twilio. They finally convince you, you're an actuary, you're doing the very, very exciting. Is that like I mean, is it Excel? Are using Excel is an actuary or is there a like more complicated stuff? J.T. Grimes: I know that there are companies who use more complicated stuff. I've always been an Excel user, but it being a data monkey, it comes with data coming in a little bit of analysis going out. Matt Stauffer: I'll ask you more in a second now that you're doing programming there. Originally, when you were first doing that before they can convince you go to programming, was it basically Excel and Access and Spreadsheets and numbers like that? J.T. Grimes: Yeah. Matt Stauffer: Adam often I forget his exact same term would be, basically says like, "What we're doing is all basically just like Excel." He may say it in the inverse anything you could do in programming you do in excel something like that. It seems like a pretty reasonable transition to me and I got to say there's not a lot of people who are, I don't want to say anything about generations but there's not a lot of people who are at least in my generation whose parents are programmers because it's not ... What kind of programming was your mom doing? J.T. Grimes: She started doing Fortran. Matt Stauffer: Okay, that's pretty good. J.T. Grimes: For a local oil company in the late 60s, switched to COBOL and was at Bank of America and a couple of other banks for 40 years. Matt Stauffer: Wow, okay so that's how she got in. When they finally convinced you to be a programmer? What was the task or what was the language? Tell me more about that first time. J.T. Grimes: There were a lot of Excel macros, there was a lot of ... This isn't really programming but I'll just write a program to do this. Matt Stauffer: Got it. J.T. Grimes: There was the first thing I used in a professional capacity was Delphi one. Delphi was visual Pascal the one language Microsoft has never given us the visual version of. Matt Stauffer: Wait a minute. Can I pause you? I know that Visual Basic is the thing, I know that there is visuals. I don't actually know what a visual version of a language is, can you tell me what that means? J.T. Grimes: Generally, when Microsoft uses it, it means that it is designed to build native apps on those. Matt Stauffer: Okay, got it. J.T. Grimes: Visual Basic gives you the tools to make your Windows Forms in all of your screens. Matt Stauffer: But using a programming, so visual means this programming language is meant to build native user interface on it versus whatever else? J.T. Grimes: Right. Matt Stauffer: Okay, so sorry I interrupted you were talking about Pascal and Delphi, a whole bunch of words that I don't understand so I got it like [inaudible 00:06:49] one by one. J.T. Grimes: Pascal is a C like language but very verbose instead of brackets you have begin and end and everything is words instead of symbols, but you've still got pointers, you can still do all the things you can do in C. There was a little bit of Visual Basic, there was a little bit of Perl as little as I could manage. I figured out real quick that if Perl was what it took to be a programmer in this new exciting Internet age it was not for me. Matt Stauffer: How were you learning at this point? What resources were you using to learn these languages? J.T. Grimes: With Delphi, it was books, there may have been a CompuServe forum. Yes, I'm old enough to have used CompuServe forums, but we actually had printed pieces of paper and we would pile them up on our desks, and sometimes we'd use them to lift monitors up as well. Matt Stauffer: I assume you're referencing books when you talk about printed pieces of paper. J.T. Grimes: I think that's what they're called. Matt Stauffer: Yeah, books. Am I allowed to ask? I'm not asking anything about age but just at this moment when you were learning to code and you're at it totally non-determined age, what time period was that because it's CompuServe, so this is early '90s or ...? J.T. Grimes: It would have been the mid '90s. Matt Stauffer: Okay, mid '90s. All right. J.T. Grimes: I mean I've said I've been at my current job for 21 years so I'm sure knowing that. Matt Stauffer: Hey, I'm not, okay so that part makes a little more sense. Yeah, okay, cool. All right, so you were pre-internet teaching yourself the code. I mean a lot of people's stories Neo stories and Taylor story and my story, we're talking about teaching ourselves the code by viewing source on websites. A lot of us didn't get into anything until we got it a PHP and that's how we got into like, whatever. You're teaching yourself A) pre-internet and B) you're teaching yourself like some, I don't know what the term is, it's not hard code but like this is legitimate programming stuff and you're just kind of hacking it through as you went. Did those books really help you or is it a little more just kind of trial and error? J.T. Grimes: There's a lot of trial and error, there is a lot of ... let me try and build a program that does this and learn just enough to do it- Matt Stauffer: Got it. J.T. Grimes:... which is how- Matt Stauffer: Everyone is right. J.T. Grimes: I think everyone has learned for the last 30 years. Just like always, there were a couple of authors and a couple of imprints that were very reliable. This was before O'Reilly had different animals on the coverage of everything. I'm not sure they were even a thing. Matt Stauffer: Do you remember anybody who really kind of stood out as a helpful resource then? J.T. Grimes: Marco Cantu was the guy's name who wrote the best Delphi books, and I can't believe I just pull that name out of my head. That is a brain shell that could have done something useful, but instead- Matt Stauffer: It prepared for this moment right now. J.T. Grimes: Marco Cantu. Exactly. Matt Stauffer: That was we're talking about mid '90s. You learned all those languages, but that's not where you're writing today. What was the next step ... Well actually I don't know. I mean, I assume that because I met you at Lericon and because you basically joke on the whole Laravel community a little bit at a time, that you're writing in at least some pitch piece and web based stuff today, but there's got to be some things that happened between that moment 20 years ago and where you are today. What kind of transitions did you go through? I mean you're staying in the same job, they weren't job transitions, or at least they weren't company transitions. What was next after you started learning? J.T. Grimes: I work for an insurance company and one of the things you have to do is read different kinds of policies. We have algorithms that are built to do the reading. It's a frame building with this kind of roof and this like square footage and, oh you're running a music studio so there are kids in there all the time, so your liability charts goes way up. Somebody has to get all those algorithms into the system, so it's not really programming in a language but it's building algorithms and it's functionally programming. The system we've got to do this in is really cool, I would love to show it off some time but it is in COBOL. Matt Stauffer: Wow. J.T. Grimes: The back end at my insurance company is COBOL, we've got four or five COBOL programmers who are great, who are some of the best programmers I've worked with, which always surprises people. Matt Stauffer: You're saying is not was. You're talking about today. J.T. Grimes: I'm talking about today. The system we're on when life in, I want to say 1990 or '91 and has been in continuous operations since then. There's active development going on along with maintenance. Most of the system has been rewritten in those 25 years, but yeah we were running the same thing, have been running the same thing in COBOL 25 years. It's solid. Matt Stauffer: That's amazing. I've got so many things to ask you but I got to pause you, you're talking about a system running longer than almost anybody listening. Some of them have not even in the life that long. That's silliness aside, I would say there's a very, very, very tiny percentage of people who have been programming as long as that system has been running. You know what things were are fads now. You know the limitations of Laravel, and I want to keep getting back to your story in a minute but I got to stop you there. What could you point to if anything well you say, "You know what that is something that I can learn from this nearly 30 year running code base that we could kind of benefit from today," like what are some of the things that have helped that be so stable? Is it because of COBOL, is because there are great programmers, are there any things systems are structured or practices or attitudes that you could share with us? J.T. Grimes: So the tooling that's in place is terrible. It's awful. We don't have source control. Matt Stauffer: Wow. J.T. Grimes: We don't have a staging server, there is Dev which works as test and there's production because we're running on a mainframe and you can't exactly get a mainframe at everyone's desk. Matt Stauffer: Oh my gosh. J.T. Grimes: There is no virtual machine that emulate an IBM, I think Power I is what they're currently calling the product but basically one of IBM's mainframes. So much of the tooling in the system that's in place is awful, and the only reason that I can think of but we're still running and I need to knock wood because if I did shit someone will kill me. Is that we've had really exceptional people, but beyond that I was looking at our system and I thought, "Here's a great conference talk. If I were not painfully shy and unable to speak in front of people." We, as a financial services kind of thing need to be able to roll back transactions do things out of order, keep track of rebuild the policy from scratch. This is really cool and I don't know anyone who's doing this in PHP and just as I was thinking that, I can't remember what you call it now, CQRS. Matt Stauffer: Yeah, the event sourcing and the command query in response to separation and all that stuff. J.T. Grimes: Event sourcing became a new hotness, and essentially what this is. is event sourcing that we've been doing in COBOL for 30 years. The database design has been super solid if I were going to give people one piece of advice that goes against everything you hear now, get your database design down first. It is the most important part of your system, whatever you're showing, whatever you're making, 90% of it, if you're using Laravel probably 98% of the products you're making are crowd apps. You are reading data and you are writing data, and if the database isn't right you're going to be in a world of hurt. Matt Stauffer: That's really helpful, and I'm going to dig down there a little further, I think that's a great advice from you. I would say, if you've got these really kind of pro programmers that you're working around every single day, get the database right, I mean that's a huge thing. I would say like there's people who have taught me various things like I can look to one person who taught me about simplicity, and I can look to another person who taught me about denormalizing databases, various things that they taught me. When you think about the people in your team who you're so impressed with, are there any specific things where even if they're not sure, well you can say, "You know what, like by working with this person they really made me better at this or at that." J.T. Grimes: I can't think of a specific thing that they've made me better at, but I can tell you that working with them has made me better. I've gotten a lot better at communicating because we don't, once we are on our machines we don't speak the same language at all. We have variables and we have loops and we have, we're accessing the same data, but we have very different terminology for it, and so being able to bridge that has been a really useful skill. Matt Stauffer: Where are your various code base is talking together? Is there shared databases that they're interacting with? Or how are they actually connecting to each other? J.T. Grimes: The main system, the source of all truth is the COBOL, the I series, the Db2 database that's running on there. The AS/400 or the I series who's IBM's current marketing term for it, and when you've been using the same thing for 30 years you call it by its 30-year-old name it happens. It is the source of truth, we have web apps on other servers, public face and servers that talk to it through essentially a homemade API. PHP is one of the only modern languages that runs smoothly on IBM set up, and that's because they've done it partnership with Zend, Zend actually makes an interpreter specifically for running on IBM's mainframes. Matt Stauffer: That's fascinating. I had no idea. J.T. Grimes: ZendCon is coming up. If you're going check out the I series though usually have a day of sessions that are specifically about running PHP on IBM hardware. It's a very different group from who you find in the other sessions, they tend to be in those same sessions together the whole time because your company is paying for you to go learn this one thing that you cannot learn anywhere else. Matt Stauffer: Anywhere else. That's fascinating, because there's just a small subset of people who are actually doing that extremely vital PHP on IBM kind of thing then right? J.T. Grimes: I think so, but it's one of those invisible communities. There are a lot of them out there, but people who aren't doing cutting edge stuff who aren't at startups are probably the bigger part of the PHP communities for folks working for the government, for bank, for anywhere else that's boring. Matt Stauffer: Yeah, well it's so interesting because I hear you say that and I go, "Yeah, I know those people are out there," but again I met you at Lericon and the first thing that doesn't come to my mind is people who are working on applications that have been running for 30 years who you talk about the boring stuff. Even ZendCon, I mean ZendCon like I went to ZendCon a year or two ago, and one of the reasons was because they're really trying to reach out to the non-Zend world, because like I think even just not even talking about PHP on IBM people, I'm just talking about Zend in general, it tends to be relatively disconnected from like the Laravel of the world. You're talking even a further thing within the Zend world. There's this even much smaller subset of people who are the Zend and IBM. This is like a really, I don't want to say it's a niche because I don't know how small it is, but how on earth? You know what, I've got so many questions I was about to ask how they put, I'm jumping ahead of myself. Let's step back a second. Are there any big transitions in the work you're doing between when you first got started, when you first were doing all that kind of work when you were learning COBOL and you're learning the visual stuff Pascal and all that, and what you're doing today because obviously today you're doing at least some web, you're doing some PHP. What was that transition like? How did it take from you to go from there to here? J.T. Grimes: I'm going to correct two things. One, I don't do COBOL. Matt Stauffer: Okay, sorry, I was mixing up all my old language. J.T. Grimes: I understand. I actually advocate for people to learn COBOL, all the COBOL programmers want to retire and there's no one to fill in for them. Matt Stauffer: Wow. J.T. Grimes: You would be surprised at how many financial institutions, other big companies are still running COBOL, and they're doing it for the same reason that my company is, which is two-fold. One, it's incredibly expensive to rewrite everything you've got. Two, once it's been in production for 10, 20, 30 years, it's effectively been tested every way possible. The risk of going to something new, I think Visa still using COBOL. If you are the largest payment processor in the world the risk of rolling out a new system is- Matt Stauffer: Is not worth it. J.T. Grimes:... is mind boggling. Matt Stauffer: You'd rather use a 30-year-old system and keep paying for those old mainframes, and then paying enough money obviously for IBM to keep producing them and for Zend to keep doing those integrations. That's pretty incredible because when you say COBOL like I hear people say, I learn a [inaudible 00:20:41] COBOL and I'm like, "Yeah, 30 years ago. I don't think about today." J.T. Grimes: The jobs were out there, the need is out there because ... and it's not just maintenance, some companies are still doing new development. Mostly it's maintenance but- Matt Stauffer: But we're not talking maintenance at the level of like, "Oh just fix this thing a little bit until we replace it." We're talking about long term maintenance as long as they can keep running on the system kind of maintenance. J.T. Grimes: Well, one of the really big differences about being an enterprise and I'm making air quote when I see that, developer as opposed to somebody who's working for a startup or an agency is that your time horizons are drastically different. We are not looking for something that will keep us going until we get profitable. We have been profitable for 150 years off and on. Matt Stauffer: Geez. J.T. Grimes: The other thing when we talk about rewriting the system is, "Okay, this can be a five to 10-year process. What technology stack would you want to build on that will still be useful, available, not archaic in 10 years?" Five years ago, I would have said, Java, thank goodness we didn't do that but with things changing as quickly as they are it makes it really hard to plan for the long term and much easier to stand pat. Matt Stauffer: It's really interesting. One of the things that we've talked about often and like the Laravel Podcast is that, there's often conflicts between the Laravel world and various people who have a very, very distinctly different mindset, just within the PHP community. I think one of the helpful things that we came to over time is, you know what we're noticing that the differences often are less about people who have different opinions about the way the world should work, because they are different people and it's more because they're in different contexts. I can look at event sourcing for a start-up and you can look at event sourcing for a financial institution, and we can come to a different conclusion about whether or not event sourcing is a wise decision for the products we're working on. If we don't recognize it, it's because we're in a different context we could say, "Well, you like it and it's wasting time," and well you don't like it because you know it's like, "Oh no we just have different needs." Again, in that those conversations first of all it's helpful to recognize that but second of all, we're usually still only talking about web applications built by PHP developers in frameworks written in the last five years. This is so many steps beyond that, that it's just fascinating to me how far out it is. Before I step to my next thing you watch all this happen on Twitter. You are involved in your lobbying, I mean you in yes are two of the funniest people I've ever met in my entire life especially the way you guys interact on Twitter. Do you look at the online conversations of the Laravel crew? Do you look at the Laravel podcast? Do you look at stuff that happens? Do you have anything to share with us? Did you have any outside perspective where we say, "You know what, don't worry about this or focus more on this, or man you all could learn this," or anything like that. J.T. Grimes: I see a lot of people who I think are talking past each other because of what you just said the different contexts. If you're doing Greenfield totally new development, you're going to have a very different set of goals than somebody who's got a system that's been in production for its PHP, so a couple of years, which in PHP sounds like a long time. You're looking at different things. You have a really different experience in terms of maintenance. A question I've taken asking in interviews is, what's the oldest code base you've worked on? What's the longest you've had to maintain a section of code? If you can find somebody who's got a couple of years in, grab them they actually have experience doing maintenance. The other thing is, I am older than a lot of the Laravel community, I have been in the same job for 20 years. My perceptions of other people are going to be colored by that, but it looks to me like the kids today and I take credit for bringing the phrase, "Get off my lawn at Laravel community," but you kids today switch jobs every 18 months, every two years. There isn't that I've been working on the same code base for a long enough to have really absorbed it and taken it all in, and the ownership not just the ownership the experience with it that you get after working at the same place in the same code for a long time is very different from what you get when you're changing often. Matt Stauffer: That's really, really interesting and if I were someone who was a mid-level developer and I maybe been in my job for the last 18 months, do you have one piece of advice just in this little kind of concept that you're talking about in terms of experience with the code base. Is there one good way I could act on what you just shared with me? J.T. Grimes: It's really hard for me to give career advice to anyone else. Matt Stauffer: Fair, that's fair. J.T. Grimes: It's been a long time since I looked for a job, I only know what I'm looking for not what other hiring managers are looking for. Matt Stauffer: Well, let's say maybe not even about switching jobs, would you say ... because one of the things that I took away from what you just said was, maybe consider sticking around a little longer but I don't know if you're actually saying that. Are you? J.T. Grimes: I don't know if I'm saying that either. Matt Stauffer: Okay. J.T. Grimes: For me, a lot of the job satisfaction and I think a lot of the skill that I bring is having really deep business knowledge, knowing all of the contacts. I have worked in insurance longer than I've been a programmer. I know this stuff often better than the users who are giving specs to us. Having that really good context for everything, it sort of it lets me know I'm building the thing that user needs not with the thing the user asked for. I wonder how much people get of that when they're changing jobs often. I think that there is a different kind of job satisfaction you can get from staying with a project for a long time. Matt Stauffer: That's really, really cool. That's really helpful to hear. I've found that I started seeing this a lot in the podcast, but I could talk about this for an hour but let's move on to something else. I was wrong about COBOL, you're not writing COBOL but that was fascinating where we just went down. When did you start doing web based stuff and what does a web based applications look like? Is it facing the customers of the insurance agency and giving them access to data that they previously would have called in for? What kind of stuff do you build there? J.T. Grimes: There's both internal applications and external phasing ones, and what we do is we access either the database or we actually run COBOL programs calling them from PHP. I know I'm not the only person doing this because somebody else built tools to do it, but it feels like that's an easiest thing there is out there. It's one of those things where there are, there's just a very small community of people who you can ask questions of and who know about this stuff. On the one hand, when you run into trouble you'd know who the people are to talk to. On the other hand, when you run into trouble you may literally be the first person to have this. Matt Stauffer: You're not going to stack overflow. How do you even know the folks to talk to about this? J.T. Grimes: I met one of them at Gen Con while he was presenting on the IBM and I stuff, and the single thing, probably the most valuable thing I've ever gotten out of the conference was having breakfast with this guy. I've still got three pages of note from that. Alan [Shaiden 00:29:15] is his name and if anyone else is doing Laravel on the IBM I series, A) hit me up but B) hit up Alan for anything about the I series. Matt Stauffer: All right, so you're not just doing web applications, you're actually using Laravel, so how on earth when you're in this kind of enterprise, a kind of old school system, how you just stumble across Laravel and what attracted you to it versus the other options available to you? J.T. Grimes: I had used CodeIgniter before, and CodeIgniter, the single best thing about it was that if you had a question you could find an answer, either in the docs or in the forums, but somebody knew what needed doing if you had a problem. I also used once or twice a framework called Qcodo, which has since died a very quiet, but the guy who wrote it was a Delphi developer before he got into PHP. The way everything was set up was very familiar to me. You built your web forums in a very sort of Microsoft a Visual Studio kind of way where you said, "Okay, put in a select box here and put a label on it here." It was familiar to me but it was also not the documentation wasn't great and development had clearly slowed down on it by the time I needed something for the last project. I was fiddling with CodeIgniter and it didn't feel good anymore and the way it had when I started with it. I started browsing around what other frameworks are out there, oh this guy is trying this new thing called Laravel and it's on version three. It stuck around for at least three months give it a try. It took a surprisingly long time for Laravel to click for me because I was so used to other frameworks and other ways of doing things, but once it did I found it was just easy to get the stuff that I needed done. Aside from reading the database on Db2 on the IBM mainframe. Even that we've got like now we're actually using Laravel's query builder with a couple of little custom things thrown in to access the database. Matt Stauffer: Wait a minute. Is it the query builder and it's heading like the actual database connection system, or are you using something, are you like layering the query builder on top of a non-database seeking system? How does that actually work? J.T. Grimes: Laravel's query builder wants to connect through PDO and while in theory, you can use PDO to talk to a Db2 system. I've never gotten that to work. Matt Stauffer: Got it. J.T. Grimes: But PHP has built in, thanks to Zend and IBM in their thing, and Db2 function is the same as the old MySQL functions that nobody should be using anymore. What I did was I made basically a connection class that simulated being PDO but was actually calling all the Db2 functions underneath. Matt Stauffer: That's fascinating. J.T. Grimes: You end up being able to use Laravel's query builder, you can use eloquent in theory I haven't actually describe that. Matt Stauffer: Those are my next questions. J.T. Grimes: But there's no reason it couldn't. The only reason I don't use eloquent on the mainframe is that the tool we used to generate COBOL has some very interesting opinions and conventions around it, and none of the file names or table names are useful or readable so they all have to be translated to something else anyhow. Matt Stauffer: Got it, yeah, so at that point trying to force kind of eloquent has opinions and that tool has opinions and reconcile their opinions just doesn't really seem worth it when you could just use that query builder. J.T. Grimes: Exactly. Matt Stauffer: That's cool. You're building applications, so your day-to-day transitioning between a 30-year stable system, on a mainframe to one of the most modern PHP frameworks that there is with just testing and TDD and migrations and sitting at stuff like that, do you feel the burden of a lot of contact switching, or is it all connect together in your brain? J.T. Grimes: Most of it connects together in my brain. The places where I run into problems are where I just don't have the tooling that I want. I don't have access to multiple IBM I series. I can't just spin up a new database, spin up a new instance. I wanted to test my interaction with a program, I need to be very careful to make sure that I am not hitting production data and it's with my setup way easier than it should be. I spend way too much of my time building safeguards for no, no, you don't mean that. Matt Stauffer: That's interesting because we talk often about how a lot of things that have to do with type hinting and a lot of these other things are, well I don't trust the other developers. The stranglehold that you're not allowing developers to do things because you don't trust them. It's interesting because what you're talking about is really well I don't trust myself to not accidentally touch something that would basically lose me a lot of other people their jobs if I completely destroyed everything. What sort of things are you finding yourself reaching for for those safeguards? Is it easy to share some of those? J.T. Grimes: I find myself hard coding addresses to our test system it's like, if you want to hit production on this it's not just changing an environment variable, it's not just telling it, "Oh, we're in staging now, go ahead and hit the staging server." Everything is hard coded to the wrong server until it's time to move it to the right one. Matt Stauffer: That's fascinating. It makes sense, totally though. Until you know the thing is not going to break things, make it like you have to be very explicit and intentional to actually even touch that thing that you don't want to broke in. J.T. Grimes: Yeah, we have a lock on the door to the server room for a reason. This is my server room lock. We have a server room, we have physical hardware it's very exciting. Matt Stauffer: In terms of testing, do you do much of your Laravel code? And if you do, what is it look like to simulate the data that's coming back? Or are you using real data from the staging server? How does that kind of work in your testing? J.T. Grimes: I dreamt of my test and bandwagon a couple of years ago. It has not been that long, it's been longer than for some people. Everybody kind of has this one moment where it clicks in for them. For me, there's a guy named and I'm going to scrape his name, Juan Trimenio, and he wrote a couple of articles on using PHP unit, many got bored and started going off and doing puppet things. Oh that's really cool too, but these three or four articles he wrote are what absolutely clicked for me. Thank you if you're listening. It was what got me to slowly start writing more tests. Once I did that, I found that I was much more confident pushing new code and making new changes because I could tell if I'd broken something. If I broke something and I didn't know then I just wrote a test for it, and now the next time I know. The value became clear. As soon as I thought I was ready to put the code in production and then said, "Oh, I just need to change one little thing and everything blew up." Oh thank goodness, I have these tests. Matt Stauffer: Yeah, the first time a test catches you and you're not, you haven't yet internalized the value that is coming from it. It's like a, I don't know it's like a breath. I don't even know it, it's not a breath of fresh air. It's this amazing moment though. J.T. Grimes: It's magic. Matt Stauffer: Yeah, it's exactly what it feels like you're like, I never had this, this, the responsibility for this thing that breaking always lived in my brain and my shoulders and my stress, and all of a sudden this just magical little creature just came and told me with a little red axe, you just screwed it up. It's really an amazing experience. J.T. Grimes: Finding out that I broke stuff before it hit production was the best thing ever. Matt Stauffer: That's cool. I like that. Okay, so once again, I'm going to talk to you about this for another hour. I'm going to move on. I've got a couple random questions we could talk a little bit more about code and architecture infrastructure, but I want to make sure that we have time to talk about J.T. stuff. You are a shaver of an ungulates. I assume that that is somehow refers to dogs but I intentionally didn't Google it beforehand. What is an ungulate? How do you see it? J.T. Grimes: Ungulates are four legged hoofed mammals. It's a reference to shaving yaks. Matt Stauffer: Oh, I was going to say hoofed. No, okay, your yak shaver. That was an incredibly indirect developer joke way to go. All right, yak shaving, got it. Yak shaving and bikeshedding. Do you bike? J.T. Grimes: I do not. I feel so alone. Matt Stauffer: Because you live in the Bay Area and you don't bike at all? J.T. Grimes: Well I'm part of the PHP community, we don't bike at all. Matt Stauffer: Are you Oakland for life? J.T. Grimes: I am a third generation Oaklander. Matt Stauffer: Wow, that's amazing. I know very little bit about Oakland. Basically my knowledge is I, what was that show that was sent, I think it was sent in Oak, wasn't it? J.T. Grimes: Was it [Shansvanerky 00:39:08]? Was it here? Matt Stauffer: No. Anyway, wherever it was, it was sent some beautiful Bay Area that seemed very rustic but honestly it was probably a multimillion dollar house. I visited Oakland a tiny little bit and I understand the concept of it being kind of like the less quickly gentrifying kind of across the bay cousin of San Francisco. What do you love and hate most about Oakland? J.T. Grimes: What I hate most is that, it's gentrifying much more quickly here. You don't run into that many people from Oakland who are in Oakland, who are from Oakland. Matt Stauffer: Really? That quickly. J.T. Grimes: Yeah. The houses here, the prices have shot from reasonable to insane. There's a lot for sale in my neighborhood and it's people have lived in the neighborhood for a long time who just can't afford not to sell because it's so much money. Matt Stauffer: Right, it's not even the property taxes, it's just when you look at your finances and selling your house could basically pay off your debt or whatever else, you can afford to stay there anymore. J.T. Grimes: Well, I've told my boss a couple of times and they really don't like hearing it. I could sell my house and retire. I couldn't move to Reno and find a crummy little apartment for 400 bucks a month and live up. Matt Stauffer: Never work a day to get a new life. J.T. Grimes: Yeah. Matt Stauffer: Wow. Go ahead. J.T. Grimes: To me that's just insane. Matt Stauffer: Yeah, it makes sense. We all understand why it's gentrifying it's across the way from San Francisco, you got the gentrifying wedge of hipsters and artists who wanted to come in to the rundown place or whatever. Additionally, it's relatively close access and the more it gentrifies the more people feel comfortable stepping in there. Oakland has more going for just than being across the way from San Francisco. What do you love the most about Oakland? J.T. Grimes: It's home. The weather is great. The people are neat. I was going off on a rant and I can do a half hour on how great the Bay Area is. Any time you need that. One thing is that, it's a port city, and port city have so much more interaction with the rest of the world and have since they were founded. In the 1850s, there were days when San Francisco had more Russian fur traders than actual San Franciscans because folks would hit the port and go to town. You end up with communities that are really tolerant of differences who are just used to, you're not like me but that's fine. That is just a wonderful thing if you are like me. Matt Stauffer: Let's talk about like you. If someone had never met you before how would you describe yourself? I know this is something I usually start off with, but what are you about? J.T. Grimes: I'm smart and I'm funny and I like cute things. Matt Stauffer: I can attest to all these things having known you for so many years. Why are you so funny? Do you ever like do comedy or that is your family really funny or does that come from any source other than just your personality? J.T. Grimes: Oh no, it's deep internalized pain. Matt Stauffer: Fair. I believe it. J.T. Grimes: You'll never find anyone who's funny who is not just suffering inside. Matt Stauffer: That was one of the most truest ones, that is so incredibly true. Is that something you've just discovered, or is that something people talk about that? Is that a commonly known thing? J.T. Grimes: I think it's a commonly known thing if you pay attention to it. Matt Stauffer: Got it. J.T. Grimes: Most comics are fairly upfront about that this doesn't come from a place of knock knock joke. Knock knock jokes are just fun. You can't make a living with those, you can't make a living exposing yourself to people with your pain, giving them something that they can relate to from their own lives because nobody's life is easy. It would be great if they were, but everybody's got something. Matt Stauffer: Yeah, that was really deep. J.T. Grimes: I'm sorry, it won't happen again. Matt Stauffer: Thanks for assuring that. J.T. Grimes: No, no, we'll talk about puppies. Matt Stauffer: That's actually next on my list. Tell me about puppies. Tell me about your puppies. Tell me about puppies. J.T. Grimes: Puppies are awesome, puppies are everything that is good in the world. As a teenager, I decided that we could have world peace if we could just make leaders of nations negotiate treaties in a room full of Labrador puppies, and I still believe this is true. Matt Stauffer: I love it. J.T. Grimes: It's really ... Matt Stauffer: Go ahead. J.T. Grimes: It's really hard to plant bomb someone or to screw them in a trade deal when there's a cute little fluffy Labrador trying to nibble on your ear. It's just not going to happen. Matt Stauffer: All right. How many dogs do you have? J.T. Grimes: I just have one. Matt Stauffer: Oh, just one. I figured there's like five run around all a time. J.T. Grimes: Nope, he's a grumpy old man who will not share. Matt Stauffer: Yeah, he would not put up with anybody else infringing his territory. J.T. Grimes: No. Matt Stauffer: That's awesome. We have a companywide, it's not quite stand up because it's 33 minutes long, but every Monday I really gets there and then talks about what you do this weekend and what are you up to. We found over time that eventually there was more cats and also dogs but cats than non-cats there around the way. It ended up being renamed to cat meet up. There's not always a lot of cats up on it but new people joining the company they go, "What? Why is it cat meet up?" Just enjoy the weird, enjoy the fluffy. We just had an interview with someone about a week ago and she's super apologetic, she's like, "I'm so sorry my cat may end up walking directly in front of the camera as we're talking, which it eventually did." I was like, "No, it just means you're going to fit right in around here." J.T. Grimes: Exactly. We asked as part of the interview process what pet do you have, and if you say none, I mean that's not good for getting a callback. Matt Stauffer: That's awesome, so let's talk about interview process. What is your favorite interview question you ask people? J.T. Grimes: What one thing do you absolutely hate about PHP, Laravel, COBOL? Matt Stauffer: [crosstalk 00:45:24]. J.T. Grimes: Yeah. Matt Stauffer: I love that question. It's one of my favorite questions because everyone could talk about the good things. It's when you actually have had real life experience with it, that you can start talking about the things that really bother you. J.T. Grimes: Yeah, that gives you a really good idea of how deep their knowledge is. If they were interviewing for PHP job and they've never really written production code, there are things that they just haven't been burned by it, and they will. If your biggest hang up about PHP is variable order or function naming I'm with you that that's annoying, but that's the first year complain. Matt Stauffer: Totally true. I totally believe you. Are there any signs on a tech interview that are an instant no, instant start, no way, not going to happen. I mean, I'm sure there are some personally if somebody saying some horribly racist things or whatever. Are there any kind of coding or communication style things anything like that, where you just go, when do you see that, that's a definite no. J.T. Grimes: I have a very direct communication style, we try to think will much pressure anyone who follows me on Twitter. I think the only thing that would surprise them is that I've gone this long without coercion. Matt Stauffer: I'm pretty impressed. J.T. Grimes: Sometimes I spend time around kids, I actually can't turn it off. I really value that kind of direct communication style and if I feel like I'm not getting that back, if I feel like someone is sort of coming at things in a roundabout way. I might take it as a lack of confidence in an interview and I might try and draw them out and see if I can get them to be more direct. If it seems like this is really their communication style all the time, I know that, that really, really hard for me to work with. Matt Stauffer: Are you all remote or are you in-person? J.T. Grimes: We are in-person. Matt Stauffer: Okay. I've noticed that indirect communication is even harder when you're remote, but I mean in general just being able to communicate in a certain way is totally necessary for every environment, so I hear you on that for sure. What's the best piece of advice you've ever been given? J.T. Grimes: If you go on a date with someone and they're a bad kisser end it then, because they're not going to get better at anything else. Matt Stauffer: All right. J.T. Grimes: And you can cut that too if you need to. Matt Stauffer: Oh, are you kidding meant? See, Laravel Podcast season three is about the people not the code, so whatever else you got just keep a calm. What's your favorite beverage to drink? J.T. Grimes: Diet 7up, I like my water sweet and sparkly. Matt Stauffer: Wait a minute, diet 7up, not seven ... Is it diet because of your concern about sugar intake or do you prefer the taste or? J.T. Grimes: It started as sugar intake with as much sodas I drank. If it was sugared I could not fit out in my house, but I've gotten so used to the diet soda taste that now when I do drink a real soda it just taste too sweet and weird, and why is my tongue [crosstalk 00:48:29]. Oh it's supposed to, oh dear. Matt Stauffer: Right, got it. Okay, so we're running short on time, and I feel like there's a whole personality person of J.T., J.T. what do you do in your free time? J.T. Grimes: Not as much as I would like, so this is going to set you up for the next podcast with me. Matt Stauffer: Brilliant. J.T. Grimes: I am suffering from burnout really bad right now, I suffer from depression. It can be really hard to just get off the couch during my downtime, when I can exercise, walk the dog, just hang out outside get some sun, read. Right now, not enough in my free time. Matt Stauffer: I hope that I'm not centering myself by saying this, but burnout depression and anxiety are all part of my story as well. Thank you for sharing it because I know that it's not always easy to share. Having kind of been in that place, especially is burnout, I assume that you mean kind of work related burnout? J.T. Grimes: Yeah. Matt Stauffer: One of the things that I've noticed often is that sleep, rest, being outdoors, people, animals, these kind of foundational things are often like a really big part of the things that help people like to start to kind of breathe again. Have you found that there's things outside of those that are also really helpful, or is it really just like centreing in on the simplest beautifulest things and just kind of really staying in those same places is what's most helpful? J.T. Grimes: I had a shrink tell me once that there are three things that are protective against depression, and I have found that there are the three things that help the most. Family and connectedness, family, friends, people, pleasure doing things that you actually enjoy and feelings of accomplishment. That one doesn't seem to be on most people's list, but when you're depressed and it feels like nothing goes right, just small little steps forward just being able to look at something and go, "Hey, I did that. I got the dishes put away. Yes! Yay me!" It is something you can build on and start working with. Matt Stauffer: I know and I don't want to read into your story mind, but I want to see if this goes anywhere for you. For me, one of the hardest parts about chemical depression and depression versus just being sad is that, it's not that there's a thing that happens and you go, "Oh, I'm sad about that thing." People often hear depression, they think sadness about bad things, but it's a lot more kind of ... it's more complicated, it's less directly tied to circumstances and events, and it is a lot harder to reconcile or rectify than just being saddest. Is that an experience you have, and if so, is there anything that you feel like people should understand about that circumstance or that experience or people who are suffering from that, that you want people to be more aware of? J.T. Grimes: I think that depression is a really unfortunate name for this problem. I feel like it is an energy disorder, like when I am depressed for me it comes out as just having almost no energy to do anything. Matt Stauffer: Yeah for sure. J.T. Grimes: The other thing is for me depression doesn't take the form particularly of sadness, so much as kind of a flattening of mood. I'm not sad but it's really hard for me to get happy. I think that I know everyone experiences depression differently if people listening are going, "Well, that's not what it is at all." You're right your thing is your thing, and your thing is real, but I also feel like those are pretty common ways to experience depression. If you're dealing with someone who struggles with depression trying to cure them up and make them not sad does not address the, they have no energy or their mood is flat. Matt Stauffer: Acknowledging that everyone's experience of depression is different, what does it look like for someone to be a good friend to J.T. when she's experiencing these things? J.T. Grimes: For me, the biggest thing is understanding and helping me to manage my energy level. I will try and schedule things early in the week because I know that I recharged over the weekend and then as the week goes on my energy level drops and drops and drops and drops. If you invite me to something on a Friday or a Saturday there's no change I'm going to do it. I might agree to do it, there's no chance it's going to happen. First, I need you to not hold against me that I am bailing out because I can't do it, but I need you to understand what I can and can't do and not push too hard for the things I can't do. Sometimes push a little bit for the things that maybe I can. Matt Stauffer: Yeah, which is sounds like the foundational core of this, it is appreciating you not just for the presence you bring or that comedy you bring to a situation but for the person you are. Also, knowing you deeply and well enough to know those, I don't want to say idiosyncrasies but the ways that you uniquely experience, the difficulties in the places you should and should not be put. Everyone just like said, everyone has an experience of the same which means the whole Monday versus Friday thing is probably not the case for somebody else. Someone can't just say, "Well, I heard this on a podcast once and so therefore my sister depression or my brother depression something like that, I'm not going to treat him this way," like no you know the person deeply and you know in their words and their experiences what that looks like. I love you saying that, but now that brings my next question that requires you to have a level of self-awareness and willingness to describe it. First of all to the friends around you, but right now tens of thousands of people. What is it look like to get to the place where you're comfortable, you're self-aware enough and you're comfortable with sharing it? J.T. Grimes: Well, first I didn't know tens of thousands of people were going to be listening, so now just if you could raise everything that would be great. Matt Stauffer: Just raise everything, yeah. J.T. Grimes: For me, I don't want to go off on too big a tangent here but we're going to go off on a bit of one. Matt Stauffer: Let's do it. J.T. Grimes: I am gay. I prefer that term to lesbian because lesbian sounds like a diagnosis and gay sounds fun. Matt Stauffer: I love it. J.T. Grimes: But I came out in the Bay Area in the early '90s and had a really easy time of it relatively speaking. I didn't lose family, I didn't lose friends, I didn't lose my job. Everybody was either okay with it or not great with it but not going to say anything, which in the early '90s- Matt Stauffer: That's a win. J.T. Grimes:... was an amazing. The reason I was able to do that is because other people had done the hard work first, other people had come out and had lost their jobs, had lost their families. By the time, I came along everybody I knew everybody living in the Bay Area already knew gay people, I was not some demon freak evil sent from ... It was just another gay person. For me knowing that knowing other people coming out and talking about their experience made it easier for me, makes me feel not necessarily obliged, but it lets me know the value of talking about it when we come to my depression. I can do the heavy lifting for someone else. I can be out about these are the things I struggle with, this is how I deal with it. Morley Safer, I think it was Morley Safer, man I'm old, was one of the hosts on 60 Minutes, and I remember him saying you know essentially coming out and saying he was on [talk show 00:56:51] and being at home watching it go and, "Hey, that's the same thing I'm on. I could be on 60 minute." Being able to see other people who share the same experience as you and seeing that it is not necessarily that debilitating, seeing that there's hope, that there is hope is the biggest thing. It's huge. Matt Stauffer: Well, for those listening you could be a guest or a host on Laravel Podcast with depression. It is possible. Thanks J.T. it's really helpful to hear that, and so I'm going to dig a little further in this again with those spaces where you just, you got to say for it. The PHP community if you compare it against for example the Ruby community, or the Javascript through CSS communities, it's a little bit more monocultural. It's a little bit more old school. Especially, like the SaaS community and the Ruby communities are extremely intentionally and thoughtfully and loudly progressive. I wouldn't use those terms to describe the PHP community, and not to say that we're in a repressive horrible place. Do you have any reflections about, or thoughts about, or experiences you want to share, or warnings for encouragements for the PHP community in particular and also Laravel about ways that ... I don't want to prescribe anything else. Do you have anything to share or say? J.T. Grimes: I come from a place of privilege not just as a white person but as a person who owns my own home and has valuable skills that people will pay for. It puts me in a really good place to tell not just my employers but really anyone else, where they can shove anything that they have about me. That's really freeing and it makes me not care if the PHP community is less, is more conservative maybe than I might like. Then it would be if I ran the world. If I ran the world we would all be happy little liberals running around but it's not my world, very sad. I come from a place where if somebody doesn't agree with me, if somebody doesn't like me, if somebody's opinions are different from mine I'm happy to talk to them for a while, but I don't care. I don't care that you don't agree, I don't care that you don't like me. I have a dog. My dog likes me. Matt Stauffer: Your dog loves you, [crosstalk 00:59:32]. J.T. Grimes: My dog does love me. Matt Stauffer: Cool, now that makes sense. J.T. Grimes: I can't change the community except by being a part of it and being me publicly, reasonably publicly. I can tell you that there are a gay Laravel developers I know this because I am one. I can tell you that there are women Laravel developers. I know this because I am one. I can't speak to things that I'm not, but I would tell people that there are enough of us who will welcome you whatever you bring. Matt Stauffer: I love that and when I push you about that is, because I know you well enough to know that when you say whatever you bring you don't mean whatever non-white, non-male, non-liberal thing you bring. You mean whatever you bring and I think that one of the things I love about that is, what I want to hear from people is, you can be just as conservative as you want as long as you're welcoming people. You can just be as liberal as you want just as long as you're welcoming people. I don't want to go too far down this road, but one of the things that I've noticed is that some communities go, I think so far in the intentionally progressive direction that they're unwelcoming to conservatives. That's a frustrating thing as well because if we're in a place where someone who may have a different viewpoint is not welcome, who's not mistreating people. They're not treating people poorly because their viewpoint they're just having different viewpoint, then it doesn't matter which direction the difference is coming from, you're still making people not welcome. That statement you said at the end there whatever you have to bring, whoever you are, you're welcome here. I think that that is a really ... I mean I know I'm making a small thing sound like a big thing, but in some ways it is a big thing. That's a beautiful message. All right. We are pretty late on the call. I'm trying to look at a couple questions that I cued up. Let me see if I got anything else. Is there anything you want to talk about? Anything you wish we had covered? Anything you want to share? Anything you want to plug? J.T. Grimes: Hyenas are really cool and I can do 20 minutes on how awesome hyenas are. Matt Stauffer: I feel like you need a podcast. J.T. Grimes: Possibly. Matt Stauffer: I would listen to it. Can you give me like that 30 second version of why hyenas are really cool. J.T. Grimes: Hyenas are a matriarchy, they are a pack hunter. Most of the time in the nature specials where you see the lion sitting with the kill and the hyenas skulking around. The hyenas killed it and the lion has bullied them away and taken their food. Hyenas poop white because they crunch up the bones of their prey. Matt Stauffer: And get all the them in and out. J.T. Grimes: Yeah, and as those bones come out you get white poo. Matt Stauffer: Now, is that exciting because they're so smart that they're getting them mirror out, or is it literally just because they are white poo? Is that mean like the excitement there? J.T. Grimes: It's because they can crunch up the bones- Matt Stauffer: That's pretty bold. J.T. Grimes:... of their prey. Matt Stauffer: Yeah, that's true. My entire exposure to hyenas has been Lion King. I got to be honest. J.T. Grimes: You have two young kids so you know Lion King backwards and forwards and upside down. Matt Stauffer: The funny thing there is actually my kids are, my daughters too young for that stuff. My son is extremely emotionally sensitive and so movies where bad things happen he really doesn't like. I mean imagine Disney movies, what Disney movie doesn't start out with some family member dying, so Lion King, it took us really long. He still hasn't seen what's the one of the big old giant inflated white guy that I want to call them Big ... J.T. Grimes: Big something- Matt Stauffer: Yeah, Big Hero 6. J.T. Grimes:... Big Hero 6. Matt Stauffer: It's a brilliant movie but I can't see it because my son see it yet because somebody dies at the beginning. So Lion King he's seen all of once, but now that he's seen it which was very recently. Now, you're right I will hear it 10,000 times. Anyway J.T., I keep saying this to people I could talk for hours. You should talk for hours you should get that podcast. I will listen to it. I'll plug it to everybody, but until then. Thank you so much. People want to follow you on Twitter it's jt_grimes. J.T. Grimes. Just look for Cal everything and the little cartoon character. It has been an absolute pleasure talking to you and I thank you so much for your time. J.T. Grimes: Thank you, Matt. It's been a pleasure.
An interview with Neo Ighodaro, co-founder of Laravel Nigeria and CTO of hotels.ng Notes: Neo's Earliest drawings Laravel Nigeria Hotels.ng Building the Laravel Nigeria Community With Over 200 People Attending the First Meetup Neo speaking at Laravel Nigeria - Deploying Your Laravel Application Lagos CreativityKills Greymatter Mark Essien, founder of Hotels.ng FlashDP Kohana framework Prosper Otemuyiwa ForLoop Neo in a black hoodie Transcription sponsored by Laravel News Matt Stauffer: Welcome back to Laravel Podcast, season three. This is the second interview, episode three, where we're going to be talking to Neo Ighodaro, big man around town in Laravel Nigeria. Stay tuned. All right. Welcome back to Laravel Podcast! I've got to figure out how to number these things because technically, this is episode three because the first one was a preview, but that confused a lot of people, so welcome back to the second interview of season three of the Laravel Podcast. I have my actually relatively recent friend with me. His name's Neo, and I've been pronouncing it Ighodaro the whole time. Is that actually how to say it? How do you say your name? Say it, not me saying it. Neo Ighodaro: Yeah, you're actually saying it correctly. Matt Stauffer: Could you say it, though? I want to hear you say it. Neo Ighodaro: Okay. Natively, the "g" is silent, so it's more like I-ho-da-ro, but a lot of people call it Ighodaro and I kind of feel more comfortable with Ighodaro because it sounds better, in my opinion. Matt Stauffer: So, if I tried to say it without the "g," you'd actually prefer I say it the way I just said it? Neo Ighodaro: With the "g." Matt Stauffer: Okay. I have some friends.. one of my friends whose name is Al-bear-to ... I don't even know the Spanish pronunciation. Neo Ighodaro: Alberto. Matt Stauffer: I would try to learn how to say it, right? "Al-bear-to." He's like no, no, no. Just call me Alberto (pronounced like an American) and I was like, "But that's not your name," and we had kind of this big back and forth and what he ended up saying was, "When an English-speaking person says it in an English sentence, I prefer it to be the English pronunciation, and then when a Spanish-speaking person says it in a Spanish sentence, I prefer it to be the Spanish pronunciation." I've never heard anybody say that before, because I'm always like, "I don't care. I want to pronounce your name the right way," but for me, more important than the right way is what you want, so I'm here. I'm with you. Neo Ighodaro. It's fantastic to have you on. If anybody hasn't heard about Neo before, the way that he has most primarily been known in the Laravel world is because he is one of the three organizers. I don't know ... who's the founder? Are all three of you the founders, what are you the founder and now three of the organizers? How does that work? Neo Ighodaro: I and Prosper basically are the founders, so we just got together and started it. We decided to get people on board, so Lynda was the third person. Now, we have a couple of other people who are silent organizers, but they help out every single time we have a Meetup. Matt Stauffer: Okay, and by the way, I didn't actually finish my sentence before I asked you one because I interrupt myself. The "it" that Neo and I are talking about is Laravel Nigeria, which is this kind of Meetup, but it's kind of a conference, because it's as big as all the other Laravel conferences, even though they're calling it a "Meetup," but people are traveling from five hours away. It's a really big deal, so we'll talk about that maybe a little bit later. But what I told Neo beforehand was, "This is not actually about that Meetup. This is not actually about you being the CTO of a big tech company. What this really is about is knowing you as a person and what you're about," and if anybody listened to the Taylor interview I did before, we didn't talk so much about Laravel. We talked for a little bit about just kind of Taylor and where he comes from, so maybe we'll down the road there, but the tiniest little bit of context, he's one of the two founders. He's one of the three formal organizers, and there's also some silent organizers of Laravel Nigeria. If you haven't looked it up, I'll put a link to a write-up that he did in the show notes, but you're just seeing hundreds and hundreds and hundreds of people once every couple months come together and teach and learn. There's actually a couple of your talks that are online, so I'll make sure to link a couple of those that I think Pusher's hosting. You can hear him speak. You can see what he's organizing. He's the CTO of Hotels.ng, which is a really big tech company out of Nigeria and y'all are in Lagos, right? Ah, pronunciation. Neo Ighodaro: We're in Lagos. Matt Stauffer: More of them. I've been saying "lay-goes" like "go," but then last night, I looked it up and they said "lay-guhs," not "goes", so is that another one? Neo Ighodaro: Exactly. Matt Stauffer: Oh, I'm murdering these things. Neo Ighodaro: Lay-gas, yeah. Matt Stauffer: I also, several times when we were first talking, I would refer to Lagos as if it were only a city, not knowing it was both a city and a state, so it's kind of like a New York, New York thing, right? Like New York is both a city and state, Lagos is also a city and a state. Now I know these things. Neo Ighodaro: Yes. Matt Stauffer: The tiniest bit of context, and I want you to teach me a little more, because basically over the last week, I've been Wikipedia-ing all these things, is that Nigeria's the biggest economy in Africa and then Lagos is the most significant economy in Nigeria. Then Lagos city is such a significant economy that it would have been one of the biggest economies in Africa just as a city alone, and it is the twentieth largest economy of any city in the entire world. This is a significant thing because I think a lot of folks, they understand some general names, some general locations, some general cultural concepts of various African cities and states and countries, but I don't know if they have that much context, understanding that this is a huge place. Are you actually in the city, or are you in a different city in the state? Neo Ighodaro: It's kind of hard to explain, but- Matt Stauffer: I figured. Neo Ighodaro: Lagos, as a whole, like you said, is a city and a state. It's a city and a state because it's quite small geographically. It's really small, so you can't really call it a state and it's so small that you can't not call it a city, I mean, and it's so small in the sense that you want to call it a state because officially, it is a state, but I mean, it's just so small for you to call it any other thing. Matt Stauffer: Now, is it like Singapore, where if you're in the state, you're also in the city? Neo Ighodaro: Yeah. Pretty much. Matt Stauffer: I assumed that there were other cities within the state? Neo Ighodaro: No. Matt Stauffer: So, if you're in Lagos the state, you're basically in the city? Neo Ighodaro: They're just ... we like to call them local governments. Matt Stauffer: Got it. Neo Ighodaro: They are like small, small, very tiny, little regions that you can probably drive like one hour across each region, so it's kind of like a big- Matt Stauffer: But all those regions are within the city? Neo Ighodaro: Yeah. Matt Stauffer: Wow. Neo Ighodaro: Within the city slash state. Matt Stauffer: Okay, so it is a little bit like Singapore in that way. When I think of big cities, I spent a couple years living in Chicago, so I think about Chicago as being a very large city, so Chicago has three million people. It has, I think, I'm trying to remember how many square ... 230 square miles and so Lagos has 16 million people and it has, I think 400 and something square miles, so we're talking many, many, many times the size of Chicago. Also, it's a city, it's a state, and it's all these kind of things, so I think just getting that kind of out of the way and understanding those things helped me a little bit of the context of why when I was like, "Oh, yeah. You're in Lagos," you're like, "Yeah, but" ... We've got to talk a little bit more than that. -So, you are in Nigeria. You are the CTO of Hotels.ng. You are doing all this kind of stuff, so let's actually get to the meat of it. First question: When did you first have access to a computer and where was it, and for what reason? Neo Ighodaro: I would say when I was about 13. Back in the day before internet was quite popular in Nigeria, it was really, really difficult to get your hands on a computer, so I think one of those cybercafes. They're not really cafes in the sense of it. It's just basically a shop where you have a bunch of computers and then you pay some amount of money to get access to those computers to use their internet. I think one of those days, I was about 13, and I got some extra money and I just went to the internet. It was mostly to chat, though. Matt Stauffer: What was the chat protocol that y'all used back then? Neo Ighodaro: I think Yahoo Messenger was very popular then and MSN- Matt Stauffer: I remember that. Neo Ighodaro: Or one of those ones. I was always on them. Matt Stauffer: Did they have computers in your schools at that point, or not until later? Neo Ighodaro: It's kind of tricky because we did have computers in the school, but it was not computers for everyone. It's privileged access at the computer. Matt Stauffer: Really? Neo Ighodaro: Yeah. It was horrible. Matt Stauffer: I told you beforehand that you get to tell me when I'm digging too far, but- Neo Ighodaro: No, it's fine. Matt Stauffer: What privilege gives you access? Is it a particular type of study or something else? What privileges someone to get to use the computer? Neo Ighodaro: Back then, the first thing is ... we had this computer science subject, basically, where we had to learn about computers, but they usually just write it on the board and like, "Okay, this is a CPU. This is a disk." Was it disk? Did we call it disk back then? What's the name of that thing, the square thing where you save stuff? Matt Stauffer: The hard-drive? Neo Ighodaro: No, no. The one back in the day, so you have this thing- Matt Stauffer: Oh, you mean a floppy disk? Neo Ighodaro: Yeah. Floppy disk, so they'll tell you, "This is the floppy disk," and we never saw any of them. We just had pictures and then- Matt Stauffer: Wow. Neo Ighodaro: Once in a while, maybe once in an entire term, they'd be like, "Let's go to the computer room," and then we go and we see them. We don't touch them. Matt Stauffer: Wow. Neo Ighodaro: You're actually forbidden to touch them. Matt Stauffer: Wow. Neo Ighodaro: You see them and they're like, "Oh, that's the CPU they were talking about. Oh, it looks so cool," but looking from five meters away like, "Yo. Don't touch it." Matt Stauffer: Now, why was it that you couldn't touch it? Was it because there were so few that they were precious, or was there something else going on? Neo Ighodaro: Yeah, yeah. Pretty much. It was more like a new thing back then, so they were pretty expensive. Matt Stauffer: Got it. Neo Ighodaro: And they didn't really trust kids back then, so- Matt Stauffer: Understandably. Neo Ighodaro: If you became a prefect, for instance, we have this thing where certain students, depending on your academic abilities or your leadership skills, you become a prefect, so to speak, and then you'll be able to have access to certain things that other students didn't have. Matt Stauffer: Got it. Neo Ighodaro: As a prefect, I was able to have some access, limited access. Matt Stauffer: But it was still very limited, so it was really the cybercafe that gave you the space to do what you wanted to do. You started out chatting. When did you transition from chatting to thinking that you were going to be able to create something? Neo Ighodaro: I was 15. I remember very clearly the day. It's actually a kind of funny story. I was subject to some bad people in school and I wasn't really keen on going to school at that point because they were always bullying because I was very little in school. They were always bullying and at some point, I was like, "You know what? Screw this, man. I can't deal," and then I started going to cybercafes. Instead of going to classes, I'd just go to cybercafes. I mean, I'm not happy about it, but it was sort of- Matt Stauffer: It's what it is. It's your story, so ... Neo Ighodaro: One of those days, I decided to check out an internet café and that was it. I just liked going there. I felt safe there. I could literally just bury myself in whatever I was doing and not worry about anything else. Matt Stauffer: That's really cool, so you spent more and more time there, even skipping class to go there. You were chatting originally, but what was the moment or was there a project, or what kind of piqued your interest in creating something on the web? Neo Ighodaro: I don't really remember the thought process, but I remember thinking at some point ... I saw this one guy. He went to the café to, I don't know what he was doing there, but I saw him typing some random stuff and I was just like, "What is this guy doing? It doesn't seem like English." It just looked random. I walked up to him and I was like, "Hey, dude. Sorry, but what are you doing?" and he was like he's learning how to program. That was the moment I just thought, "Okay, program. What exactly is a program?" I'm not sure if Google was a thing then, but I know I was using Yahoo Search a lot, so I tried to Google and I stumbled upon the word HTML. One thing led to another and I started thinking, "Hey, how is yahoo.com actually made?" Matt Stauffer: Right. Neo Ighodaro: I started digging and I find out, "Oh, okay. You need something called HTML." I had no idea what it was, and I was like, "I could probably learn that instead of chatting and wasting my time"- Matt Stauffer: Right. Neo Ighodaro:"I could probably learn how to make HTML." That was pretty much the thought process and one thing led to another. I just kept on going and finding out more about HTML. I literally did not know the meaning. I didn't actually care. I just wanted to learn the thing. Matt Stauffer: That's fascinating, so you learned enough that I'm sure you were making your own little local HTML things. Do you remember what the first page you made was about? Neo Ighodaro: Oh, it was a personal page, obviously. Matt Stauffer: Right. Neo Ighodaro: A site called uni.cc or something like that. It was one of these Geocities type of thing- Matt Stauffer: Sure. Neo Ighodaro: Where you just go and then they give you a sub-domain and a name and then you just kind of mash up the HTML in there. I created one of those and I remember there was this guy. I've forgotten his name, but he was a really big influence back then. There was the time of Greymatter. I don't know if you've heard of it? Matt Stauffer: I haven't. Neo Ighodaro: It was a blogging platform. It was close to what we have in WordPress, but it was called Greymatter. I think his name is Tony. He used to create all these blogs and then there were a lot of young people and they had a lot of blogs that they created. They create these blogs and then they just write random stuff in it, but I was more interested in how the blogs looked. They looked so beautiful and I was like, "Why does mine just look like a bunch of marquee running around the screen?" Matt Stauffer: Right. Neo Ighodaro: I was forced to learn design, so I had to start digging in. I heard about Photoshop, so I picked it up. Matt Stauffer: I love that you got there because when we first met, I went over to CreativityKills. Would I be right to describe CreativityKills as essentially your freelance web development kind of company? And I don't even know freelance, but your web development consultancy that was your main thing before you started working at Hotels.ng, and you still kind of keep it running on the side? Is that a good description for it? Neo Ighodaro: Yeah, pretty much. Matt Stauffer: What I noticed there ... I went to portfolio, and the moment I see ... I think it was portfolio or work or something, but what I saw instead of code or descriptions, was I saw screenshots. The moment I see that, I say, "This person's probably a designer," and the design was good too, so you're not just a programmer. Tell me how do you think of yourself? Do you think of yourself as a designer and a programmer? Have you trained in one more than the other, or do you think of yourself as a hack in one and really good at the other? How do you kind of approach your skillset? Neo Ighodaro: I think to really answer the question, I have to go a little back to the origins. Like I said, I learned about you have to design your sites for it to look good. I was like, "How do I get there?" and I heard of Photoshop. I started going to the cybercafes. Instead of learning how to write HTML, I was learning how to design, so it was a hassle, to be honest. It was really difficult because you had 30 minutes to learn, literally 30 minutes to learn everything you wanted. I basically started learning and a couple of people just noticed that I come regularly and some people just randomly gave me some extra time. Matt Stauffer: Oh, cool. Neo Ighodaro: I was able to pick up a couple of designs. I actually have a link to one my first ever designs. I still have- Matt Stauffer: That's going in the show notes. That is going in the show notes. Neo Ighodaro: Yeah. It took me about 12 hours chopped into 30 minutes- Matt Stauffer: I was going to say, 30-minute increments of 12 hours, and it's not as if you could take it home. I mean, once the 30 minutes is up- Neo Ighodaro: You're done. Matt Stauffer: Did you have a thumb drive that you were saving everything on, or how did that work? Neo Ighodaro: I had a floppy disk, so every time I go, I was like, "Does this computer support floppy disk?" If they were like, "No," I was like, "No. I'm not doing this." I actively looked for a computer with a floppy disk and I had to download Photoshop- Matt Stauffer: Every time. Neo Ighodaro: Every single time. Matt Stauffer: Oh my gosh. Neo Ighodaro: Exactly. Matt Stauffer: Oh my gosh. Neo Ighodaro: It was hectic. Matt Stauffer: That's incredible. Neo Ighodaro: Pretty much. Matt Stauffer: You taught yourself how to design, so both in terms of design and HTML, I'm assuming that ... because I know that when I started, there weren't a lot of books around teaching this. Were you learning it purely online and, if so, do you remember any of the sites you used to learn? Neo Ighodaro: I remember the site I used to learn how to make my first-ever graphic, but I don't think I really learned any of the other ones, I mean, the tool sets and everything, using any site online. I was basically just "mash, mash, mash." It's "mash, mash," and it worked, I'm like, "Oh." Matt Stauffer: View source, copy, paste, modify. Neo Ighodaro: Exactly. Something like that, so I was just editing. I would just pick a tool and drag it across the screen. I was like, "Try to figure out what does this do." But the first night I learned about actually making vector images was vexiles.net. I don't know if they're still around right now, but it taught me how to take a picture and turn it into a kind of vecto graphic. Matt Stauffer: Trace it with the ... what are those things called? The pen tool and everything like that? Neo Ighodaro: Exactly. Matt Stauffer: Very cool. I think that's pretty similar to how I learned. I remember I got my first book when I was five or 10 years into it and it was such a foreign process because I was like, "Wait. I have to sit down and read 50 pages and then" ... It just didn't translate. I was like, "No. You just kind of figure it out as you go." You started programming when you were 15. I'm guessing the design was a little bit later than that. At which point did you realize this was not just something that was just a fun thing to do with your time, but it was something you were actually going to consider turning into a career? Neo Ighodaro: I think I was about 17 or 18. That was when I actually creating the skills unofficially. I had a couple of friends back then and they had these really nice names for their website. There was Aether Reality.net. They just had really, really random names and I was like, "I could come up with one," and I don't know. I can't remember exactly how, but I was thinking in the lines of, "What if you had a company that portrayed designs to die for?" I sort of just circulated around that concept until I got to the point CreativityKills. I can't remember how it clicked or when I clicked, but I just know at some point, I was like, "Creativity kills." It kind of had a negative connotation, especially culturally, but I felt like people needed to ask questions like, "Well, how does creativity kill?" It kind of was the one thing that I knew could make my brand stand out, because people became curious. Matt Stauffer: I love that. It doesn't give you all the answers just from reading it. It makes you ask questions and that's something you wanted. I mean, that clearly lines up with the story you're telling me is you literally walked over to somebody else in the café and said, "What is that jumble you're typing into your screen right now?" That's really fascinating. Did you have any people around you or any role models where you said, "Oh, I'm going to do this like that other person I know or that other person I've seen," or was it more of a just kind of, "Hey, this is a thing I can try out and see what happens"? Neo Ighodaro: For design, yes. The Tony guy, I really can't remember his name. I wonder why. Matt Stauffer: Right. Neo Ighodaro: But anyways, the Tony guy, I think I still have him on Facebook or something. He didn't know it, to be honest. I was just more of an admirer from afar type of person and I really liked how he designed and everything, so he was sort of my role model in design. But when it came to HTML and PHP and the other program language, I didn't really have anybody. It was just me. Just me and nobody else. Matt Stauffer: At some point, you went from, "What is this computer and internet thing?" to "What is this coding thing?" to "What is this design thing?" to "I know these things well enough that I could make things" to "I know these things well enough that I could convince someone else to pay me money to do it." Those are a lot of shifts to happen over the span of, I think, two years basically. There's not a lot of other people around you who are doing kind of development consultancies and design consultancies and stuff like that, so how did you figure it out? What were your early challenges? Who were your early clients? What did it look like for you to create CreativityKills and turn it into actually making income? Neo Ighodaro: I had to figure out every single thing myself. I didn't know anything about marketing. They didn't even cross my mind, to be honest. When I started, I created a website for it. I don't have the template anymore, but I was proud of it then. I'm not sure I would be now. Matt Stauffer: Right, right. Neo Ighodaro: I had this lady. She wanted to create a website for her NGO and she met me. She heard of me from my friend, so my friend told her, "Oh, I have this guy. He's probably be cheap and he does websites." Matt Stauffer: Right. Neo Ighodaro: She was like, "Okay. Let me meet him," and I talked to her. She told me, "This is what I want. This is what I want," and I was like, "Okay, cool." Back then, I only knew HTML to be honest. I didn't know PHP and so I was like, "How do I swing this?" I then went to a cybercafe again and I started Googling, no, I was Yahooing, basically- Matt Stauffer: Right. Neo Ighodaro: Because I don't think I was using Google then. I was trying to figure out, "How do I make a website as dynamic?" and I think that's where I stumbled upon PHP. Somebody was talking about PHP and CGI scripts and all the stuff and I was like, "This seems like something to go into." Then I had about two months, so I gave a deadline of two months to deliver the project, so I had roughly about a month to learn PHP. PHP just jumped at me. I was like, "Let me just go with this one." I heard of ESB. I heard of a lot of ones, but PHP just seemed welcoming. I mean, that's the allure of the language, anyways. I was like, "I'm going to do this," and I jumped on it. The learning process was difficult. I didn't pick it up in one month. I actually just knew a bit, a few things, because of 30 minutes increments, 30 minute, 30 minute. At some point, I stumbled upon Greymatter and WordPress and then I was like, "Okay, so this kind of makes you build a website easily. I could do this. I mean, it doesn't look so complicated." I had to figure out how to host websites, so I hosted her website. I paid for the domains and everything and then in about two months, I came and said, "Hey, look at your website," and she paid me. I was so happy, like, "This is my first income. I did it alone." It was a happy moment for me, but from then on, I started feeling like, "What if I could take that one client and kind of expand my reach, try to reach other people?" I mean, one person old one person, so obviously, there's some sort of system to it. I started digging about SEO and I started digging into marketing and that's pretty much ... one thing led to another, and most of the things I learned, I had to learn because when you work to a certain degree, you hit a bump. Then you're like, "What to do next?" and then you get introduced to certain concepts, and then you learn about that. Then you hit another bump, and, then, "What do I do next?" That was pretty much my learning phase. I just kept on hitting bumps. Initially, it was the HTML. Then I was like, "The HTML has to look nice," so I had to go to CSS. "Now the visual aspects have to look nice," so I went to Photoshop, then I went back to HTML. I realized that you can't really do much with HTML. You need some dynamics. I went to JavaScript and it was really, really difficult, so I left it. I heard of PHP. I went to PHP and I realized I have to go back to JavaScript. I went back to JavaScript and then to Jaggery. It was just- Matt Stauffer: Right. Neo Ighodaro: One thing leading to the other. Matt Stauffer: Yeah. You do what you can until you hit a pain point and then you figure out the simplest possible thing to fix that pain point and then move on to the next pain point. Neo Ighodaro: Exactly. Matt Stauffer: Very cool. You were writing procedural PHP back then. This is pretty early. I'm guessing it was right past when WordPress was created. You got WordPress. You got into Greymatter. Did you spend just a couple years there, basically building HTML and CSS websites with some Photoshop design and some WordPress and some Greymatter? Is that kind of your bread and butter for a while before you made shifts over to things like Laravel? I mean, Laravel, obviously came out much later than that, but did you kind of sit in that space, or were there other kind of steps in your journey between then and Laravel? Neo Ighodaro: No. I sat there for a while. I really didn't think of structure or anything. I was there for a long time, probably a year or three years, between that range. I remember the first time I got introduced to CodeIgniter. I learned about CodeIgniter and I didn't really understand what MVC was. In my mind, I just wanted to write spaghetti code and be done with it, but I started seeing the benefits I made of separating concerns and I felt like it could help eventually. I mean, all those things I've created, plus it's a framework. It gives you a jumpstart and that was really what sold me. I didn't have to write my skill connect to this or my skill connect to that, I just put my details and I'm done. I got into CodeIgniter. After a while, I started ... my learning of PHP started evolving from spaghetti code to "How do we structure an application?" Then I started, and this is very interesting, actually. Because I didn't have a laptop or a PC. Laptops were a stretch. I didn't have a PC then. I had to do this thing. I decided to write a framework of my own, but I had just 30 minutes in a cybercafe, roughly. Matt Stauffer: Is this still a floppy disk that you're using, or is this what you're about to tell me? Neo Ighodaro: Yeah, yeah. A floppy disk, so what I did was I bought a diary and I literally wrote my code in ink- Matt Stauffer: No. Neo Ighodaro: On the diary. Matt Stauffer: No. Now why couldn't you just save it as HTML files and PHP files down in your floppy disk? Neo Ighodaro: Let me explain. I had a couple of minutes, where if I'm going to ... let's just say, maximum, an hour and thirty minutes at the cybercafe- Matt Stauffer: Right. Neo Ighodaro: That's when I have access, but I don't want to go there and start thinking of what to do. Matt Stauffer: Oh. Neo Ighodaro: Exactly, so my solution to- Matt Stauffer: You're writing in the diary when you're not at the cybercafe as your brain is roiling over. Oh my goodness. Neo Ighodaro: Exactly. Matt Stauffer: That's amazing. I mean, I've done architectural diagrams in a journal and I've done the tiniest little bit of code, but writing a framework that way? No way. So, you basically show up, and the first thing you'd do is basically transcribe all your diary notes down into code and then see- Neo Ighodaro: Exactly. Matt Stauffer:"Hey, did it work?" Wow. Neo Ighodaro:"Did it work?" "No." "Oh, bugs, bugs, bugs. Fix, fix, fix, fix, fix. Oh drat. I forgot this." Matt Stauffer: Wow. Fascinating. Neo Ighodaro:"Yeah. I got to go home. Just log out. Go back home." Matt Stauffer: Right. Neo Ighodaro: And write, write, write, write, write, write. Matt Stauffer: And write more in your diary. Neo Ighodaro: There was this thing. Nigeria's a very cultural state and then there was this day my mom stumbled upon the diary. She thought I was writing a lot of demonic stuff. She was like, "Oh my God." Matt Stauffer: Oh, no. Neo Ighodaro:"What is all this?" She literally thought I was possessed. Matt Stauffer: It's funny because I was going to ask about your family, so this is perfect. What did your family think about this whole thing? You're skipping class. I mean, I don't know if they knew you were skipping class, but you're doing these computer things. You're in the cybercafes all the time. Was that something that you got a lot of support for, you got a lot of criticism for, or were they kind of ambivalent, they weren't sure how to feel? Neo Ighodaro: A lot of criticism. An African family is a family that places a lot of value on education, so me skipping school then was horrible. I was literally the black sheep of the family just instantly. The day they find out, they were so disappointed. "How could you do this? Blah blah blah," and I was just staring, like, "Sorry." Then they were like, "We're really, really disappointed," and everything. Then the day they saw the writings on the book was my mom, she freaked out. She thought I was on some demonic tick and she was like she's going to call an entire family meeting, so the entire family gathered and they were like, "What is this you're writing?" Matt Stauffer: Oh, no. Neo Ighodaro: And I was not good enough to explain it, so I was just like, "It's code." "It's code for what?" And I was like- Matt Stauffer: Right, right. Yeah. Code as if ... "It makes computers work." Neo Ighodaro: Yeah, so I couldn't really explain it and they were like, "We don't want to ever see you doing this again," and I was like- Matt Stauffer: Oh my gosh. Neo Ighodaro:"Yeah, sure. Right." But I knew, deep down, I wasn't going to stop. Matt Stauffer: How long did it take for you- Neo Ighodaro: I think that was one of the few things that- Matt Stauffer: Oh no. Go ahead, go ahead. Neo Ighodaro: Really made me continue to really fight for it, just because I felt like it made me a rebel. Matt Stauffer: I love it. How long do you think it took before they really kind of understood, or do they now? Neo Ighodaro: Yeah, they do. It took a long time, until I was in the university, actually, and they started seeing some dividends like it was paying off. They were like, "Okay. This dude hasn't called us to ask for pocket money or anything, actually." Matt Stauffer: Right, right. Neo Ighodaro: They were like, "He probably is doing something right," and then they were like, "Okay, so what is this thing exactly?" Matt Stauffer: Got it. Neo Ighodaro: They were willing to come to the table and ask me questions like, "What does it do? How does it work?" Matt Stauffer: Very cool. Neo Ighodaro: Then there's this thing in Nigeria, so there are internet fraud stars a lot. They scam people of money and blah blah blah, but the idea is back in the day, when they see you, any young person in front of a computer, that is the instant thing they think, that you're a fraudulent person, that you're being ... they called it a "yahoo yahoo boy." Matt Stauffer: They call it ... can you say it again? It didn't come through on Skype. Neo Ighodaro: Yahoo yahoo. Like "yahoo" twice. Matt Stauffer: Got it. Neo Ighodaro: So they call you a yahoo yahoo boy. They were really concerned that that's what I was doing. Matt Stauffer: Got it. Neo Ighodaro: They really wanted to know because it was illegal and they didn't want any of the stuff and I was like, "No. I promise it's not actually that. It's literally the opposite," and they sort of just went with it. I don't think they really believed. Matt Stauffer: Right. Neo Ighodaro: They just had faith, so I guess they started to come around from there. Matt Stauffer: That's fascinating and that transitions to the university. At some point, you were doing CodeIgniter, and I assume that was before university. At what point did you decide to go to university, or was this all happening at the same time? Neo Ighodaro: Pretty much at the same time. After they found out that I'd been skipping school, I had to change schools, so I had to go to another one somewhere closer that it could monitor my movements and- Matt Stauffer: Got it. Neo Ighodaro: It didn't really stop me, actually. I did what I wanted to do anyways. The good part was I was sort of book smart to a point- Matt Stauffer: Right. Neo Ighodaro: I was able to ace my exams and everything. Matt Stauffer: Right. Neo Ighodaro: That was the good part, so I didn't really need to go to school, because I knew if they found out that I didn't do a couple of tests, they would probably come and check the attendance sheet and everything. Matt Stauffer: Right. Neo Ighodaro: I made sure I aced most of my tests, most of my exams, but on the low-low, I was still trying to figure out what this entire programming thing was about. Matt Stauffer: All right, so you went off to ... what did you actually study in university? Was it programming, or was it engineering? What was the actual formal title of it? Neo Ighodaro: Mathematics and economics. Matt Stauffer: Is that something you use in your daily life right now? Neo Ighodaro: Nope. Nope. Matt Stauffer: All right. Well- Neo Ighodaro: Very big no. Matt Stauffer: Well, yeah. I mean, I studied in English education when I was in school. I mean, technically, I don't use it, although the experiences I had there still inform me today. All right, so you went to university. You graduated from university. You got that degree. At what point did you transition from being Neo of CreativityKills who does kind of freelance contracting stuff to Neo who is, I mean, you're doing stuff out in the community. We'll talk about that in a bit. You're working at Hotels.ng. Now, I did see you had a blog post, I think it was in maybe 2016, so was this a pretty recent transition for you? Neo Ighodaro: Yeah. Pretty much. Matt Stauffer: What was that like? Neo Ighodaro: Let me step back a little. I'll tell you another interesting story. Ever before I owned my first laptop, how I got it was there was this guy, Kolade, he had a friend who wanted a programmer on one of their projects and then it was like, "Neo, you need to get on this," and I was like, "You know I don't have a laptop." He was like, "Okay, you know what? I'll tell them. They'll get you a laptop and then we can go from there." I was like, "How do I pay for it?" They were like, "No, don't worry." I was like, "Okay, cool." Matt Stauffer: Right. Neo Ighodaro: I was so excited, but I just wanted to play it cool. Be cool, be cool, be cool. Then they brought the laptop and it was ugly. I appreciate it. Matt Stauffer: Right, right, right. Neo Ighodaro: I mean, I still have it. Matt Stauffer: It's a laptop. Nice. Neo Ighodaro: I appreciate it, but it was horrible, meaning if you unplugged the laptop, it would go off. Matt Stauffer: Right. Neo Ighodaro: The battery was finished. It was literally horrible. Matt Stauffer: It was like a big gray box kind of thing? Neo Ighodaro: Yeah, and the problem with that was the situation of power in the country. You could literally go for an entire 24 hours without power at all. The internet was so expensive, but, I mean, somehow, I was able to manage. I had to go to school a couple of times. There's this hub where you could plug your stuff in. Matt Stauffer: Got it. Neo Ighodaro: I'd go there and plug. I remember some of those people always laughing at the laptop, like, "What is that?" Matt Stauffer: Right. Neo Ighodaro: I was like, "Just ignore them. Just ignore them and do what you need to do." Fast forwarding, I had a sort of big break, right? It was during the period where BlackBerry was very popular in Nigeria, so I created this website with PHP. I think that's actually the first product I've ever created for myself. Matt Stauffer: Right. Neo Ighodaro: It was called FlashDp. What it did was it used ImageMagick to create a GIF and then you were able to use that GIF as a display picture on your BBM, BlackBerry Messenger. I did it because ... back in the day, because I wasn't too rich. Let me rephrase that. I was poor, so I had to find a way to make money at least. Matt Stauffer: Right. Neo Ighodaro: I found out people really like these GIFs and I used to create them on Photoshop a lot and then I thought about it, like, "There has to be a way to do this in PHP or some language." I was like, "Let me try." I sat down that day and I used Kohana. I don't know if you know it? Matt Stauffer: Yeah, yeah. Neo Ighodaro: Kohana framework? So, I used it and I came up with FlashDp and I gave a friend ... I was hosting it on Pagoda Box, so I gave a friend, like, "Hey, help me try this stuff. See if it works," and I went to bed. The next morning, the server had crashed. Matt Stauffer: Oh my gosh. Neo Ighodaro: I was like, "What is happening? What happened?" Then I went to analytics and I check. "Wow. A lot of people used it," and because it was very resource-intensive, I mean, it was ImageMagick trying to- Matt Stauffer: Right. Neo Ighodaro: Generate images over and over again, so I was like, "Let me try and reboot the server." I didn't really know about servers then, but it was a click and reboot thing. I decided to create another version two. I decided, "Let me just give everybody, make people use it." Right? Matt Stauffer: Right. Neo Ighodaro: I mean, it doesn't hurt. Then I gave people and I just put AdSense on it, and that was literally one of the best decisions I've made ever, because in the space of ... so I created it 2013 and in the space of about a year or two, I made about $37,000. Matt Stauffer: What? What? Just from AdSense? Neo Ighodaro: Yeah. And in Nigeria, that's huge. Yes. In Nigeria, that's huge. That was huge money, so I was able to get my first MacBook. I was able to get a nice Mac and literally that point was the turning point, because I had all the tools I needed. I didn't need to write in a diary anymore. Matt Stauffer: Right, right, right. Neo Ighodaro: I could practice it without need for power for a long time at least. I literally had everything I needed to actually become better and I felt so empowered. That was around the period when I was in school, so I had a lot of time to myself. Matt Stauffer: Right. Neo Ighodaro: A lot of time to learn, a lot of time to actually go back, and that's when I started redesigning CreativityKills again. I went back to the drawing board and I was like, "How do we appeal to people?" I spent about eight months creating that site and I released it. I think it was on adwords.com for an honorable mention or something like that. Matt Stauffer: Nice. Neo Ighodaro: I was really proud of myself. I came out and I did it. It was crazy for me, but creating FlashDp itself was the turning point. That was the landmark in everything. Matt Stauffer: That's incredible. I feel like I could dig into just this part of your story for another hour. I'm trying to keep this short. I'm going to move on, but that is fascinating. You said that was 2013, so at that point, you had gone from CodeIgnitor, you had moved over to Kohana. Let's move into modern Neo. Let's move in to Laravel. Let's move into the Laravel Nigeria Meetup. Let's move into Hotels.ng. When did you transition from Kohana to Laravel and what made you make that transition? Neo Ighodaro: FlashDp made me make the decision. It was around this period where people were arguing about whether to use static methods or not, and I started feeling bad about Kohana because it had a lot of static methods. I was like, "Is there something out there that's better?" Matt Stauffer: Right. Neo Ighodaro: I mean, obviously there might be, so I started digging and I found out about I think was it FuelPHP? I think Slim. I don't know if Slim was really around then, but I know I saw a bunch of them and I heard of Laravel and I was like, "I like the name." It has a ring to it. That was literally the only reason why I jumped on it. Matt Stauffer: Wow. Wow. Neo Ighodaro: I just liked the name. It was like, "I could try this," but I think it was around version four, around that period or something like that. I was like, "How does this work? I mean, it's usually the usual MVC stuff." Matt Stauffer: Right. Neo Ighodaro: I was like, "This seems cool," and I realized that every single thing I did was easy. You want to do this? Easy. You want to do that? Matt Stauffer: It just works. Neo Ighodaro: Easy. Yeah. I was hooked. I was like, "I'm sold." It was hard for me leaving Kohana, because I had built a lot of packages back then. Matt Stauffer: Right. Neo Ighodaro: I built a Honey Pot module or Coconut. I forgot on what they called them, but it was a package for Kohana then, so I was kind of tied to the community, but I felt if it's better with Laravel, I could just try it. That was my switch. I created version two of FlashDp using Laravel 4. I just basically kept on digging into Laravel and digging and digging and digging. I also picked up Objective C during that period. Matt Stauffer: All right. Neo Ighodaro: I got an iPhone and I learned to jail break in. I learned you could create awesome stuff using a language called Objective C, so I pretty much dived into it and started learning Objective C, creating jail break tweaks, and all that stuff. Matt Stauffer: Very cool. Neo Ighodaro: Now, my transition into being Neo ... I had this thing where I said I was never going to work- Matt Stauffer: For someone else? Neo Ighodaro: For another company. Matt Stauffer: Right. Neo Ighodaro: But I realized that if I was to run any successful business, you need experience. It goes without ... you just need it. I was like, "I need to pick the right company." You just don't jump into it, right? Matt Stauffer: Yep. Neo Ighodaro: From, I think, 2015, I started scoping the Nigerian tech scene. Matt Stauffer: Right. Neo Ighodaro:"Who would I want to work for?" I was nobody. I wasn't really known. Matt Stauffer: Right. Neo Ighodaro: But I knew I was good, so I started digging and digging and I found nothing, to be honest. I found nothing that I felt I wanted to work for until I think 2016. I was still in Benin. I schooled outside Lagos, by the way. I was still in Benin and I went to a school called University of Benin. That's UNIBEN. Then I sort of heard of Hotels.ng and I didn't really think much of it. I hadn't heard much about it, so I was like, "Meh." Then I had a friend called Lynda. So, cool story, she was the friend of somebody I knew back in the day, so my friend had been telling me, "Okay, Lynda, she's really good. She's really good." I was like, "Who is this Lynda? Who is she?" I went online and I researched and I heard she was the head of product at Hotels.ng and so I just pretty much said, "Hi. Oh hey, how you doing?" Matt Stauffer: Right. Neo Ighodaro: Then we got to talking a little and then we kind of just hit it off pretty much. We were just talking and talking. Then I think I told her that I'm looking for a gig or something. I can't really remember the backstory, but I remember receiving an email. I came to Lagos because my mom had an accident. Matt Stauffer: I'm sorry. Neo Ighodaro: A very, almost mortal one. She was in a sickbed for a long time, so I was really sad. I came down to Lagos and went to see her in the hospital. It was a very bad, very depressing moment in my life, but, I mean, coming back gave me some sort of perspective on life, like, "Things don't last forever. You need to use whatever you have as quickly as you can," so I think I sent an application. I'm not really sure if I applied or not, but I remember receiving an email from Mark Essien, he's the CEO, and he was like, "Hey. I heard about you from Lynda. Can you come to the office for an interview?" My initial reaction was, "No," but I thought about it. Matt Stauffer: Even though you had sent something in to them, right? Neo Ighodaro: Yeah. Then I thought about it. I was like, "You know what? It doesn't hurt. Let me just go." Matt Stauffer: Right. Neo Ighodaro: That was literally my first interview ever. Ever. Matt Stauffer: Ever, anywhere? Neo Ighodaro: I was about 20-something then. Matt Stauffer: Wow. Neo Ighodaro: Twenty six-ish? And I was like, "Let me just go." I went and- Matt Stauffer: Right. Neo Ighodaro: I remember him sitting in the office with three devs. Lynda wasn't around. I think she was on leave then. It was like, "What are these? What are these?" and it was calling computer science terms. I really didn't know any of them and I was like- Matt Stauffer: Right. Neo Ighodaro:"If this interview's to go like this, I'll literally fail because I don't know any of these terms. Give me a laptop." Matt Stauffer: Do you say that out loud? Neo Ighodaro: Yeah, I did. Totally. I didn't know any of these terms. Matt Stauffer: Right. Neo Ighodaro:"Just give me a laptop and I will show you what I can do." Matt Stauffer: Right. Neo Ighodaro: Then he looked at me for a minute or so and then it was like, "Okay." Then he left and then sort of, I just felt like I'd already gotten the job. Then he left me with the devs and they kept on asking me different questions, like, "This, that, that," and then one of them was like, "I think I've seen your CreativityKills somewhere." I was like, "Ha, sold." Matt Stauffer: Brilliant. Neo Ighodaro: Then he was like, "Yeah. Can you show us stuff you've done?" Then I brought in my laptop and then I showed him ... I had this music site I created using Angular and PHP backed in on Laravel. I showed him, and the first thing he was like was, "Do you design your code?" Because it was so cleanly written. It was during a period where Jeffrey was always talking about, “small controller, thin controllers, this, that. Best practices, SOLID. This, that," and he literally asked me, "Do you design it? Do you sit down and format your code?" I was like, "No, not really. Maybe I have OCD or not. I don't know." But he was really impressed at the structure of the code and I was like, "Wow. He's never seen anybody designing this, like your code. You just write code. It makes no difference to the compiler, you know?" Matt Stauffer: Right. Neo Ighodaro: I was like, "I like to see my code as art. If I feel good about it, I feel happy, but I just don't want to jumble everything. He was like, "Cool." I think that was the day I got the job. I hadn't even gotten home and I got another email saying, "You're hired." He was like, "Can you start tomorrow?" and I was like, "Okay." Matt Stauffer: All right. Neo Ighodaro: It was a big leap. That's right. I literally- Matt Stauffer: You were hired as a programmer upfront, right? Neo Ighodaro: Yeah, as a programmer. I hadn't even settled with the fact that just got my first interview. I already had my first job. Matt Stauffer: Right. Neo Ighodaro: I decided to go in and what really caught me was the culture. I've always had this culture, this ideology of what I want CreativityKills to look like and I literally saw everything right there. It was there, and that was what sold me. Everybody seemed so compact. It was a very good mixture of fun and work and that was literally what made me stay. Matt Stauffer: That's very cool. And Mark's very young too, right? It's not as if you're- Neo Ighodaro: Yeah, he is. Matt Stauffer: Joining this kind of giant, pre-existing thing. It was other people with a kind of same young Nigerian "figuring this out as we go" kind of mindset. Neo Ighodaro: Exactly. Matt Stauffer: That's awesome. All right, again, I want to ask you an hour of questions about Hotels.ng, but because we're getting close on time, what I want to do is to talk about a few things real quick. First of all, we're going to talk about the Lagos tech scene, because you mentioned about how you looked around there, and it obviously exists, but I would guess that when you first started, there really wasn't much of a tech scene. I want to hear your thoughts on that. I want to hear your thoughts about the Meetup, and then the last thing, I want to hear about hoodies. Let's start with the Lagos tech scene. When you first started, you said there weren't a lot of people around you that you could look at. There weren't people who you were saying, "That is this person in my town who I want to be like. I identify with that person and I want to be like them," so do you have any thoughts? Did you watch transition happen where all of a sudden, there were other Laravel developers around you and other tech companies? Do you have anything to share with us about what that growth process looked like? Neo Ighodaro: Yeah. When I started, either there was nobody, but they were there, but social media- Matt Stauffer: Right. Neo Ighodaro: Wasn't as prevalent as it is now, so I didn't really notice or see anybody. But the first person I did notice was Prosper. I just knew he was making a lot of noise. He's very, very energetic. He can shout, so he's an energetic person, and I kind of noticed him. I was like, "Who is this guy?" He was always saying, "Community, community." What is the community? What is it, exactly? Matt Stauffer: Right. Right. Neo Ighodaro: There is no community. I'm not seeing anything. He just kept on going and I was like, "Maybe there is a community after all," and so getting to Hotels.ng kind of gave me a lot of ... because Hotels.ng is kind of a big scene when it comes to tech. We like to support tech a lot, and it kind of gave me ... it's almost like I swallowed something and now my eyes were opened, and I sort of saw that there was potential. There were a lot of people, but there was just no real leadership. People were not just organized, but the people were there. It's just like Lego blocks. They were there, but nobody could put them together. Matt Stauffer: Got it. Neo Ighodaro: That was literally how I noticed, and I realized that what Prosper was trying to do was to get people to come together. Matt Stauffer: Very cool. Neo Ighodaro: And create that actual community that he was shouting about. That was when I realized that it's possible for us to create something that would kind of unite every single hungry developer, for any developer that's been hungry for knowledge for a while, we can unite them and people could come out and give speeches. Then we did a lot of research on Meetups and conferences. From there on, it has been up, up. I've just been noticing that. People have just been waiting, literally, for someone to start, and once there was that spark, it just happened so quickly. Everybody was, "Meet up here. Meet up here. Meet up here." Right now, as I speak, they're having a G2G Summit and a bunch of others. Next week, I have about ... the entire week is literally booked up. Matt Stauffer: Wow. Neo Ighodaro: I have a talk in Android Nigeria and there are a lot of Meetups coming up everywhere. Matt Stauffer: So, this is all pretty recent? Neo Ighodaro: Yeah, yeah. I would say about three years, two years. Matt Stauffer: Because I mean, I follow you on Twitter and I see you posting stuff about a Meetup or a conference, it feels like every week, you're at a different place meeting new people. So this is all just a couple years old, then? Neo Ighodaro: Yeah, yeah. Pretty much. Matt Stauffer: Did I hear you right in saying it's not that that tech scene wasn't there, but it was very kind of individualized, like people were really kind of in their own world? A lot of people probably have a pretty similar story to yours, where people are figuring it out on their own and just recently there was ... Prosper helped. You helped, and probably other folks helped realizing there's a lot of potential if we bring all these people together in one, and all of a sudden, they're exploding. So, I'm seeing you nodding, but I asked you a question. Is that a safe way to say it? Neo Ighodaro: Yeah, yeah. That's literally how it happened. Matt Stauffer: What do you think the thing that kicked that ... could you point to a single Meetup or a single person or a single event, or were there a lot of them kind of all starting up at the same time? Neo Ighodaro: I might be wrong, but I would point at ForLoop. There's this Meetup called ForLoop. It was started by Ridwan. I think he was one of the first people that started the entire Meetup thing. I might be wrong again, but it was the one I notice- Matt Stauffer: Sure, but from your perspective. Neo Ighodaro: Yeah. It was the one I noticed first and it kind of had the ideologies that most Meetup outside the countries have, like you just get a bunch of coders to come to the table and just talk about new tech. Matt Stauffer: Right. Neo Ighodaro: That was literally my first Meetup, so I was like, "You know what? I want to speak at ForLoop." That was literally my first ever talk, so I spoke on Docker and I was like- Matt Stauffer: Cool. Neo Ighodaro:"Let's see how this goes," and it was really successful. I mean, we're having not as much numbers as we have now, because it was just starting out, but that was the first Meetup I've heard of from my own perspective, so I think that was the turning point for everything. I will literally say ForLoop. Matt Stauffer: Do you remember, when you first spoke at ForLoop, when that was and how many people there were there at that point? Neo Ighodaro: I'm not too sure about when, but I know the first one I attended, because we hosted it in my office. We used to host Meetups at the Hotels.ng. I think there were about 80, between 50 to 80 people. Matt Stauffer: Wow. Neo Ighodaro: To us, that was big numbers. We really thought we- Matt Stauffer: The Meetups in my local town don't get that many people most of the time and they've been going for years. I mean, and you've noticed people are getting excited about Laravel Nigeria. I mean, part of it is because you never heard of it at all, and then all of a sudden, you've got 400 people and you're running out of space for people to sit. The rapid success that you've seen ... you say you don't remember, but it was at your office, so it had to have been within the last year probably, right? Neo Ighodaro: Yeah, definitely. Matt Stauffer: Yeah, so this is very, very, very recently. I mean, you went from attending ForLoop the first time with 50 to 80 people. You went from speaking at ForLoop for the first time. You went to helping kind of Prosper and Lynda and others create Laravel Nigeria. For it not existing at all, to all of sudden having hundreds and hundreds of people and running out of space and we're all talking about the span of basically the last 12 months or less. This is a pretty incredible growth process and that's why people, they're saying, "Wait a minute. Where did this all come from?" And that's why I asked the question about the tech scene. It didn't come out of nowhere, but the organization that gave the space for it to be seen and to for it to be brought together seems to really happen quickly, but what it did was it touched on something that's been there for a long time. Right? Neo Ighodaro: Yeah. Matt Stauffer: It's individuals. It's an entrepreneurial spirit. It's the desire to do all these things and the motivation to do it even when you only have 30 minutes at a time, even when you've got rolling power black and stuff like that. There's something. There's a reason where a lot of people keep saying, "Whoa. Keep your eye on Nigeria," so that's ... I mean, again, I could talk a whole hour about that, but I'm trying to keep everything short here. All right, so we talked about the Lagos tech scene a little bit. We talked about the Meetup a little bit. I do want to hear you give a pitch, where if somebody has never heard of Laravel Nigeria, give me a pitch about what it is and I asked you a lot of questions when we first talked about well, where people are coming from and what are your timelines and what are your goals, and all this kind of stuff. So, tell me a little bit about the Meetup. Tell me a little about where it is right now. When's the next one going to be? What are the things you're excited about? What are the things you're nervous about? What are the difficult and exciting parts about doing it? Neo Ighodaro: I remember when I thought of Laravel Nigeria initially, it was around December 2016, and I talked to Prosper. That was one of our first few conversations, and I was like, "What would it be like if we had Laravel in Nigeria?" I initially called it, I can't remember the name, but I called it something different. It was like, "You know what? That seems like a good idea. Why don't we do it?" I had zero knowledge on Meetups, like zero. I literally didn't know where to start, and they were like, "Okay." Then we kind of just didn't do it, so January passed. February passed. March, I can't remember when we did the first one, but all of a sudden, I just woke up one morning. I was like, "Let's just do it," and then I called him. I met him at a café, Café Neo, funny enough, so there's a café in Nigeria called Café Neo. Matt Stauffer: Love it. Neo Ighodaro: I met him there and I was like, "Guy, we should do this thing, but I want to speak in pidgin." Pidgin is a weird form of English that we speak in Nigeria here. Matt Stauffer: Really? I had no idea. Neo Ighodaro: Yeah. It's called pidgin English. So, I'm like, "Guy, we could do this thing now." Literally saying, "Guy, let's do this stuff." Then he was like, "Okay. How do we start?" Then I was like, "We should create a Meetup page first." He was like, "Okay," so I tried doing my card and it didn't work, so he did. His card worked, and he created a Meetup page. I created a Twitter page. I started working on the website. Generally, I just noticed people were joining the Meetup page and we hadn't really started talking about it. We just put a couple of things there and say, "We might be hosting a Laravel Nigeria Meetup." Might. That was the word, might. Matt Stauffer: Right. Neo Ighodaro: Then people were like, "Oh, this is great. This is great. This is great. This is great." The Meetup page was just going higher and I was like, "What is happening?" Then that kind of put pressure on me to actually do the Meetup. Matt Stauffer: Right. Neo Ighodaro: Because I was kind of nervous that it would fail. I remember telling some of my colleagues at work that, "I don't know if I can actually do this. I mean, it's huge." Matt Stauffer: Right. Neo Ighodaro:"It's a huge thing. I don't have the money to sponsor it, but how would I do it?" Then someone was like, "Just ask for help," and I was like, "That kind of makes sense." The strategy I did was I went to the Laravel source code itself. I was like, "Okay. What companies are generally interested in Laravel?" I mean, that would be the companies that are more likely to support, right? Matt Stauffer: Right. Neo Ighodaro: I looked and I saw Pusher. I saw Nexmo and a couple of others. I was like, "Okay. Pusher, Pusher." Then I spoke to ... I think around that period, I just started guest-writing for them, so I messaged someone in their team and she was like, "That sounds great." I was like, "Cool." I didn't really believe it. Of course, she was like, "Yeah, sure." Matt Stauffer: Right. Neo Ighodaro: Back then, we had about a hundred people who RSVPed and I was feeling like it wasn't enough, but she was really, really, like, "Oh my God. A hundred?" I was like, "Yeah." Then she was like, "That's huge. We will support." I mean, that's the journey. We started getting people to support the entire thing. We couldn't use Hotels.ng space because 100 people, it wouldn't fit, so we talked to Andela, which is a company that outsources developers to bigger companies and I think Facebook invested in them recently. I talked to them and they were like, "Yeah, sure. Why not? I mean, we're all for the community. Yay," and I was like, "cool." So, we had that. If I was to tell someone about Laravel Nigeria, I would literally say from my own perspective, it's the belief that you can bring something out of nothing, the belief that you don't have to know about it to be able to do it. You just need to take the first step. Nobody's perfect at anything, and Laravel Nigeria was a shot in the dark, granted, but it was a lot of hard work and that shot paid off. I mean, it might have not paid off, but it did. I wouldn't have known if I didn't try, yeah? Matt Stauffer: Yeah. Neo Ighodaro: What we try to do now is tell people, "Hey, talk to everybody. Try and get people in remote communities, because right now Lagos seems like the place where a lot of things are happening." Matt Stauffer: Right. Neo Ighodaro:"We want people from other states. Mobilize your people. Try and get people to attend Meetups." In the past one month or two months, I've attended Meetups in places where I didn't expect people to come. I'm like, "Wow. Okay. Crazy." This is viewed as a state where you're like ... I didn't expect so many people to come out. People were out, and I was like, "It's happening." Laravel Nigeria is literally the belief that there are a lot of people out there. There are a lot of people who want it to happen. There are a lot of people who are hungry for this knowledge, a lot of people who already know, but just need a platform to come out and start speaking. This has given them a lot of them hope and a lot of that platform they need to really come out and be leaders, because that's what we want to create, a lot of leaders that can lead the new generation of developers, basically. Matt Stauffer: I love it. I've said a thousand times I could talk for another hour. I can't, but I'm going to wrap it up with just three
Introducing season 3: an interview season, where Matt will be conducting long-form interviews of known and unknown members of the Laravel community to learn about who they are and what motivates them. Transcript (sponsored by Laravel News): Matt Stauffer : Welcome to The Laravel Podcast episode 54, also known as the preview episode for season three where I tell you about what we're going to be doing for this new season. Stay tuned. All right. Welcome back to The Laravel Podcast. It's been a little while and even since the last time we had been posting pretty infrequently. If you haven't been listening to the podcast for a long time, it's actually really easy to think about this podcast as having happened in two seasons up until now. The first season was Shawn McCool starting the podcast and having some regular guests where they did some pretty long form chats about some high depth, high intensity conversations about DDD and other stuff. A couple of years ago, I took over leading the podcast and it was myself, Matt Stauffer and then there was Taylor Otwell and Jeffrey Way speaking regularly on topics that are interesting to us, the news and happenings in the Laravel world and other stuff like that. We've reached a point where each of us were pursuing separate podcasting and speaking opportunities. Also, we just got to the point where we ran out of things to talk about some of the times. We love talking and we got really great feedback but it just got to the point where sometimes we just said, "You know what? There's not really much to say right now." Rather than let that be a bother, we realized that that's a really good moment to step back and reconsider what you're doing. A lot of times when other podcasts have done that, hit that moment, it's a moment where you realize it's time for a little bit of a shift. This concept of seasons has come up recently where a podcast can have a season and then it could just stop and breathe for a moment. We decided that that was a indicator to us that it should be time to call that the end of season two and that gives us the ability to stop and think. What does the community really need for season three? After a little while, we figured it out, and we are likening it to maybe a famous hiphop group or something like that where they split up and pursue their solo projects for a while. They might get back together later so there's no saying that season four is not going to be the gang all back together or a different gang or something like that. But, for right now, season three, Jeffrey is doing the Laracasts snippet. Taylor might have something of his own. We'll see. And, what I'm going to be doing on this podcast is I'm going to be doing interviews. This is an interview show for season three and the interviews I'm going to be doing are two primary sorts. One of them is I'm going to be doing interviews of a sort that I hope you haven't heard before of the people who you hear from frequently in the community from Taylor, and from Jeffrey, and from Adam, from Eric Barnes, and Chris Fidao, and other people who've been around and who you hear from frequently, who you hear speaking at conferences and stuff like that to get maybe a different sort of interview, a little bit of a background of them of where they came from and what motivates them and the other stuff you might not hear in a traditional interview but I also want to have the opportunity to expose some folks to you that you may have not have heard from before, people in the community who are doing incredible work and might not get recognized outside of the world that they're in, their country or their meetup, or their package, or whatever else. Season three of Laravel Podcast is an interview show to help you get to know all the people in the Laravel community who you do or do not know by name but you might not know their origins and what motivates them and where they're from. The first podcast episode, episode one which will be ... The total episode will be episode 55 across the whole podcast. I'll try and release it in about a week from this preview episode and I'm going to give you a couple quick little snippets of that interview right now to tantalize and tease, to get you excited about what's coming. What I would love is when I tweet this one out, please send me anybody who you really like to hear an interview of. I'm Stauffer Matt on Twitter. Just let me know if there's somebody ... You know what? Even better, @laravelpodcast. Why don't you send it over to the podcast? And, if there's anybody you'd really love to know, who they come from, what they come from, what they're about, what motivates them, anything else and they're in the Laravel community, I'd love to hear it. That's it. That's the bases. Here's a couple quick snippets from the episode one and stay tuned for some really great interviews coming out during the season. Taylor Otwell : I also got really into TI-83 calculator program. I would write little strategy games. Back then in at least middle school and high school, the popular thing was that Drugwars game. Matt Stauffer : I was just going to say Drugwars. That was it. Taylor Otwell : I would write games like that either with drugs or with other lemonade stand type games. I learned how to do that basically sitting in 9th grade English. I just taught myself how to program the calculator. Those were really the first real programs I wrote I feel like. I had messaged one of them and said, "Hey, I really like to help out on Fuel. This is the feature I want to add," or whatever. They weren't super interested in the feature which is fine. I'm just not like a knock on them. They just weren't interested in it. I was like, "Oh. Well, okay. I guess I'll keep working in Laravel." But, if they would have bit on that and been interested in me helping with Fuel a little bit and some of these things, then of course I think things could have been really different because I would have jumped into Fuel and started adding stuff there. I probably would have just started using it and become invested in. That's one moment. Probably the biggest moment I could think of where things could have took a really different direction. Because that feature wasn't really a fit for them, then I just kept working on Laravel.
In this episode, Adam is joined by Matt Stauffer of Tighten to talk about building a CSS framework with PostCSS. Topics include: What is PostCSS, really? PostCSS vs. other preprocessors like Less and Sass Examples of things PostCSS can do How to use PostCSS to add your own features to CSS How to disguise custom features as valid CSS so PostCSS will parse it Porting Tailwind CSS from Less to PostCSS and why it's been awesome Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Codeship Links: Tailwind CSS, Adam's upcoming CSS framework CSS Utility Classes and "Separation of Concerts", blog post explaining the motivation behind Tailwind PostCSS.org cssnext "Create Your Own Plugin", PostCSS tutorial at tuts+ PostCSS API documentation
In the final Laracon Sessions episode for 2017, Jake and Michael are joined by Taylor Otwell, Jeffrey Way, Matt Stauffer, and Adam Wathan to get the final word on the upcoming Laracon US conference in New York City.
What's at the top of your brain? And what's the benefit you get from having to wait on something, letting you brain roll over it? Paul Graham - The Top Idea in Your Mind Transcript: Hi, I'm your host Matt Stauffer, and this episode 101 of The Five Minute Geek Show, a weekly show about development and everything around it. It's one topic per episode about front-end, back-end, mobile, project management, design, entrepreneurship, whatever. If it's geeky, it fits. Today, we're going to be talking about your top idea. I've talked about it a little bit in the past, but essentially, at any given moment, there's usually one primary thing that your brain returns to you when it gives a moment to rest. I often have about seven of these, which drives my wife nuts. We've talked often about the fact that I need to have less commitments. Not just because I need to be spending less time doing things, but because I need spaces for my brain to not only rest and have moments where I think about things family life related, not just all these kind of entrepreneurial and work ideas that I'm doing. So, essentially, when you have nothing else to do. When you're stuck in traffic, or when you are using the restroom, or showering, or taking a walk or something like that, your brain kind of rolls on to things. The things that your brain roll onto, often those are kind of like ... People frequently know this, are the things that ... We get some really great thinking done then, right? You've got stuck on something at work, and you go home and you sleep on it, and you come back and you have an answer. Or you go, you take a 15 minute walk. Sometimes you take a 15 minute walk, your brain just needs to re-orient itself. But sometimes ... For example, I'll often have an idea for an application or for a software of service, or for a project or a book or a blog post or a video. I'll have the idea long before I create the thing. I had an idea for a new product ... Not a product but that open-source thing that I want to do, like 11 months ago or something. Every once a while, it pops into my brain. It hasn't been the top of my mind, but it pops into my brain for a little bit. I think about it, and I think about one aspect of it, one nuance. Well, how would I get these people to carry the content here? Or, what would motivate somebody to want to carry the content here versus somewhere else? Or, how would I handle the fact that there's this type of data coming in there, but that type of data coming in there? So, it pops up every once in a while, and I kind of think about it for a little bit, and the thinking that I do there kind of moves into the storehouse of answers that I've come up with for those things. So, every single time I've ever created something of significance size, there's been years or at least many months of thinking about the thing prior to the point where I actually get started. So this thing, I bought a domain name for it three weeks ago, and I told everybody at Titan about it three weeks ago, but I've been thinking about the thing for months. I've been thinking about it even more frequently since then. It's nearly at the top idea of my mind kind of thing where most of my free time, I think, "Well, okay, here's another thing I need to think about it." Then I think through it for a while, while I'm putting my daughter to sleep, or something like that. So it's interesting that there's not just this idea of the top idea in your mind. I've talked often with people about this top idea in your mind thing, Paul Graham's somebody who wrote something about it recently. It's not just the fact that you have one, which of course is an important conversation, because if you've never thought through these things, some of these important things about that are ... Like, if you're trying to split your job responsibility between multiple roles, there may be certain roles that never get to be the top idea in your brain, which means they never get that kind of free time thinking or that free moment thinking or that extra brain power that allows you to power through some things that might not happen during your normal, actual application of the job. Often I've told people who've wanted to do three things, I'm like, none of those three things are going to be done ... Or at least probably two of those three things are actually going to be done to a one-third attention level, because two of them are not going to be the forefront idea. So it's not even the time to spend on the thing, it's the time to spend thinking on the thing. So there's definitely things worth thinking about, just with regard to what is at the forefront of your mind. But what I want to talk about is giving space for yourself to process through the thing over time. It's almost as if ... So, okay, we did a developer battle. I think I'm going to get to my point eventually here. We did developer battle just recently between two of our senior developers. It's their first time doing this thing, where for a very short period of time, you don't know what the task is going to be ahead of you until you actually start, and everybody's watching you. There's all sorts of pressures. There's the pressure of typing while people are watching you, trying to come up with answers in a short amount of time. But one of the things that Keith, who's one of our developers, mentioned was that when he normally codes, he stops and he thinks things through, and he plans them out before he codes. He finds that he really struggled during the battle because he didn't do that. So he didn't have the thinking done prior to doing the coding, so he was trying to think and code at the same time. I think that's part of what it is here. For example, when I created Karani years ago, I'd had the idea in my head, and I actually even started writing some code for it several times. But what it really took was endless running. I hate running, but I do it because I try to stay healthy ... and endless running sessions where I'm seeing the same scenery pass by, and my brain just started wandering. I wandered to various use cases and features for Karani. I'd come back from my run and write some notes down. Or things where you wake up in the morning and you come up with a new idea. I think one of the benefits of Karani is that if I had taken Venture Capital, I didn't even know what it was at the time, and just had to build the whole thing, I really wouldn't have known what to build at first. It was the incremental building process of putting a little out there and then thinking on it. Honestly, not having enough time to work on a thing gives you more brain power. I wonder if there's actually a value to a constraint where you don't get to do the thing yet, and you need to do a little bit of thinking, a little bit of time sitting on it, and allowing yourself those little kind of thinking moments before you do the thing. It reminds me of a trip I took to Mexico City with a guy named Saul [inaudible 00:05:57] and you take two weeks there, and you're spending a whole bunch of time, American, middle-class, college educated kids, working with people in extreme poverty. What you want to do is you want to go in and fix things. That's what those types of trips are usually about. You go in and fix things, you feel better. He won't let you touch a thing for a least a week. First week, all you're allowed to do is learn and listen and get to know people. Only after you've had some time just kind of learning and listening and really hearing people and understanding a greater depth and nuance of their situation than I think would be normal for us to assume when you walk in with a broken roof. One, let me fix that roof. Only after at least a week, at least half your time of really developing relationships with people and hearing them say what they want and seeing their situations, and knowing what other circumstances there are that may influence it, does it even allow you to have any part in actually making a change. It's the same kind of thing. It can be headstrong. I had a thing recently where I felt very, very emotionally and passionately about a thing and wrote a big, long, kind of hairy email. I showed it to my partner Dan, and Dan said, "Okay, cool, why don't you just kind of sit on it a little bit." It's always a good reminder. You know, sit on a bit and see how you feel about in a little bit. With emotional things, it's because you want to get out of the emotion and make sure you're still happy with how you represented yourself. But it's the same kind of thing, this, "Okay, great, that's what you've got, but give your brain space to stretch in different directions. To be in a different mood and look at it, to be at a different frame of thinking and look at it, to allow something to bubble up in response to something else you see. You see a Tweet, and you say, "Oh, you know what? That's one of the people I wanted to moderate the thing, and I just realized, why would they be motivated to use this thing?" I had not actually considered the motivation of the moderators, and so now I need to figure out what changes can I make to my overall structure that makes these moderators want to actually be participating in? Obviously, this is the thing that I've been thinking about over the last year. It's just these various things that pop up in response to other stimuli. But if I had started building it the moment I had the idea, I wouldn't have had that kind of thinking process about the moderators. I just would've built it and would've said, "Okay, moderators, come in", and I never would've had that trigger to say, "Wait a minute, you gotta make sure this is actually valuable for them to be a part of it." So, I know that the thing about the actual tool I'm talking about is super abstract here, but I think the goal ... There's not even a lesson, there's not even a message. It's just think about the value that comes from having to wait. There's value that comes from just letting your brain rest in the thing and stretch around the thing, and approach the thing from different angles, in different perspectives, before you actually get started on the thing. There may be formal ways to implement that, I'm not sure. But I don't know maybe I think that there's just some value for us to seeing value in that waiting in our work and in our processes. So, I don't know. I hope that's good. I hope so. Thanks for listening to The Five Minute Geek Show. We're back at Five Minute Geek Show and Twitter number five. FiveMinuteGeekShow.com, five. Subscribe to us at iTunes or RSS, if you like the show, share it with your friends, rate it in iTunes. Thanks! Till next time, Matt Stauffer, Five Minute Geek Show.
Programmer, author, and teacher Adam Wathan stops by to talk about working in public, asking stupid questions, charting a weird career path, and dropping knowledge on your peers. Hit us up on Twitter: Fits and Starts: @fits_and_starts Daniel: @dcoulbourne John: @johnrudolphdrex Special Guest: Adam Wathan. Links: - [Adam Wathan's Website](https://adamwathan.me/ "Adam Wathan's Website") - [Adam Wathan (@adamwathan) | Twitter](https://twitter.com/adamwathan "Adam Wathan (@adamwathan) | Twitter") - [Full Stack Radio](http://www.fullstackradio.com/ "Full Stack Radio") - [The $61,392 Book Launch That Let Me Quit My Job](https://adamwathan.me/the-book-launch-that-let-me-quit-my-job/ "The $61,392 Book Launch That Let Me Quit My Job") - [Fits and Starts: 13: Motivating an Animal (with Matt Stauffer)](http://fitsandstarts.fm/13-motivating-an-animal "Fits and Starts: 13: Motivating an Animal (with Matt Stauffer)") - [Tighten Co.](https://tighten.co/ "Tighten Co. ") - [Building KiteTail](https://building.kitetail.co/ "Building KiteTail") - [David Heinemeier Hansson (DHH) - Wikipedia](https://en.wikipedia.org/wiki/David_Heinemeier_Hansson "David Heinemeier Hansson (DHH) - Wikipedia") - [Nirvana (band) - Wikipedia](https://en.wikipedia.org/wiki/Nirvana_(band) "Nirvana (band) - Wikipedia") - [Patrick McKenzie (@patio11) | Twitter](https://twitter.com/patio11?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor "Patrick McKenzie (@patio11) | Twitter") - [Screenhero | Screen sharing for collaboration in teams](https://screenhero.com/ "Screenhero | Screen sharing for collaboration in teams") - [Paul Stanley dishes on KISS feuds and "painful" secrets - CBS News](http://www.cbsnews.com/news/paul-stanley-on-band-feuds-fame-and-kiss-secrets/ "Paul Stanley dishes on KISS feuds and ") - [WWDC 2017: With the iMac Pro, Apple Rediscovers the Creative Class | WIRED](https://www.wired.com/2017/06/apple-rediscovers-creative-class/ "WWDC 2017: With the iMac Pro, Apple Rediscovers the Creative Class | WIRED") - [Trickle-down workaholism in startups – Signal v. Noise](https://m.signalvnoise.com/trickle-down-workaholism-in-startups-a90ceac76426 "Trickle-down workaholism in startups – Signal v. Noise")
TRANSCRIPT: Hi, I'm your host Matt Stauffer and this is Episode 100. One, zero, zero. We've made it! I have not, I was going to say tweeted. I've not podcasted, I've hardly blogged, I thought I was back a couple months ago and then it turns out that babies don't like sleeping. Turns out, who knew? So finally back-ish, it's going to be a slow roll back--I'm not going to promise that I'm 100 percent, but I'm back enough to record Episode 100. Hurray, huzzah, there was much rejoicing. If I wasn't so lazy I'd put sound effects in here. People clapping and cheering. The Five Minute Geek Show! it's a purportedly weekly show about development and everything around it. It's purportedly five minutes long. It's really whenever the heck I can get to it and turns out it's sometimes between five and ten minutes. It's one topic per episode, that's true. About front end, back end, mobile, project management, design, entrepreneurship, whatever. If it's geeky, it fits. I'm glad to be semi back. My son is out of school, and all of a sudden my schedule is rearranged and I'm able to find pockets of time for podcasts and blogs now, so my goal is to get a podcast and a blog out this week. That's what I'm going to try and do. So this week we're going to be talking about community. Capital C community. If you are not a PHP developer this will be a little bit less relevant. If you're not a developer, it will be even less relevant, but it'll touch on some things. There is often a line that is repeated by various people within the PHP community that Laravel, the people in Laravel, the Laravel community, are elitist and that they encourage silos and that what they really needed to do (if they weren't pigeon holing themselves into just being Laravel developers) is be involved in the greater PHP community. People, hoity toity, are proud of the fact that they are just a PHP developer, and they would not be so base as to identify with a particular framework. They say, well, I hope you don't put "Laravel developer" on your whatever. "Why wouldn't you just say PHP developer?" They'll point to the wonderful efforts of people like Cal Evans, and other wonderful human beings whom I love, who do great things to encourage the PHP community to have an identity. Every single time they say these things, I respond in the same ways, and they stop responding when they realize their argument is awful and then somebody else spouts the same crap a month later. So! I'm going to say it out loud here. If you have the temptation to go ham on somebody because they consider themselves a WordPress developer, or a Symfony developer, or a Laravel developer, or whatever else developer because they should be just thinking of themselves as PHP developers... Next time you identify yourself as a PHP developer, I'm going to walk up and I'm going to say, "why are you identifying yourself as a PHP developer? Why aren't you just a web developer?" Then when you go to a web development thing, "why are you are identifying as a web developer, why aren't you just a technologist?" When you go to technologist thing I say, "why are you a technologist, why aren't you just a person?" Why aren't you just a human? Where is the line? You have made up an arbitrary line that you think is the acceptable place for someone to identify, below which is not possible. And we haven't even started talking about geographical location or anything like that. Is it acceptable for someone to identify that they're in the London PHP group? Is that unacceptable because that's a delineation? No, none of this stuff matters. All these groupings are helpful. Now remember, if you've listened to this podcast for any time you understand that a lot of the things I'm talking about come out of faith and religious background. So let me tell you about denominations. In denominations, you have the differences between people of the same faith, similar to sects and stuff like that. Where you have multiple people who ascribe to the same general thing, but are different in certain ways. There's all sorts of horrible things where people have mistreated each other, they've killed each other and all that kind of stuff, with the difference between religions. So, in general, we tend to think of unity as good and division as bad, right? So we often have this naïve concept that if we could just rid ourselves of denominations, and everyone would just be the same faith, the same religion, then all of our problems would be gone. The problem is there are perfectly acceptable, and perfectly normal and often very healthy, differences in opinion, and denominations give you space to find the other people who follow along that line in a different way, and celebrate together with them without having to separate yourselves entirely from the community that you're a part of. Or without fighting all the time. Let's say you have a particular interpretation of how something says whether its Saturday or Sunday. What's the seventh day in the bible--is it Saturday or Sunday? Well, that's going to make a pretty big difference about when your church meets and all this kind of stuff. You could fight about it all day all the time, or you could both do the same stuff on different days of the week, and just split along that line. Split has this negative connotation, but maybe you can just both do great things on different days of the week. Laravel does different things, provides different things, has different priorities and perspectives than Zend. If Zend and Laravel were to mush together into one, you would have a lot of battles because Zend has a very specific set of goals and priorities that are not the same as Laravel's. If they're allowed to co-exist separately, then it's perfectly acceptable for both of these sub groups to be a part of a larger sub group, which is a part of a larger sub group. Why PHP? Why are you in PHP and not Ruby? Well it would be very awkward to have every meet up ever be about PHP and Ruby. Let alone the differences of opinion, how are you ever going to talk about something when everything is completely different? There are healthy things about us finding natural differences in a healthy way accepting and sometimes even celebrating those differences, and also being willing to be a part of the greater community. Now, does me being in one denomination mean I'm now no longer part of the larger faith? No. Does that mean I'm incapable of participating in concepts or meetings, or whatever that relate to the larger faith? No. Similarly, does being a WordPress developer mean you now say I'm not a PHP developer? No. So chill out, take a chill pill, get off your high horse and allow yourself to be in multiples; and guess what, you could be a Laravel developer and a Symfony developer, and a PHP developer, and a Ruby developer, and a JavaScript developer, and an Ember developer, and a React developer all at the same time. It is possible! You can do it. It's like this magical thing where you can be a part of multiple communities and no community police is going to come stop you. It's fine, it doesn't matter. So just enjoy it! Allow yourself to celebrate being a part of whatever communities to get the benefits out of them. Being a part of the WordPress community means you connect with other people who are learning how to make money as a WordPress developer, and that is very different than how to make money as a Laravel developer, right? That's fine. There's nothing wrong with that. Trying to learn how to really up your skills in Symfony and Laravel often looks very similar, but not always. So having differentiation in the community allows space for us to share some resources, and not share the other resources, and that's perfectly fine. Really, this is just me going on a rant. Surprise! That's what this podcast is. Here's the fact that every community has various levels that overlap, and various levels of not overlap, and that is perfectly fine. You can be a part of many communities that are a part of many other communities that are sub groups, of sub groups, of sub groups, and there's no magical line. PHP as a community is not the magical line beneath which everything is an atrocity. Within Laravel, you may find yourself a part of the DDD community, and you may find yourself a part of the Hyper Ruby inspired minimalist Smalltalk community. Those are two communities within the Laravel community and that's okay, because you don't have to do one or the other. It's fine, I'm not actually adding anything new to this conversation at this point, I'm just throwing out random things and saying its fine. Just chill out. Allow people to enjoy being a part of the communities they are. If you want to have a positive impact I think the thing that I hear from these people the most is, well, why don't you participate more in the larger PHP community? They don't say those words, but I think that's what is the inherent. Then say that in a positive, not critical way. Hey WordPress developers, did you know that there's this much larger PHP community that we want to invite you into? Here's ways that we can welcome you. It turns out the best way to welcome people is not by calling them silo'ed whatever heritics. The best way is to be kind, and to enter into their spaces and to learn from them, and to offer what you have to them, and to be nice people. It turns out that's the trick. Be nice. Take care of people. I feel like I'm making voices where I'm mimicking people more than normal, so I hope I don't get too many complaints about how snarky I was in this one. I really do love you all. This is Episode 100, I'm making the heart symbol in front of my chest right now. I also got not a lot of sleep last night, and I'm super caffeinated so that might be part of it now. All right we're almost out of time, I will not go over 10 minutes, thank you. Thank you friends for listening to 100 episodes, those of you who've been here for all 100, and if not, that's okay--thank you for being here for Episode 100 anyway. This is the Five Minute Geek Show, we're at @5minutegeekshow on twitter, fiveminutegeekshow.com. You can subscribe to us on iTunes or RSS if you like the show, and it'd be amazing if you would share it with your friends, rate it in iTunes. Until next time--Matt Stauffer, Five Minute Geek Show. Ready to do it? All right go. "If one more label try to stop me there's gon be some dread head boys in the lobby, UH UH"
In this episode, the crew talks about enterprise applications, scalability, and productivity. Transcription provided by https://twitter.com/wtoalabi Episode 53: Bigger & Better Music.... Intro: Alright welcome back to another episode of the Laravel Podcast, I am one of your hosts, Matt Stauffer, I have got two guys joining me...Can you introduce yourselves? JEFFREY WAY: I am Jeffery Way! TAYLOR OTWELL: And I am Taylor Otwell. MATT STAUFFER: It's been a little while but we are back with a little bit more to share and if you haven't gotten a chance to check out the Laravel New...News Podcast...all *laugh...*Check out the Laravel new Podcast where... Interjections MATT STAUFFER: Checkout the Laravel New..News Podcast...oh my gosh! Everytime now! News Podcast, where Jacob Bennett and Michael Dyrynda, basically being Australian and ' Illinoisian' tell you all the greatest and latest news that is going on with Laravel, so, because they are covering that so well, we are going off the beaten track a little bit talking about a few kinda broader topics, so, what we did was, we put out some requests on the Twitter account and said "Hey folks, what do you want us to talk about?" And we picked a couple interesting ones and we just want to...just like the reader grab bag or... whatever you call it on your podcast Jeffery, so, the first one at the top of the queue is...something we hear about all the time, not just in this particular request, which is "Can Laravel be used for big apps?" And sometimes this comes in the same conversation of well you know if you want to do enterprise you should use this framework or if you just want to do a cute little thing, then use Laravel. You know, there are all this like statements and perceptions that people have and make about this, so before we go anywhere else, I would ask like, what is and do we know, what is the definition of an enterprise app, like if someone, and then again we are trying to give as much grace as possible to the person who actually thinks there is a distinction...what makes an enterprise app? Is it about lines of code? Is it about patents? Is it about security? Is it about traffic? Like what makes something a big app? And or an enterprise app? Do you guys have a sense for that? JEFFREY WAY: I really don't. So I basically have the same question. From afar, I will just say an enterprise app is something I imagine that is really really big...I don't know, it is an interesting distinction that people always make. I mean for as long as I can remember, even back in the Codeigniter days, you had this idea that Codeigniter is for these sorts of hobby projects but then if you are on the enterprise level, you are gonna reach for Zend or you are gonna reach for Symphony. And I feel like even after all those years, I can't quite figure out, what specific features or functionality do they have, that make them suitable for enterprise or what would Codeigniter not have or what does Laravel not have...hmm... is it related to the fact that Zend has a big company behind it? And whereas with Laravel, you know, like everyone is just gonna keep creating threads about ...what happens when Taylor dies? Is that the kind of idea? Like this is open source...it's kind of rickety...you are not sure what the state of it is, you are not sure if it's going to be abandoned? And with Zend, maybe if you have a big company behind it..maybe you can depend upon it more? Maybe? I don't know, I have the same question as everyone else. TAYLOR OTWELL Yeah, I think most people mean lots of classes I guess. You know, lots of code, lots of lines of code and I think the answers is, you know, obviously I am going to say yes it can be used for big apps, one because it has been used for big apps in the past, so we already know it's true basically. But then also, I think that, you know, Laravel is good for any app that PHP is good for, so, Laravel gives you a good routing system and a way to route request as classes and sort of beyond that is really up to you, you know, once you are past the controller, you basically have total freedom to do whatever you want to do, so, it's up to you in terms of if your app is going to be scalable in terms of complexity. And also I think Laravel is kind of uniquely qualified and better at making big apps than other PHP offerings right now, for a few reasons. One because when people start talking about big apps, a lot of time there is dependency complexity and Laravel Dependency Injection Container is really good and it's really thoroughly baked in throughout the entire framework. When you talk about complicated apps, a lot of time you are also talking about needs like background job processing and Laravel has basically the only baked in queue system out of any major framework in PHP...hmmm...and then of course there is event broadcasting and other features that I would say are more kind of on the big app side of things, so, not only is it...can it be used for big apps, I think it's uniquely better for big apps than other alternatives out there in PHP right now for those reasons. And I think it's just a little misleading because it is easy to get started with, and has a very simple starting point. And since that has a single route file you can kind of jump into it and start hacking around on, but it also scales up, you know with your needs and with your team's needs in terms of complexity...so yeah, that's kind of my take on it. Everyone kind of thinks that their app is a special snowflake you know, that has this, very unique requirements that have never been required in the history of web apps, but, the vast majority of applications don't have unique requirements and they don't really have unique needs and you know Laravel and many other frameworks really are going to be a good fit for them but I think Laravel is the best option in PHP right now for a big sophisticated application. JEFFREY WAY: And it is funny because, for whatever reason everyone thinks their project is going to be the one that really put Laravel to the test in terms of how many page views it can render in a single second...all that stuff like...if you need to worry about that, you are at such high level and you will know if you need to worry about that or not, but 90, I would say 99% of projects will never even get close to that point. So, it's almost like, to be frank, it's almost like a sense of vanity that you think the project you are working on right now is something that really needs to worry about that, because you probably are not even close. TAYLOR OTWELL Yeah, and we are assuming, developers don't approach projects in a rational way, even though we think they might. Like people don't choose frameworks in a rational way, they don't choose anything really laughs related to tech in rational way, a lot of time, as surprising as that is. There's a lot of things that go into it and some of it are sort of personality things, maybe they don't like a way that a certain framework is marketed or not marketed. You know some people are very turned off by active marketing around open source, so, maybe they don't like the style of Laravel sort of friendly, hey look at easy this is easy kind of marketing and they are turned off by that, and so they choose something that is more toned down, more sort of suite and tie like Zend because that fit's their personality better. It's not really a technical decision, it's more of just personality or subjective decision. And that happens a lot with tech in general, you know, some people don't use anything that is popular in general, just the kind of classic hipster type thing. I think a lot goes into it and rarely is it purely technical. Sometimes it is... they don't like me! You know, they don't like me personally. And so they don't like Laravel or use Laravel. JEFFREY WAY: I like you Taylor. Everyone laughs JEFFREY WAY: Right before we started recording, I guess RailsConf is going on and I was watching DHH give his presentation live...and he was kind of talking about this to some extent...the idea that it is important even for a tool like Rails or Laravel to have like their own culture and their own sense of values. And he was talking about how like a lot of people take this idea that you just learn all the different languages and then... you do...you are a programmer. So, if you need to work in this local language, you do it and you just apply everything over. And he was talking about how like while that is true, what is wrong with being part of the community that has a very specific culture, very specific views...he talked about like the people that are still using Rails are doing it, maybe not just because it's better, but because they agree with the values that Rails represents. That is like the huge reason why people still use it to this day. And I think, that is very much true for Laravel as well. It is kind of interesting way to think about things. It's all personality, it's about what your values are. What you connect with and what you don't connect with. TAYLOR OTWELL Yeah...when I first started Laravel, that was a big part of how I wanted, how I thought Laravel could be successful, because I knew that in my own life, like there is sort of this ongoing desire to sort of connect with a group of people. Some sort of community or whatever around shared values. And you know that can be found like around many different things like music, or sport or religion, or whatever. And I knew with programming like I wanted to connect with this group of people that has similar values about writing really clean code and having a good time doing it and making it enjoyable and sort of interesting, new and fresh. And that's kind of how I presented Laravel and I think it resonated with some people that were also looking for a group with those kinds of values. And that is still the kind of the values that we obviously try to share today, but yeah, it wasn't necessarily a purely technical thing, it was building this group of people that sort of resonates around similar ideas and working on it together. MATT STAUFFER: It's interesting 'cos I think that even in my question, I conflicted big and enterprise and I think that you guys kind of really drew out the difference between the two in some of your answers, I mean if we think about it, like Jeffery's first answer was, while enterprise might be really interested in having a company back it versus a person..like Taylor said, we get the question of what if Taylor gets hit by a bus all the time. And it makes sense right, like we have clients all the time coming to us like, say, you know well, you know the CEO or the board or the CFO of our multi-million dollar or multi-billion company are very worried that we are gonna invest a whole bunch of money and time in something and X ..and it's not always...and that Taylor might get run over by a bus, but a lot of developers are getting non-developer input on decisions they make here and there are certain times where some IT persons have set up some rules that says like "You can only use projects like this and not [projects like that and I do wonder whether there are some constraints there like one of them being, that it must of be owned by a company, I know that when we worked with CraftCMS a lot of people said well, why would you, there's actually a business value of using CraftCMS over something Wordpress because Craft is making money and therefore it's a sustainable business model and therefore the business people are actually less worried about this thing disappearing. Right? So like maybe a more direct chain of profit to the people who are running the thing might actually make it clearer. I don't know if that exists maybe ZendCon would be something like that but I know it's Laracon too...I don't really know! But it's interesting that the requirements of ...like the true enterprise requirements...like because I work for a company, my company has these requirements...but I think people, including me when I ask these questions conflict that with big. And so I think there is a good place to take this next is, lets step away from enterprise a little bit...enterprise culture is a thing...you know whatever...let's talk about big, so the thing mentioned Taylor, and Jeffery both of you said a lot of people come along and say oh well mine is going to be the one that finally pushes those bounds right, I am gonna run into traffic issues and stuff like that, so, first of all, like I know that we can't say a lot of the names of big sites that are running on it but I feel like is there anything we can do to kind of like just ... I mean, I know several of them 'cos I am under NDA with several of them, you know, who have talked to us about doing some work with us but there's like multi- I mean milions of millions of hundreds of millions of page views sites running on Laravel...there is like Alexa top 500 sites running on Laravel, there's ...hummmm...what's the big group of all the businesses in the US? I can't remember the name of it...Fortune 500 companies running on Laravel...like multiple Fortune 500 companies whose websites are running on Laravel. Are there anything that you guys can share, like to say, hey look, this is the proof, like we've got big stuff running through here. TAYLOR OTWELL Trying to think some of them..I mean like the Vice Video, Log Swan, you know, various video games sites like FallOut 4 had their landing page on Laravel...other stuff like that, but you know, it's sort of never seems to be enough and it sorts of becomes this treadmill of, you know, I have to give one more proof that it sort of can work...and I just wonder like what's really underlining the question like, do they want to know that if I build my big app on Laravel will it be infinitely maintainable and clean...and no, Laravel won't automatically make your app amazing to maintain for 10 years, you know, I don't know if it's like trying to sort of scale responsibility for you also having to do a lot effort to like make your app enjoyable to maintain or what...but... MATT STAUFFER: Bad programmer, can write a bad app with any framework right? Like, nothing is going to rescue you from that..not saying that the person asking is necessarily bad..but I think that's a great point you made earlier Taylor, I wish we can further into it, is that with Laravel like yea ok, Laravel has it's own conveniences but at some point every single app is basically just you writing PHP... TAYLOR OTWELL: Yeah MATT STAUFFER: And especially at this level when you are talking about hundreds of thousands of lines of code, like the vast majority of the dependencies there is going to be just PHP code right? TAYLOR OTWELL: Yeah. Once you get...let's just take like a Laravel app...'laravel new'...whatever...once you are at the controller, method, in your controller class, everything else is up to you, so whether you use the validator or whether you even use Eloquent at all, or whether you use anything in Laravel, is entirely up you, so it was your choice to do whatever you did past that point. So, it's not Laravel making you do any one particular thing. So, that's sort of the point where you are gonna have to, you know turn your thinking cap on and really plan on how to do a big project, because as far as the framework is concerned, the framework is gonna be a much smaller concern than your actual code, you know the framework is gonna be routing session, some caching, some database calls, but you are the one that is gonna have to like, figure out the domain problems of your app, which is gonna be way more complicated I think, than any framework problems you are gonna have. Like, how is this app gonna work? How is it gonna provide value for our customers, or whatever, those are all like much bigger questions I think...than worrying about can Laravel be used for "Big" apps. MATT STAUFFER: One of the questions we got on Twitter was, how to build big sites with Laravel, scaling, deployment, database structure, load balancing, so, lets say someone is on board right...yes, Laravel can be used for big apps period..it's good..so, what are some considerations that you would have, so if you were taking, you know, a default app out of the box and you "laravel new" it and you build some basic stuff and someone says alright, this app that you just built needs to be able to handle you know, a million hits a week next month..what are the first things you would look to, to start, kind of hardening it against that kind of traffic? TAYLOR OTWELL: Hmm, really simple things you could do is to make sure you are using a good cache or session driver, so probably you wanna use something like Memcache or Redis or something that you can centralize on one server or Elasticache if you are on AWS whatever, you know, you are also probably gonna use a load balancer...PHP is really easy to deploy this way you know, to put a LoadBalancer up and to make a few PHP servers and to alternate traffic between them. PHP makes it really simple to do that kind of scaling and then with Laravel, make sure you use config cache, make sure you are using the route cache, make sure you are doing composer dump autoload optimized, you know, really simple things you can do to sort of boost your application a little bit. MATT STAUFFER: Jeffery, I know Laracast is pretty huge, you kinda in there day in, day out, so I know you are super focused on making sure that it's performing, especially related to maybe, let's say, databases and deployment, can you give me any kind of tips that you have there for people who are building new kind of high traffic apps that you have learned from developing Laracast? JEFFREY WAY: Yeah, Laracast is surprisingly high traffic, if you look at the numbers. And I can tell you, not doing that much...just to be perfectly frank, beyond what Taylor said, a lot of that stuff is kind of the fundamentals...of using config cache...a lot of people will just deploy and stick with the file based cache driver...laughs..you will obviously have some issues with that...but, I am not doing anything that fancy. A lot of it becomes basic stuffs like, people completely ignoring the size of their images...like that is always the very first one I bring up and it's such a 101 tip, but if you go from site to site, you can see it being abused immensely. There is so many ways to work it into your build process...or if not, just dragging a bunch of images into..like a Mac app...I am trying to think of the one I use... TAYLOR OTWELL: Is it ImageOptim? JEFFREY WAY: ImageOptim, yeah just, like when you deploy you can drag a bunch of images up there and it will automatically optimize them as best as it can. And you would be shocked how much benefit you can get from that...versus people who just take a 100kb image and they throw it into their project...you know it's funny that people will debate single quotes versus double quotes all day and then throw a 200kb image into their banner, you know, it makes no sense, people, are silly that way. TAYLOR OTWELL: I think another great thing to do is separate out your database from your web server. If you are building anything, you know, that you care about...like in a real way, it can be good to do that..and sort of, if you don't do it from the start, it can be kind of, you know, scary to make the transition, because now you've got to move your live database to another server...but, there are tools out there to make it pretty easy, there are even free packages out there to make it pretty easy to back up your database, so, that has always been really nice for me to have that on a separate server. So definitely if you are gonna have to start do that because it just makes it easier to do that scaling where if you wanna add a second server, you don't have this sort of funky situation where you have one webserver talking to another webserver because it has your database and all that other stuff where now if you want upgrade PHP you've got to upgrade PHP on the same server that your live database is running on...just scary situations like that...that, that would help you avoid. MATT STAUFFER: Are you guys using a lot of caching on your common Eloquent Queries? JEFFREY WAY: Yeah, I do quite a bit. TAYLOR OTWELL: I really don't on Forge. MATT STAUFFER: I wondered about Forge, because with Forge, each query is gonna be unique per user right? Versus with Jeffery where there might be like a page that lists out all of the episode and you might have 10, 000 people hit that same page. With Forge, it's more 10,000 people each seeing a totally different list right? TAYLOR OTWELL Yeah, it is very dynamic. The one thing I do cache is the list of invoices from stripe because there is a stripe API call we have to make, so we do cache that. JEFFREY WAY: Yeah me too. TAYLOR OTWELL: But other than that I don't think I really do any caching. So, Jeffrey probably has more insight on that...? JEFFREY WAY: Well I have a lot of the stuff on the Forum, because the forum just gets hammered...you will be surprised about how popular that forum is... MATT STAUFFER: I won't be surprised because it shows up on the top results of everything. JEFFREY WAY: I know and I do love finding my forum when am googling for my own ignorance. And I go to my own website to figure out how to do something which is a great feeling! But I do have some queries related to the forum that are pretty intense, a lot of like multiple joins, pulling in stuff, so I do cache that..even summary, I cache that every 10 minutes at a time. Just to reduce the weight a little bit. I get a lot of use out of that stuff and then, yeah, of course, the type of stuff that doesn't just change like Categories or Channels or like Taylor was bringing up, there is no reason not to cache those things. And yes especially the invoices it's a great example, if you are making a network query every single time a page is hit, there is really no need to do that if it's going to be the exact same results...every single time give or take a change or two...so those are obvious cases where you want to cache it as long as you can. TAYLOR OTWELL: How do you burst your cache on Laracast? JEFFREY WAY: Whenever something cache bustable takes place...I guess... TAYLOR OTWELL: Ok so I guess like whenever a new category is out and stuff, you just ... JEFFREY WAY: When a new category is out yeah, as part of that I will just manually bust the cache...or no, I will automatically bust the cache...in other areas, it happens so rarely that I just boot up 'php artisan tinker' and do it myself....*laughs...*which is crappy, but no, anything more common like that, I will just automate it as part of the...whenever I update the database. MATT STAUFFER: We are working on an app right now that has Varnish sitting in front of it. And so literately the code that is behind our Skype window right now is me writing a job that just wipes the Varnish cache either for the whole thing or for specific routes in response to us notifying that the change happens and that's an interesting thing because the cache is outside of Laravel app, but it's cached based on its routes...and so I have the ability to say...well, these particular changes are gonna modify these routes and I built an intelligent Job that kinda get sent out anytime we need those things. So even when it is not within the app, even when it is not your Laravel cache, there is still a lot of ability to kind of put some heavy caches on. And in speaking of that kind of stuff cache busting, use the Version in mix all the time. I mean that is just, because then you can throw Varnish or whatever else and just do infinite cache on your assets. And if you all don't know what that is, it's essentially every single asset that gets built by Mix now has like a random string appended at the end of the file name. And every time it's changed, it gets a new random string on it. And so you can set a forever expires on your Javascript files, your CSS files or whatever else, because anytime it needs to change, it would actually be a different file name as your browser will get to request it and then Varnish will get re-request it or whatever is your cache is. JEFFREY WAY: But on that note, actually, I have been thinking about that, is there...can you guys tell me any real reason why when we are using Versioning, the file name itself needs to change? Because you are using that Mix helper function already to dynamically figure out what the version file is, so is there any reason why we can't just use a unique query string there, or not a unique query string but taking where we would change the file name to include the version, we just include it as part of the query string and then the file name always stays the same? MATT STAUFFER: I know that HTML5 boiler plate used to do just query strings and I hadn't even thought about that, but that might be possible, where the files always stay the same but your...what's that JSON file that has the .... JEFFREY WAY: JSON manifest... MATT STAUFFER: Maybe that just adds the id into the new id to pass? And it's just like authoring comment or something like that? JEFFREY WAY: Yeah, when you version the file, it creates, basically it gets like a Hash of the file that you just bundled up and then that gets included in the new file name...but every time you bundle if that changes, you will never know what that file name is called in your HTML so basically you can use this Mix helper function that Laravel provides that will dynamically read that JSON file and it will figure out, oh you want this file, well, here is the current hashed version and we return that...but yeah I have just been thinking lately like, is it kind of dumb that we keep creating a new file, when instead, the Mix manifest file can just have the relevant query string updated. MATT STAUFFER: So, I googled really quick and there is a thing from Steve Souders....who is the guy who originated the 13 rules of make your website faster or whatever they were...the whole like, you know less HTTP requests, and it's called in your files names don't use query strings...I havent read it yet...oh High Performant websites...I havent read it yet and it is 9 years old. My God! Now that I am seeing seen him talking about Squid, I have worked with Squid before which is like a pretty old cache, but a lot of stuff that works for Squid also works for Cloudflare so I am guessing Cloudflare is either using Squid or adopted Squids terminologies and I do think...and I also did a whole bunch of work with one of our clients who is writing custom Varnish rules right now. And I do remember that stripping query strings is a thing that happens sometimes especially when it doesn't matter, for example in the case of asset, I think it maybe a thing that he do by default, so he is digging through here and Squid and proxies and stuff like that, I think basically what he is saying is your proxy administrator could go and teach the proxy to care about query strings but all then ignore them by default... JEFFREY WAY: Ok MATT STAUFFER: So by choosing to use it with query strings you are opening up a lot of job opportunities where it doesn't work the way you are expecting. TAYLOR OTWELL: I have been using Cloudflare quite a bit recently. The whole Laravel website is behind Cloudflare, heavy Cloudflare caching, very few requests actually hit the real server. Mainly because it's all static, you know documentation but am a big fan of that, especially when you are scaling out webservers, if you are using, you know, some kind of Cloudflare SSL. I think Amazon has a similar SSL service now, it makes so much easier to add a web server because you don't really have to think about your certificates as much, you know, putting your certificate on every server, especially because since you can just use like a self-signed certificate if you are using the Cloudflare edge certificate...so that's something to look into and it's free to get started with and it has some nice feature for scaling. MATT STAUFFER: I helped some folks at this thing called the Resistance Manual, which is a Wiki about basically...huh......sorry to be mildly political for a second...all the negative impact of the Trump presidency and how to kind of resist against those things. And so they wanted me to help them gather their information together and I said well I can help out, I am a tech guy and they were like, do you know, you know, media wiki, which is the open source platform behind things like Wikipedia, and I said no, but you know, I can learn it. Turns out that it's like really old school janky procedure PHP and so I said yeah I can handle this but it is also just extremely dumb in terms of how it interacts with the database and so when you are getting you know millions of hits like they were on day one, we had a like a 8 core, you know, hundreds of hundreds of dollars a month Digital Ocean box and it was still just tanking. Like couple of times a day that the caches were getting overflowed and all that kind of stuff, so, I threw clouldflare on it, hoping it would be magical and the problem with that is it's not Cloudflare's fault it's because Cloudflare or Squid or Varnish needs to have some kind of reasonable rules knowing when things have changed and for anyone who has never dealt with them before there is a sort of complicated but hopefully not too complicated dance between your proxy and reading things like expires headers and E-Tags and all that kind of stuff from your website. And so if you throw something like Cloudflare or something like that on it and it is not working the way you expect, the first thing to look at is both the expires headers and the cache link headers that are coming off of your server pre-cloudflare and also what that same response looks like when it's coming back after going through cloudflare, and cloudflare or whoever else will add a couple of other ones like did it hit the cache or miss the cache and what's the expires headers and what's the Squids expires headers, so there are lots of headers that give you the ability when it just seems like it is not just working the way you want and there is only like 3 configuration options in cloudflare, then what do you do? Go look at your headers and I bet that you know, 15 minutes of googling about how cloudflare headers work and Squid headers work and then inspecting all your headers before and after they hit cloudflare and you will be able to source out the problem. Alright so, we talked databases, we talked loadbalancing a little bit, deployment, so, if anybody is not familiar with zero downtime deployment, just a quick introduction for how it works...if you use deployments on something like Forge the default response when you push something new to your github branch is that it hits 'git pull', 'composer install' 'php artisan migrate' or whatever, so your site could erratically be down for seconds while the whole process runs and so, if you are worried about that you can run, 'php artisan down' beforehand and 'php artisan up' afterwards, so when it's down, instead of throwing an error, you just see like hey this site is temporary down kind of thing. But if you are in a circumstances where that is a problem, you might want to consider something like Capistrano style or Envoyer style zero downtime deploy, look somewhere else for a much longer explanation but essentially, every time a new release comes out, it's cloned into a new directory, the whole installation is processed and run there and only once that is done, then the public directory that is getting served is symlinked into that new directory instead of the old one. So you end up with you know with the last 10 releases each in its own directory and you can go back and roll back into a previous directory and Taylor's service Envoyer is basically a really nice User Interface in front of that... For me that has always been the easiest way to handle deploys in a high kind of pressure high traffic high loads situations is just to use Envoyer or Capistrano. Are there any other experiences you've all had or tips or anything about how to handle deploys in high traffic settings when you are really worried about you know those 15 seconds or whatever...are there any other considerations we should be thinking about? or anything? TAYLOR OTWELL: That's the extent of my experience..I haven't had anything that is more demanding than using Envoyer. Am sure there is you know...if I were deploying to thousands of servers, but for me when I am just deploying to 4 or 5 servers Envoyer has been huh...pretty good bet. MATT STAUFFER: And hopefully if you are deploying to a thousand sites, then you've got a server person who is doing that. You know like we are talking dev'ops for developers here right, like when you are running a minor server not when you are running a multi-billion dollar product and the clients I have been talking to were working with all these kind of Varnish stuff..I didnt setup Varnish you know, my client setup Varnish and took care of all these stuff and he just kinda asked me for an input in these kind of stuff and so I definitely would say like there is definitely a limit at which...you know...people often lament like how many responsibilities they are putting on developers these days. I don't think we all have to be IT people capable of running servers for you know, a one thousand server setup for some massive startup or something like that. But I think like this whole, you know, how do I handle a thing big enough that 15 seconds of down time where a migration and composer run...I think that is often within our purview and I think something like Capistrano or Envoyer is for me at least it's being a good fix...the only situation I have not had to run into which I have heard people asked about online and I wanna see if you all have any experience there is, what if you do a roll out and it has a migration in it and then you need to roll back? Is there an easy way to do the 'migrate:rollback' in an Envoyer rollback command or should you just go Envoyer rollback as you SSH in and then do 'php artisan migrate:rollback' TAYLOR OTWELL: Sort of my view on that recently like over the past year has been that you will just never roll back, ever. And you will always go forward. So, because I don't know how you rollback without losing customer data. So, it's, a lot of time not really visible to rollback. Lets just pretend you could, then yes, there is no real easy way to do it on Envoyer, you will just kind have to SSH in and do php artisan rollback like you said. But I think a lot of times, at least for like my own project like Forge and Envoyer, I can never really guarantee that I wasn't loosing data so I think if at all possible, what I would try to do is to write an entirely new migration that fixes whatever problem there is. And deploy that and it will just migrate forward, you know. And I will never really try to go backwards. MATT STAUFFER: You find yourself in that accidental situation where you deploy something that should never have been, then you then go 'php artisan down' real quick, run the fix, push it up and let it go through the deploy process and then 'php artisan up' after that one deployed. TAYLOR OTWELL: Yeah. That's what I would do. If it's, I mean, sometimes if it's low traffic and you feel pretty certain no one's messed with the new database schema, then probably you can just roll back, but, I was just worried in Forge's case that people are in there all day, I would lose data. So that's why I would every time possible to try and go forward. MATT STAUFFER: Yeah, that makes sense. TAYLOR OTWELL: I have actually stopped writing down methods in my migrations entirely recently...not that it's optional. JEFFREY WAY: I feel evil doing that! Like I very much get the argument...but, when I create a migration and I just ignore the down method, I feel like, I am just doing something wrong. I am still doing it right now. TAYLOR OTWELL: It's really mainly visible in Laravel 5.5 'cos you've got the new db:fresh method or db:fresh command, which just totally drops all the tables without running any down methods. MATT STAUFFER: I end up doing that manually all the time anyway because at least in development, the most often when I want to do refresh, it's often in context where I still feel comfortable modifying old migrations..like basically, the moment I have run a migration in prod, I would never modify an old migration. The moment there is somebody else working on the project with me, I will never modify an old one unless I have to and it's just so important that I have to say hey, you know, lets go refresh. But often when I am just starting something out and I have got my first 6 migrations out, I will go back and hack those things over and over again...I don't need to add a migration that has a single alter in it, when I can just go back and edit the thing. And in that context often, I change the migration and then I try to roll back, and sometimes I have changed it in such a way where the rollback doesn't work anymore. I rename the table or something like that... JEFFREY WAY: Right.... MATT STAUFFER: So fresh is definitely going to be a breath of fresh air. JEFFREY WAY: I do wish there was maybe a way to consolidate things, like when you have a project that has been going on for a few years, you can end up in a situation where your migrations folder is huge...you just have so many. And it's like every time you need to boot it up, you are running through all of those and like you said sometimes, just the things you've done doesn't just quite work anymore and you can't rollback. It would be nice sometimes if you could just have like...like a reboot, like just consolidate all of these down to something very very simple. MATT STAUFFER: We did that with Karani I don't know if there is...there is a tool that we used that helps you generate Laravel migrations from Schema and we did it soon after we had migrated from Codeigniter to Laravel for our database access layer. Karani is a Codeigniter app where I eventually started bringing in Laravel components and then now, the actual core of the app is in Laravel and there is just like a third of the route that are still on Codeigniter that havent been moved over and once we got to the point where half of our migrations were Codeigniter and half of them were in Laravel it's just such a mess so we found this tool...whatever it was. We exported the whole thing down to a single migration, archived all the old ones, I mean, we have them on git if we ever need them and now, there is just one..you know, one date from where you just get this massive thing, and then all of our migrations happen kind of, from that date. And for me, I actually feel more free to do that when it's in production because the moment it's in production, I have less concern about being able to speed it up through this specific process because like if something is from two months ago, I am sure it had already has been run in production and so I feel less worry about making sure the history of it still sticks around... JEFFREY WAY: Alright...right... MATT STAUFFER: Alright...so the next question we have coming up is, "I will like to hear about how you all stay productive." And we've talked on and off at various times about what we use..I know we've got us some Todoist love and I know we've got some WunderList love...hummm... I've have some thoughts about Calendar versus Todo lists and I also saw something about Microsoft buying and potentially ruining Wunderlist..so what do y'all use and what happened with Wunderlist. TAYLOR OTWELL: Well, Todo lists are dead now that Wunderlist is dead. MATT STAUFFER: Yeah...So what happened? TAYLOR OTWELL: Wunderlist was my preferred todo list, I just thought it looked pretty good...and Microsoft bought them I think, that was actually little while back that they bought them but now they have finally announced what they are actually doing with it...they are basically shutting down Wunderlist and turning it into Microsoft Todo...which doesn't look a lot like the old Wunderlist and doesn't have some of the features of the old Wunderlist...but it looked ok..you know, it seems fun, so what I have done is migrated to Todoist rather reluctantly but it's working out ok. JEFFREY WAY: Please correct me...is this funny like, Wunderlist is gonna be around for a very long time but just the idea that they are shutting down it's almost like you feel compelled...we've talked about this with other things too...where it's like you suddenly feel like oh I need to migrate...we talked about it with Sublime, like if we find out tomorrow, Sublime is dead in the water. But you can still use it as long as you want. Even though, it would still work great, you would have this feeling like well, I gotta get over to Atom or I gotta start moving on...'cos this place is dead, even though Wunderlist is gonna work for a long time. TAYLOR OTWELL: Yes...laughs...as soon as it was announced, I basically deleted Wunderlist off my computer... All laugh.... TAYLOR OTWELL: Which makes no sense, but it's so true... MATT STAUFFER: I needed a new router and everyone told me, you use the Apple Routers 'cos they are the best...but I have heard they are 'end-of-life'd'....and I was like no way...no way I am gonna throw all my money there and someone say well, why does it matter...you know...you are gonna buy a router and you are gonna use it till it dies? And I said I don't care...I am gonna buy something else 'cos it just...I don't know...it's just like you are putting your energy and your effort after something that can't...you know can only be around for so long and you just want..you want be working with something that's gonna last I guess... JEFFREY WAY: Yeah...I am still on Wunderlist right now. I am hearing...humm..if you guys are familiar with "Things" that was like the big Todo app years ago...and then they have been working on Things 3 or third version for a year...it's been so long, that people joke about it..you know, it's almost like that...new version of..humm..what was it...there was hummm...some Duke Nukem game that.... TAYLOR OTWELL: Is it Duke Nukem Forever..? JEFFREY WAY: Yes! For like 10 or fifteen years and it finally came out! It's looking like next month, "Things 3" will be out and I am hearing it..like the prettiest ToDo app ever made I am hearing really good things. So, I was hoping to get in on the beta but, they skipped over me. So, I will experience it in May but I am excited about it. So, that's the next one..but you know what, I am never happy with Todo apps..I don't know why. It's kinda of weird addiction...if you say an item address basic need...even like a Microsoft Todo. Ok, your most basic need would be to like say...Go to the market on Thursday. You can't do that in Microsoft Todo. You have to manually like set the due date to Thursday. Rather than just using human speech. TAYLOR OTWELL: Have you tried Todoist? JEFFREY WAY: Todoist works that way. Huh I think Wunderlist works that way but now, Microsoft Todo doesn't. MATT STAUFFER: Oh ok..got it. You lost that ability right? JEFFREY WAY: Yeah, it's so weird like every task app would have something that's really great and then other basic things that are completely missing...and it's been that way for years. MATT STAUFFER: I always feel bad, I mean I bought things...thankfully I managed to skip...what was that thing...OminiFocus, I skipped OminiFocus which is good 'cos that is hundreds of dollars saved for me. And I tried...I tried all these different things and I finally figured out that there is a reason why I keep jumping from one to the other, is because..for me...this is not true for everybody...and I think it might have to do with personality a little bit...and the industry a little bit, and what your roles are whatever, Todo lists are fundamentally flawed because they are not the way I approach the day...and they are not the place my brain is...so, I can force my brain into a new paradigm for even a week at a time but I have never been able to stick with it and it's not the app, I thought it was the app, I thought just once I get the right app, I will become a todolist person and I realized, I am not a Todolist person so I can try every app and it can be perfect and I will still just stop using it 'cos it's not what I think about. And when I discovered that I can't use and then later found some articles talking about how I am not the only person who come up with this...that validated me...'cos I put it on my calendar and so, if I need to do something, I put it on my calendar and then it gets done. And if I don't put it on my calendar, it doesn't get done. End of story. It's so effective for me that my wife knows at this point that if she asks me to do something and I don't immediately pick up my phone and put it on my calendar, she knows it's not gonna get done. Because that's..that's how things happen and so, it's amazing to me, that..laughs...she literarily, when she first started discovering this, she sent..and she's not not super technical..like she's smart, she just doesn't like computers all that much...but she knows how to use google..and so, she, when she first discovered this, she sent me a calendar invite that is "Matt Clean Toilet"...and it's for 8 hours every Sunday and so, I will be on a screenshare..'cos she's like that's how I am ever going to clean the toillet right?...so I will be on this screenshare with a client and I will pull up my calendar and to say hey when is it a good time for us to have this meeting? And I will be like..oh "Matt Clean Toilet" takes the 8 hours....laughs... But for me, my todo list is my calendar. And everyone kinda in the company knows what my calendar is completely for and Dan actually has asked me to start marking those things as not busy, so, Calendly, our appointment app will still allow people to book...like clients to book times with me during that time..but like essentially, if I need to get something done, like, I..I need to review a whole bunch of pull requests, like Daniel who works with me literarily just put meeting invite on my calendar for tomorrow 10:30 and it says "Code Review @ Daniel". And literarily after this podcast, there is an hour that says "Code Review with James" because they know that that's how they get it....and there is...500 hundred emails in my inbox and all these other things I have to do, but if it goes to the calendar, it gets done. So, have you guys ever tried that? Does it sound like something that will click with you or no? JEFFREY WAY: I think it makes good sense for you because it sounds like your days are scheduled like your day is full..humm...my day isn't quite as much like do this with so and so, I don't have as many meetings. So, most of my day is like: these are the things I wanna get done. And it doesn't matter whether I do it at 9:AM or 9:PM, so, Todo list works good for me but yeah..I can see how like if my day was very segmented and scheduled that would make far more sense than reaching for some todo app. TAYLOR OTWELL: Yeah..my days are usually pretty free-form outside of the kinda standard schedule where I always do emails and pull requests first thing in the morning but then after that lately it's been...you know..was work on Horizon..now it's work on the thing that comes after Horizon, and that's pretty much the rest of the day, you know, besides whatever Laracon stuff that I have to do recently, which is more of a seasonal thing you know. But I got lunch, all booked, that's done...but whatever we need, you know, furniture, catering or whatever. But yeah, then I pretty much just work on one thing throughout the day. So, I don't really switch context like that a lot. But I was so despondent at the Wunderlist announcement that all Friday afternoon I wrote a chrome extension that when you open new tab, it opens "Discussing Todo List" that I wrote in VueJs and you know HTML and it uses the chrome sync to sync it across my chrome account to all my laptops whatever...so... every new tab has a todo list, but even that, I was still not happy with it and deleted it and the whole afternoon went with the todo list. Anyway, but I have forgotten about the Chrome extension thing. I need to open source it. MATT STAUFFER: Every developer has to make their own Todo list at some point in their lives. TAYLOR OTWELL: Yeah. That's interesting about the calendar though...I want to get Calendly because it looks like a really cool app and try some more calendar stuff 'cos I haven't really dug into that as much as I could. MATT STAUFFER: Yeah...I use basic Calfor my desktop app, I know that, I think I use Fantastic Cal on the phone or something..a lot of people love that...the thing that we like about Calendly is that it gives me a public link that syncs up to my Google calendar and so when we need to schedule things like we are in the middle of hiring right now or client meetings, I just send them to my calendly link and I just say, go here and schedule time with me and it syncs up with my Google calendar and it shows them all the times and I can say..go schedule a 60 minutes meeting and I give them the 60 minutes link or 5 minutes or whatever and you can put different rules around each. So I teach calendly when do I drop my son off at school and when do I ...you know drive from my home office to my work office all that kind of stuff...so that it knows when I am available and then..because we just wasted so much time between Dan and me trying to get our calendars in sync. So, that's what I love about Calendly. TAYLOR OTWELL: What really sold you on basic Cal over like you know just Apple Calendar or whatever? MATT STAUFFER: I wish I can tell you...I know that it handles multiple calendars better...but it's been so long since I made that choice that I couldn't even tell you. I know that Dan, my business partner hates calendars more than any person I have ever met and almost every time he complains about something, I am like oh yeah, you can do that with Basic Cal and he is like "I still use Apple Calendars" I know those things but I can't tell you what they are..so. Alright...so one last question before we go for the day. Saeb asked "It would be nice to hear why are guys are programmers. Is it just something you love and enjoy or is it just a way to put bread on the table? Is it passion what is it that makes you wanna be a programmers?" JEFFREY WAY: I will go first. I fell into it. I think we are being disingenuous if we don't say that to some extent...but I know even from when I was a kid, I love the act of solving puzzles. I remember I had this Sherlock Holmes book and it's one of those things where every single page is some little such and such happens...somebody was murdered and then Sherlock comes, points to so and so and says you are the person who did it. And the last sentence is always..."How did he know?!" And that was like my favorite book. I would go through it every day and try to figure out how how did he figure out that this was the guy who...you know...robbed the bank or whatever it happened it be. So, between that or I play guitar for over a decade and I went to school for that. It's all still the same thing of like trying to solve puzzles trying to solve riddles trying to figure out how to connect these things. You may not know it with guitar but the same thing is true, like puzzles and you start learning about shapes on the guitar and how to transpose this to this. And how to play this scale in eight different ways...it's still like the same thing to me it's figuring out how to solve these little puzzles. And so for programming, I feel like it's the perfect mix of all of that. There needs to ne some level of creativity involved for me to be interested in it....I always worried I would end up in a job where I just did the same and only this thing every single day. And I would finish the day and come back tomorrow and I am gonna do the exact same thing all over again. So there needs to be some level of creativity there which programming does amazingly well or offers amazingly well. Although my mum would never know. I think she thinks I gave up on music and went to this like boring computer job...and even though when I explain to her like no there is huge amounts of creativity in this I don't think she quite makes the connection of how that is. So, yeah, between the creativity and solving puzzles, and making things, it's a perfect mix for my personality. TAYLOR OTWELL: I was always really into computers and games and stuffs growing up, so it was pretty natural for me to major you know in IT in college but I didn't really get exposed to the sort of the front side of programming and open source stuff until after college when I started poking around on side projects and stuff like that. So, I did kind of fall into this side of programming you know, where, you are programming for fun as a hobby and working on open source after I graduated but I was always kind of interested in looking back sort of things that are similar to programming so like into games like SimCity and stuff like that where you are planning out you know, your city and sort of...one of the similar things you do when you are building up big projects or whatever a big enterprise project you know was sort of planning and trying to get... just the right structure whatever, so I was kinda always into that thing. And just sort of naturally fall into that path later in life. MATT STAUFFER: I...my brother and I started a bulletin boards service...out of our spare bedroom, I mean we were in Elementary or middle school or something like that..and he is 3 and half years older than me and he is a little bit more kind of like intellectual than I am, so, he learned how to code the things and he said why don't you be the designer. And that kind of trend just kept up. When he learned how to make websites, he be like well, I am gonna make websites and you be the designer. And so I kinda had this internalized idea that A...I was interested in tech..but B, I was the design mind. And the thing is, I am not a very good designer...like the only reason I kept getting into design is because I had like... I was creative, I was a musician and stuff but also because my brother already had the programming skills down and so he needs a designer right? And so, I think that I went off to college, by that point I already had a job as a programmer, I already had my own clients, doing you know frontend web developments and basic PHP, Wordpress that kind of stuff but I was like well I need to become a better designer so I went off to college for design and I just realized I am not a designer, so I left. And I went off and I did English and I worked with people and I worked for a non-profit having thought you know like oh that is not my thing and then I kinda did a turn round when I left the non-profit, my wife went back to school and I needed to pay the bills, so it was..there is an element of paying the bills..I say like well I know that web development pays well, so I will go back to that. And just discovered that I love web development...it is fulfilling and it is satisfying...it is creative...it's using your brain in all this really interesting ways...each one it's a little bit the same, a little bit unique, there is always really great things about it...I mean I remember one of the things that drove me nuts about my previous work..both in design and in working in the non-profit is that there is no sense like whether you did a good job or not. There is no sense of when something is done. You are just very kinda of vague and vacuous and with this, it's like there is a defined challenge...and you know when it's done. And you know whether you did a good job or not. And I was just like that was huge...that was so foundationally helpful for me. And so I think just kind of being able to approach it and realize that it's creative..like, it's creative and it is well defined..it's a little concrete..it's a challenge all those things together I think for me..and it turns out that it wasn't just a way to make money and I have also since discovered now that I run a company that I also have all the people aspects here..it's about relationship, it's about communities...I mean we have talked about that a lot in this episode and running a company is about hiring and company culture and all those kind of stuff... So I get to comment especially at the level of tech that I get to do day to day whether it's open source or running company I feel like it's all of the best together in one word. JEFFREY WAY: So Matt, how did you go from taking on smaller projects when you went back to web developments to suddenly running Tighten? Like how did you get there? What happened? Were you getting more projects than you can handle? MATT STAUFFER: The opposite. I...I had no work. I worked out of a co-working space in Chicago and I only had about 10 hours a day, fifteen hours day filled because I didnt know anybody. And I had not been doing anything in the industry for 6 years. So, I said, you know what? When I worked for non-profit there was this need I had and I still worked for those non-profit's per time at that point, so I just started building an app...I built an app by hand while I worked for the non-profit in PHP and it was terrible. And I was like oh, I have heard about this framework thing, and so I tried building it in CakePHP and it was terrible, and so, those experiences matured me a little bit...and so by the time I was now kinda going solo as a developer, every free moment I would have, outside of the you know, the contract work I had, I would go learn Codeigniter. You know my buddy Matt had learned ExpressionEngine and said hey, checkout Codeigniter I think you might like it. So I learned Codeigniter and I did all these work in Codeigniter and I built this whole app which is Karani, the thing we are talking about today and I built Karani and I made it for myself and then my friends wanted it and so then I made it for my friends and then it was costing me money to upkeep, so I learned how to charge them money..and Stripe was brand new at that point, so I almost went with Stripe but I ended up going with BrainTree...I got into like big and software as a service app development through there...and right at that same time... I was teaching my buddy all about modern web development HTML5 boiler plate all that kind of stuff after work one day and this guy walked over...the one guy in my co-working space that I had never met, who was always in his closed office and he was like, are you a developer? Are you looking for work? I was like yeah..and he was like..I need you...would you consider working for me? I played it all cool but I was like YES..PLEASE I NEED WORK!!! I only have 10 hours of work a week right now. And it was Dan... And so, Dan and I worked together on this massive project for a year and the client took 6 months to actually get the work ready for us. And he already had me booked and he already had me billed and he was why don't you just go learn become the best possible developer you can..I will throw you know, 30 hours a week jobs just off my various you know various projects...but in all your free time and even in those projects, just learn to become the absolute best, because we were working for, you know, this massive billion dollar international company at that point. And responsive was like just a thought in people's minds. So, I wrote you know, articles and I created responsive libraries back in the early days of responsive and all those kind of stuff and I was like really up in the middle of it. And then we built this app. So, I had like a lot of kind of things that took me very quickly from like hey I haven't written any code or any professional code in 6 years to like to the point where I was ready to build an app for this billion dollar company. JEFFREY WAY: That was amazing. That is how learn best too. MATT STAUFFER: It really is..and Dan and I loved working together so well that within 6 months we decided to go into business together and 6 months or a year later, we named it Tighten and the rest is history. MATT STAUFFER: And so, we are super late and Jeffery, you are the one who has to edit this all later, so I apologize for that..so Ok. Future Jeffery, editing this, I am going to do you a favor, call it a day for now so..guys...it's been a ton of fun..everyone who submitted questions to us on Twitter, the ones we didn't get to today, they are still on our trailer board, we will get to some of them next time... But keep sending us stuff for us to talk about and like I said, the Laravel news podcast is doing a fantastic job of keeping you up to date on regular basis with news so definitely tune in there for that...but we are gonna be talking about more long form stuffs when you got questions for us, send them to us either to our personal accounts or twitter account..for the podcast and we will try to get to them whenever we can..so, until next time..it's Laravel Podcast thanks for listening. MUSIC fades out...
Matt enumerates the differences between venture-backed and bootstrapped businesses. We discuss the difference between “useful” and “good” traits. Matt has some advice on how to talk about your strengths without sounding like a jerk, and then John meets a Titan of Industry. Hit us up on Twitter! Fits and Starts - @fits_and_starts Daniel - @dcoulbourne John - @johnrudolphdrex Special Guest: Matt Stauffer. Links: - [Matt Stauffer (@stauffermatt) | Twitter](https://twitter.com/stauffermatt "Matt Stauffer (@stauffermatt) | Twitter") - [Tighten Co. | Product Development for Web + Mobile | Laravel + Vue.js](https://tighten.co/ "Tighten Co. | Product Development for Web + Mobile | Laravel + Vue.js") - [Laravel: Up & Running - An O'Reilly book by Matt Stauffer](https://laravelupandrunning.com/ "Laravel: Up & Running - An O'Reilly book by Matt Stauffer") - [Karani - for Fundraisers](https://karani.co/ "Karani - for Fundraisers") - [thoughtbot](https://thoughtbot.com/ "thoughtbot") - [Less Accounting](https://lessaccounting.com/ "Less Accounting") - [Basecamp](https://basecamp.com/ "Basecamp") - [Bootstrap (front-end framework) - Wikipedia](https://en.wikipedia.org/wiki/Bootstrap_(front-end_framework) "Bootstrap (front-end framework) - Wikipedia") - [CEO Genome – Data driven insights into what makes successful CEOs](http://ceogenome.com/ "CEO Genome – Data driven insights into what makes successful CEOs") - [Fits and Starts: 1: Temporarily Embarrassed Millionaires (Visionary Bro Culture)](http://fitsandstarts.fm/temporarily-embarassed-millionaires "Fits and Starts: 1: Temporarily Embarrassed Millionaires (Visionary Bro Culture)") - [Fits and Starts: 3: Five Jobs and a Bunch of Dogwhistles (Pizza Parlor Reference)](http://fitsandstarts.fm/five-jobs-and-a-bunch-of-dogwhistles "Fits and Starts: 3: Five Jobs and a Bunch of Dogwhistles (Pizza Parlor Reference)") - [How I Built This - Airbnb: Joe Gebbia - NPR One](http://one.npr.org/?sharedMediaId=497820565:497945288 "How I Built This - Airbnb: Joe Gebbia - NPR One") - [Lifestyle business - Wikipedia](https://en.wikipedia.org/wiki/Lifestyle_business "Lifestyle business - Wikipedia") - [I'm a real boy! - YouTube](https://www.youtube.com/watch?v=uEB45OAnixU "I'm a real boy! - YouTube") - [Dwight Schrute - Assistant to the Regional Manager - YouTube](https://www.youtube.com/watch?v=6tQG15iM1UI "Dwight Schrute - Assistant to the Regional Manager - YouTube") - [see the forest for the trees - Wiktionary](https://en.wiktionary.org/wiki/see_the_forest_for_the_trees "see the forest for the trees - Wiktionary") - [David Allen's Getting Things Done® Methodology](http://gettingthingsdone.com/ "David Allen's Getting Things Done® Methodology") - [Agile software development - Wikipedia](https://en.wikipedia.org/wiki/Agile_software_development "Agile software development - Wikipedia") - [How to Get Out of Debt With the Debt Snowball Plan | DaveRamsey.com](https://www.daveramsey.com/blog/get-out-of-debt-with-the-debt-snowball-plan "How to Get Out of Debt With the Debt Snowball Plan | DaveRamsey.com") - [Giant Robots Smashing Into Other Giant Robots](http://giantrobots.fm/ "Giant Robots Smashing Into Other Giant Robots") - [The Inner Game of Tennis](http://www.philosophyforlife.org/innergame/ "The Inner Game of Tennis") - [Fits and Starts: 4: Internet Civics](http://fitsandstarts.fm/internet-civics "Fits and Starts: 4: Internet Civics") - [The Five-Minute Geek Show](http://www.fiveminutegeekshow.com/ "The Five-Minute Geek Show") - [How to Win Friends and Influence People - Wikipedia](https://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People "How to Win Friends and Influence People - Wikipedia") - [Stack Overflow](https://stackoverflow.com/ "Stack Overflow") - [InterVarsity Christian Fellowship](https://intervarsity.org/ "InterVarsity Christian Fellowship") - [Jeff Goldblum Is Back in New Ads for Apartments.com](http://www.adweek.com/brand-marketing/jeff-goldblum-back-new-ads-apartmentscom-time-directed-bob-odenkirk-170522/ "Jeff Goldblum Is Back in New Ads for Apartments.com") - [Bootstrap Management - Wikipedia](https://en.wikipedia.org/wiki/Entrepreneurship#Bootstrapping "Bootstrap Management - Wikipedia")
Chris and Ed decided to push themselves out of their comfort zone and talked to Laravel community superstar Matt Stauffer. We talked about Matt’s experience writing a book for a major publish (with an animal on the cover and everything), asked the question “does consistency in code matter for OSS projects” and Chris sadly muted his mic while Matt and Ed discussed the Analogue NT Mini gaming console. Do these things! Check out our sponsors WonderNetwork, OSMI, and Grumpy Learning Buy stickers at devhell.info/shop Follow us on Twitter here Rate us on iTunes here Listen Download now (MP3) Links and Notes Matt’s book Laravel Up And Running Chris hacks away on OpenCFP Symposium is an app designed to help speakers collect their talks The Anologue NT Mini is Ed’s latest console purchase How weird film shot at 120fps will look Matt is one of the big shots at Tighten You can play video games in your browser thanks to the Internet Archive’s Console Living Room
Jake and Michael recap the inaugural Laracon Online and go over all the latest from the Laravel Community.
The tip: Be a grownup. -- Transcript -- Matt Stauffer: Hi. I'm your host Matt Stauffer, and this is episode 94 of the Five-Minute Geek Show, a weekly show about development and everything around it. It's one topic per episode—about frontend, backend, mobile, project management, design, entrepreneurship, whatever. If it's geeky, it fits. Today we're going to be talking about being a freelance web developer, freelance contractor, and what it is that I expect from you as a business owner when you're doing that. I'm also going to turn off the fan so you don't hear the noise in the background. At Tighten we often hit spots where we have too much work, too much stuff on our plate. Sometimes we'll just say no to clients, but sometimes we'll say yes to a project or we'll just need a little bit more, and we'll turn to freelance contractors to help round it out a little bit, because what we don't want to do is, at that point, hire someone then realize that it was just a temporary kind of boost in the amount of work we're getting. Instead, we bring on freelance contractors to help us do work. These are varying from random freelance contractors we found on the internet somewhere to completely famous freelance contractors who are big names in the PHP or frontend space or whatever else it ends up being. The weird thing is, we have had far more negative experiences than we have had positive. Far more people where I say, "What is going on? How do you not know how to manage your business? How do you not know how to be a grown-up? How do you not know how to communicate to me?" Well, what I've discovered is that the number one problem that we have had working with contractors is that they expect to come into our organization as an employee. In some ways that's my fault, because I often say, "Hey, we kind of think of you as an employee while you're here." Because we usually only have them contract basically full time, so I want to know when you're in the office, I want to know when you're out of the office. I want you to do check-ins with me. I want you to feel like you can communicate to me. I want you on our Slack channels, all that kind of stuff. The problem is, they often think that they're employees, in that I'm the one responsible for checking in with them, or I'm the one responsible for setting the list of tasks, or I'm the one responsible for something else. The thing is, the vast majority of contractors we work with are charging anywhere between $100 and $150 bucks an hour (edit: this is not true. A more correct number would be $75 and $125). If I'm paying you far more per hour than I make, then I'm expecting you to do a whole bunch of work for me, right? I'm not expecting to pay you a whole bunch of money for you then to just sit there and wait for me to tell you what to do, or wait for me to check in on you, or babysit what you're doing. That's not acceptable. I think that ... This is not acceptable for me. Maybe that's how it works with other companies. I think that there's a misconception for a lot of folks who are freelance contractors that the process of choosing to be a freelance contractor and charging much higher rates than you would, whatever else, is really just you ... Like we're paying for the value of having somebody to flesh out our team when we didn't have the resources to do it, and that's why the cost is extra or whatever. That's definitely true. You know, if I didn't have somebody to do that, then I would have to do the work, or I'd have to turn down work, or whatever it ends up being, so there's definitely value there. I also think that it is the value of paying someone who's supposed to be a self-sufficient work-doing resource. Self-sufficient in that they handle their own finances, and they handle their own accounting, and they handle their own timeline. The whole concept of ... At least in the US, the difference between a W-2 employee, which is like a full time employee, and a 1099 employee is that you can't really tell the 1099 employee, like legally, ethically, or technically or whatever, you can't tell them exactly when to do it or where to work from or what stuff to do. You really could just tell them, "Here are the things I need done, and here's the timeline in which I need them done. Here are some conditions around it." Some of the conditions are, you can be like, "Well, you need to check in with me every week to show me what you're doing." Or, "I need to know that you're going to use this particular programming technique versus that, because it will affect the final outcome." That's cool, but you can't tell them, "You know, you need to work these hours at this place using this laptop," or something like that. You can't do that. For me, I embrace that. I say, "Look, I'm not telling you that you need to do it a certain way, but I am telling you that I need a certain level of communication. I need a certain output. I need it done in a certain amount of time," and then I want you to handle it from there. Like, you're a contractor. You're 1099, which to me means I'm going to tell you what to do, and you're going to handle it. We just worked with a contractor that is someone we've turned to on a regular basis, and he's just this extremely mature, incredibly effective communicator. I basically kind of pitched to him the original idea of the project, told him what our budget looked like and our timeline, and he said, "Yep, I can do it. That time line. That budget." Asked me a couple of questions along the way, checked in with me probably once or twice a week on Slack, just kind of let me know what was going on, invited me into his project management tool that he uses for everything, and at the end of the project said, "I'm ready to do a delivery. Here's what I have. Here's the documentation I wrote up for your client, and then I have a couple hours left. I'll do the deploys. Everything's good to go." I hardly had to think about this project the entire time he was on it. I'm not making a lot of money off of the project, because he's a contractor. He costs a lot of money, and the amount I'm paying him is close to the amount we're charging the client, but I had to do almost nothing. That's what I'm paying him for, to do fantastic work, to manage himself, to communicate with me, and just kind of to get stuff done. To handle it, right? I've also brought in other contractors where I'm paying them a whole bunch of money, and then I'm spending all my time on it, and it's just like, "If I'm going to do that, then I'll just do the work myself," right? If you're a freelance contractor, if you are ... Especially as a web developer, there's a whole world out there of people who are freelance contractors who are burning bridges left and right. I've talked to a lot, lot, lot of business owners who try to bring in freelance contractors and say, "Nope. Not going to do it. Never going to do this again. It was a total awful experience." Being this one guy that I'm talking about right now, being like him, he will get work from us forever. Like, forever. If somebody else is just in desperate need, I'll give them his name, but I don't want to give too many people his name because then he won't be available when I need him. Yeah, you've got to be a good coder, but like, just being a grown-up and like managing your stuff goes so far. It's crazy that that is the case. It is crazy that that's the case. Just so you know, I'm not just picking on freelancers. I could go on a whole nother rant about employees, people who apply to our jobs, and the weeding out process of people who actually submit applications to be full time. But for right now, I just want to talk about freelancers. It's just like, what I want to know is that bringing you on the project is going to make my life easier. I'm going to do less work. I'm going to think about this less. When you need something, you're going to come to me about it. This is true for my employees as well. You're going to come to me about it, and you're going to ask me questions, and I understand. Like there are other companies that probably do all of that for you, and for freelancers it's probably a lot easier to kind of jump into some massive corporation where you're just a cog, and they just need to add more cogs, and everything is set up for you. I get that being a freelancer for me is probably a lot harder than being a freelancer for somebody else, but I'm not alone. If you really want to set yourself apart as a freelancer, there's certain things you can do, but one would just be communicate, self-manage, basically be like ... Be a company. Like, I don't get to expect my clients to manage my time for me, or to initiate communication for me. I'm on top of that. So as a freelancer, be a company. Manage your time. Communicate well. Manage expectations accordingly. If you do that, you're going to set yourself above 98% of everybody else that's out there. The things aren't that difficult, but they really show, like, your level of attention and care, and that can go a long way. I hope that I'm not making ... Like, if you freelanced with us before, I'm not trying to throw shade on you, whoever you are. I'm sure you were fine. Really, but I just want to pitch to potential freelancers or current freelancers that there's a different way, and if you do that different way, it sets you apart so much that it really will be to your benefit. I hope this helps. If you have any questions about that, reach out to me on Twitter @5MinuteGeekShow. Check out other episodes at FiveMinuteGeekShow.com. Subscribe, iTunes, RSS, all that kind of stuff. If you like the show, and you're a freelance contactor, go be that 2% of amazing freelance contractors. If you like the show and you're not a freelance contractor, I don't know. Rate it, iTunes and all that kind of stuff. Thanks. Until next time, Matt Stauffer, Five-Minute Geek Show. Son: Five-Minute Geek Show? Matt: Yeah. When you're singing it. Can you do that? Son: Say "Five-Minute Geek Show?" Matt: Yeah, but sing it with that song. Son: (Singing) “I am iron man….” Five-Minute Geek Show. Matt Stauffer: Perfect. My man.
Jake and Michael welcome to the show Matt Stauffer and discuss how he got to where he is today, life as technical director of Tighten Co., hiring and onboarding new developers, and his very soon to be released book Laravel Up and Running.
Small, measurable, manageable commitments help people like me move toward their goals. Transcript: Hi, I'm your host, Matt Stauffer, and this is Episode 91 of The Five Minute Geek Show, a weekly show about development and everything around it. It's one topic per episode about front end, back end, mobile project management, design, entrepreneurship, whatever. If it's geeky it fits. Today we're going to be talking about goals and commitments. I know a lot of people who really value the idea of setting goals and measuring your, long goals. I have a lot of friends who really care about analyzing others. The word that they use for it I forget but basically having metrics about everything you do, how often I eat that, how often I do that. I do some of those things. I've been tracking my food and calories through either ... I think the old one was called Calorie Counter and the new one's called My Fitness Pal for years. It really helps me have a good understanding of what my health is like and everything so I'm very thankful for those things. One of the things that I've noticed is a lot of those folks who think deeply about journaling and planning, executing, all that kind of stuff, they all talk about setting goals. If you haven't had some teacher or parent or someone at some point in your life tell you you need to set goals I'd be extremely surprised. Why is it that people like me have so much ... Okay. I have a lot of trouble setting and focusing on goals. I set them and they're really great and a nice idea but some of the things I run into are first, it's really hard to predict what my goals should be. It's like how much should I increase sales by? Well, I guess 10%. Is that realistic? Is that good? Is that bad? How do I really know, I've just kind of made up things. It's good to focus on those made up things but often it's just hard for me to really use them as motivation. Additionally, the hardest part for me is that they're not present. Unless you do a really good job of keeping them at the forefront of your mind or checking in on them regularly or whatever else which I don't do you set the goal and then you feel guilty when you had forgot about it for three months. That's not to say that goals are bad but if you're like me you might find that there's something a little bit better which is small, measurable commitments. Instead of saying, "I'm going to set a goal to lose a certain amount of weight." Instead make a commitment, "I'm going to make a commitment that I'm going to cap my food at 1800 calories a day." "The source of my calories is going to be 40% protein." "I'm going to make a commitment that I'm going to make 10,000 steps everyday." What that ends up meaning is when I have that doughnut in the morning that means in the end of the day I'm scrambling a little bit to figure out how am I going to get my protein in or the next day when I feel really bad about that it's going to motivate me to be less likely to have that doughnut. When it's the end of the day and I've only hit 7,000 steps and I want to go to sleep I say, "Hey, I made a commitment." My wife knows that I made that commitment and so she's okay when I, like a crazy person, go walk around in circles in my neighborhood for 45 minutes to get my steps. Those commitments are easy to make because I say, "I committed to do this thing, therefore I'm going to do it." It's easy to justify the decisions in response to it because it's very hard both to myself and to other people to say, "Well, I need to lose weight. Therefore, I'm going to go walk." That's definitely, it's a true thing but it's vague, it's very distant, and it's very easy to justify away. "Well, I can just skip walking this time, I can just whatever. How much is it really going to matter? I'm already making progress, blah, blah, blah"... but... "I committed to walking 10,000 steps everyday." You don't justify that away. If you don't make 10,000 steps that day it's because you're breaking your commitment. That's not like you should feel guilty or whatever but it's much closer to the wire thing to fulfill. "I committed to 10,000 steps today, I'm going to do 10,000 steps today, that's it." My hope is that I make commitments that are in line with my values. My value isn't actually losing weight, it's just being healthy. I just want to give examples of things that are maybe small, measurable, and very clear when you broke them in the moment, in the immediate space. Commitments might be a good way to reach goals. By doing that I now have to worry less about being able to predict what my goals should be in the future. I have to more just say what are healthy decisions to make that are in the same direction as that goal. With my physical health it's very easy because I know what things are healthy. With things that are a little more abstract sometimes it's a little bit tougher. What are the things ... What are the immediate commitments that you can make right now to get you to the place that you want to be in your career or in your business' growth? Well, let's say you want to become a better developer. Well, it might mean saying, "I commit that every single day I will work through my lunch break and I will watch one Laracasts video and I will read at least 10 pages of this book. Regardless of anything else I will do that or every night I'm going to work through this thing or I will spend one hour on this site app every single day so I have a portfolio piece," or whatever else it ends up being. Maybe if you're a business owner it will be, "Every single day I will put at least 30 minutes into one of 10 business development tasks. I will either blog or make phone calls or follow-up with these people or whatever. I will spend at least 30 minutes doing that every single day regardless." You didn't say, "I'm going to increase my sales," or, "I'm going to be the best developer ever." You said, "Every single day I'm going to do X amount of things to get myself ... Or every week or whatever to get myself moving in the direction I want to go." I think the primary goal of this one is just saying that if you're like me you may find that goals are nice but often just induce guilt when you forget about them. Small, measurable commitments that will move you in the right direction are a lot easier to keep fresh because you just get in the pattern of them. It's a lot harder to break them and it's a lot easier to justify doing things that might seem a little weird for the sake of them. It's a lot harder to justify not doing them when they're small. It's not as if you're like, "Well, I'm going to lose 50 lbs." Well, it's very easy to feel vaguely non-committal to that when time comes and it's family doughnut time. It's a lot easier to say, "I'm going to walk 10,000 steps today," and you're a little tired and say, "You know, it's only 2,000 more steps and I committed, I'm going to do it." I hope this helps someone. Thanks for listening to The Five Minute Geek Show. We're at Five Minute Geek Show on Twitter number five. Fiveminutegeekshow.com. You can subscribe to us on iTunes via RSS. If you like the show share it with your friends right on iTunes. Thanks. Until next time, Matt Stauffer, Five Minute Geek Show.
Notes: Equality vs Equity Graphic The New Jim Crow Carlos Doesn't Remember - The Revisionist History Podcast Transcription: Hi. I'm your host Matt Stauffer, and this is episode 88 of The Five Minute Geek Show, a weekly show about development and everything around it. It's one topic per episode about front end, back end, mobile, project management, design, entrepreneurship, whatever. If it's geeky, it fits. Today, we're going to be talking about diversity in hiring. So what I mean by that is: I own a business, I co-own a web development business, and I also care deeply about equality, equity, diversity, and opportunities being given to people who don't have so many opportunities. I'm highly aware of the fact that as a white American male--Christian, straight--I have basically the best gig there is. It's very difficult for someone to have it better than me. By this I don't mean, like, "My life is great, and your life is bad." I mean: I have privilege, and I have power, and I have all sorts of things going for me. I've talked a lot about this before a lot. I was on a call with some friends the other day who are also business owners, and in our conversation I found words for something for the first time, and wanted to share it. It's really helpful for me to think it through. We were talking about diversity in hiring, talking about this question: "How do you hire either employees or contractors in a way that works towards bringing about a more equitable world?" I think the first step we tend to take is saying, "How do we do more diverse hiring? How do I make my company not just a whole bunch of white dudes?" This is okay. This is a good start. Diversity for the sake of diversity is a good thing, but I think it's a too-basic understanding of it; "I have all white dudes. That's not the way it's supposed to be, therefore I will change it." Let's talk about moving past just that. One of the more important things to do next is to ask yourselves questions along the lines of, "What is the reason that I want diversity, and what is the reason I don't have diversity right now the people I work with?" You'll start getting into interesting questions--talking about how common it is to hire people we already know, seeing what people's pre-existing friend networks do for them. One thing you'll often notice is that people who have a lot of power, and privilege, and networks, tend to get internships or first jobs based on relationships with friends. Maybe your dad's college buddy has an agency, so you intern with him, and that's an opportunity that other people don't have. You get to go to college, and your parents pay for your college, and so you can go to college for 4 years without having to work, and so you get opportunities while you're there. Whatever it ends up being. Heck, just the entire concept of the unpaid internship is very limited to people with a lot of money or ability in the first place. There's all these things that come into that kind of conversation. Let's also notice that we have primarily white male business owners. People in general, not just White people, have networks that generally reflect their ethnicity. White people in the US are more guilty of having networks that only reflect their ethnicity than anybody else, but everybody's guilty of it. And maybe it's not even "guilty." It's just life. And with that being the case, if you're hiring the people you know, or you're hiring the people you run into more often, or a little more subconsciously, nefariously, if you're hiring the people who are more like you and make you more comfortable, then that's going to have a lot of influence on who you have working with you. We've got to have the conversation about this. I hope we will choose to say, first, "I want my company to be more diverse"... but hopefully also, second, "That is the case not just because I feel some external pressure, but because I recognize that having people that are different than me on my company is good for my company, and I recognize that there's people in my country who have less opportunities, and I want to be a part of bringing about equity. I want to bring about justice." This is good. If you've never heard of the term "equity", and you wonder why I'm using it instead of "equality", I'll link a graphic in the show notes that explains it really well. Basically, the difference between equity and equality is, equality means treating everybody the same. A lot of people come out of, let's say, 500 years of racist United States history, and say, "Okay, that was bad. Now everybody should be treated the same." That's equality. The problem with equality is it's assuming that everybody has an equal playing field. All you have to do to be equal, to treat people well, is to give everybody the same thing. Equity says, "Whoa. 500 years of difference makes 500 years of difference. We don't get to just now, all of a sudden, make everything exactly the same." Equity means, for example, recognizing that white families have had that many years to build up wealth. We keep wealth in a lot of different ways. We keep wealth in houses that we own, or in savings, or in tables that get passed down when you get married or whatever. There are so many things that we keep wealth in. The wealth that we have gathered, we have had the ability to gather in a way that other people have not had the ability to gather. If everybody has an "equal" starting point, just wealth alone would put us in this much different place, not even talking about all of the differences that have to do with education, and opportunity, and jail rates. If you want to think about that, go read the book The New Jim Crow. All those things are striated along racial lines in the US. There's just so many pieces where things are different and have been different for so long that you can't just come today and just say, "Okay, treat everybody the same. Now you're done." It doesn't work. Equity says, "You treat each person uniquely based on who they are, and the experiences they have, and the opportunities they have, such that the goal is for everyone to be able to end up in the same place." I'm not talking about socialism, you know, some crazy thing that will turn you all of. I'm socialist-ish, maybe, but I'm not talking about something crazy in terms of, like, "Well, nobody should be able to work harder or work less, or lazy people should get the same as everyone else ..." No, no, no. You should put extra work in to give people the opportunity to have the same chance for their hard work to get them a good thing. It's going to take more work to help someone who has a historic lack of opportunities, and lack of wealth, and lack of education, and lack of whatever else. It's going to take more work to help that person have an equal amount of opportunity than it is to give someone who has privilege and power and all that kind of stuff historically to get the same amount of opportunity. In the end, they should have to do the work, and they will do the work. It's not about giving something a freebie, but it's about recognizing that someone has to do the work to overcome those disparities, so that everyone has an equal opportunity. You could say, "Oh, well, pull yourself up by your bootstraps. Take a look at this one guy who escaped poverty; why aren't you all like him?" If you want to think about that, Malcolm Gladwell has a podcast, and he has a couple of episodes recently that I'll link to talking about this exact same thing. Talking about what happens when big schools like Stanford and Yale have programs to basically give free rides to really bright students from really difficult neighborhoods, and the episodes talk all about that. I'll link that in the show notes. In general, it's just not that easy. Yes, a few exceptional people escaped, but the difference is, with white folks, white males especially, we don't have to be exceptional to graduate college. We don't have to be exceptional to get a good job. We just have to do okay. We have to be in the top 50% of our class or something like that. With people of color, with women, with people of historically oppressed groups, they have to be in the top, like, 1%, and overcome like 10 million other things. Again, we want the final amount of opportunity and freedom to be equal, and therefore we must be equitable. All of that set up, when we're talking in the hiring context, ends up with me having said a thing that I wanted to share here, which is: "Somebody, somewhere, somehow is going to have to do the work to make that difference." One of the great examples of it I love, often, that we use in helping students understand this, it's basically this game where everybody starts in a line, and you say, "Your goal is to get to the other wall." Then, we start asking questions about your privilege. "Have you ever had this? Have you ever had that?" Everybody who answers yes to any question has to take a step forward--before the race even begins. Basically, people with privilege and power, where your parents had this kind of money, or your parents had this kind of education, or your schooling had this kind of thing, whatever, it ends up being you take a step forward, and another, and another, and by the end, before the race even starts, you recognize that the primarily white males end up basically a foot away from the wall. The people of color, and the women, and everyone else, end up basically against the back wall. What we're recognizing here is, if we all have a starting point that is different, what we want is not to carry somebody over the finish line. We want to do the work to get everybody at the same starting line. Somebody's going to have to do that work. A lot of programs, and a lot of democratic type stuff says, "Well, the government should be responsible for that." I think that the government should help! Then a lot of, especially religious right, conservative people say, "The government shouldn't do it. The church should do it. Individuals should do it." Okay, cool, great. Church should do it. Individuals should do it. Great. Awesome. What I'm just saying is everyone should do it. I want the government to do it. I want the individuals to do it. I want religious organizations to do it. But for me, as a business owner, hiring is a place in which I don't want to carry somebody over the finish line of working for me. I don't want to give someone a job just because they're a woman or a person of color or whatever else. However, there's an opportunity in hiring for me to make things fair and for me to act with equity. What that ends up looking like is, sometimes, I need to put more work into bridging those gaps. I can talk at another time about what that more work looks like in my specific context. I'm way out of time. This is going to be the longest Five Minute Geek Show ever, but that foundational concept is really weird to say out loud, but if we are saying we want to make a difference, we want to see diversity reflected, we want to see people all have equal opportunities, it's not just as simple as saying, "Okay, now where are the qualified women and people of color who want to come work for me?" You know what I mean? I'm not saying anybody in particular I know says that, but that's kind of maybe my first response. When I say, "Okay, I want to hire diversely." "Okay, well where are they?" That's, like, common refrain kind of thing, right? The thing is, it's not just as simple as, "Where are they?" It is, "Am I willing to put in the work?" Somebody's got to put in the work to change the starting line so everybody has the same starting line, in your hiring process, right? Are you willing to put in that work? Are you willing to make a commitment to putting forth effort and money to changing the starting line of getting a job with you, or getting a job in your industry, or whatever else? Yeah, I'd love to talk more about this. Maybe I'll do another Geek Show about this later, but I hope this helped someone think through these things. I'd love for you to contact me if you have any questions. I'm @StaufferMatt on Twitter. You can also hit me up at @5MinuteGeekShow on Twitter, or we're at FiveMinuteGeekShow.com. That's it. Thanks for listening!
Jacob and Michael catch up for the first time since returning from Laracon, discussing some of their favourite parts, talks, and memorable parts of the three-day event.
I was lucky enough to snag a little bit of Matt's time to discuss the CMS tools that he and he's company are using, and to ask him the ultimate question: What are the features of the holy grail CMS? Links: https://tighten.co/ http://jigsaw.tighten.co/ http://www.fiveminutegeekshow.com/ http://www.laravelpodcast.com/ https://laravelupandrunning.com/ https://mattstauffer.co/ The Holy Grail of Content Management 5 minute geek show episode: http://www.fiveminutegeekshow.com/6 Ryan Tablada, Maks Surguy, Jake Chapman, and Alex Dover CMS Discussion: https://www.youtube.com/watch?v=Vq1Nu1toANQ Subscribe to my YouTube channel at: https://www.youtube.com/channel/UCPO3lIwVjPnvITrNhM6Sk2Q Follow me on Twitter: https://twitter.com/tihomiropacic Follow CMS Podcast on Twitter: https://twitter.com/cms_podcast Follow CMS Podcast on Facebook: https://www.facebook.com/cmspodcast
Our intrepid podcasters delve into hidden traitor mechanics: what they are, what makes them tick, and when they are and are not fun. Then, in the second half of the show, they take a look back at all that's come so far. Or their last nine episodes. One of the two. Intro Gag: Comin' to ya' live from your gross cousin's internet search history, my name's Tom Rich and with me as always is not nearly enough brain bleach, and this is the Mildly Alarming Podcast. Episode 63: The Trial of Gary Smoolihan. Check out 64 Oz Games on Twitter or at their website. Proof of the lie that is "Matt Stauffer": Segment 1: The Hidden Traitor Mechanic We talk about some stuff here? Episode Sponsor: Ordinary Jim's Segment 2: 10th Episode Retrospectravaganza! We talk about more stuff here! Outro Gag: Join the Mildly Alarmy!
The Five Minute Geek Show is typically around 8 minutes long and about something that no self-respecting geek would ever brush the Cheeto dust from his fingers to discuss. In this bonus episode, your Mildly Alarming hosts demonstrate what a real 5 Minute Geek Show would sound like. For further reading on whether Star Wars or Star Trek would win in a fight, try this surprisingly detailed essay. And here's a YouTube clip of Worf, Riker, and Picard being snarky about laser weapons: https://youtu.be/w4JUxQe4P4g?t=19 The theme song for this episode was composed by Matt Stauffer and performed by Johannes Stauffer using only his voice and some wax paper wrapped around a comb.
I talk with Matt Stauffer about learning programming languages and functional programming. Erlang: Erlang: The Movie Erlang: The Movie II - The Sequel Learn You Some Erlang Scala: Free Course on Functional Programming in Scala Reading Material in Order: Scala for the Impatient (Free chapters available) Programming in Scala Functional Programming in Scala (Learn Scala Before Reading)
Matt Stauffer and Shawn McCool have a conversation about Event Sourcing. Event Sourcery: An Introductory Course into DDD, CQRS, and Event Sourcing Broadway on GitHub Shawn's Scala Event Sourcing Learner Project Robin Malfait's Event Sourcing Learner Project Coursera Functional Programming Course (Free, you can start at any time) Errata: Shawn mentioned that Beau wrote the Qandidate project. The project is Broadway from Qandidate Labs. Beau did not, although he has contributed.
We’re republishing this episode to (hopefully) get the right episode out to listeners using feeds/podcasting tools. It was originally linked to Ep. 53’s audio, and some podcast aggregators may not get the updated version Everything old is new again! Sort of! We chatter about Chris' 1% car and how rough it is to upgrade. Then we babble about WebOS, LuneOS, and Ed’s experiences running the Spaz open source project. Chris made some open source stuff once too. Do these things! Check out our sponsors: Roave and WonderNetwork Follow us on Twitter here. Rate us on iTunes here Listen Download now (MP3, 44.4MB, 1:01:52) Links and Notes BMW Bluetooth Kits webOS Spaz project HP Touchpad HP/Palm acquisition LuneOS OpenCFP Matt Stauffer’s Five-Minute Geek Show
Everything old is new again! Sort of! We chatter about Chris' 1% car and how rough it is to upgrade. Then we babble about WebOS, LuneOS, and Ed’s experiences running the Spaz open source project. Chris made some open source stuff once too. Do these things! Check out our sponsors: Roave and WonderNetwork Follow us on Twitter here. Rate us on iTunes here Listen Download now (MP3, 44.4MB, 1:01:52) Links and Notes BMW Bluetooth Kits webOS Spaz project HP Touchpad HP/Palm acquisition LuneOS OpenCFP Matt Stauffer’s Five-Minute Geek Show
I talk with Matt Stauffer and Dan Sheetz from the web-agency Tighten about what developers should know about business.
Download this episode, in which we’re joined by special guest, Matt Stauffer, to talk about bootstrapping a SaaS while running a consultancy full-time, happiness, Laravel, structuring your day, hiring developers, work & family, gritty TV shows, and Star Trek! Matt Stauffer – Twitter, Website Tighten Co – Matt’s consulting company Karani – Matt’s SaaS application. Eric Barnes’ Laravel News Artisan Files – interview with Matt. Matt’s series on Laravel 5 The Long, Slow, SaaS Ramp of Death An evening with the Star Trek TNG cast (video clips) Discuss this episode in the forums >>
Download this episode, in which we’re joined by special guest, Matt Stauffer, to talk about bootstrapping a SaaS while running a consultancy full-time, happiness, Laravel, structuring your day, hiring developers, work & family, gritty TV shows, and Star Trek! Matt Stauffer – Twitter, Website Tighten Co – Matt’s consulting company Karani – Matt’s SaaS application. […] The post Bootstrapped, Episode 51, “Special Guest: Matt Stauffer” appeared first on Bootstrapped.fm.
In our very first episode, Adam talks with Matt Stauffer of Tighten Co about OOCSS, BEM, SMACSS, preprocessors, common architecture pitfalls, and CSS semantics. "Organizing CSS: OOCSS, SMACSS, and BEM" by Matt Stauffer Nicole Sullivan on Media Objects SMACSS "MindBEMding" "Bootstrap without all the debt" "Medium's CSS is actually pretting f***ing good" "About HTML semantics and front-end architecture"