POPULARITY
Paul English is a perpetual founder. Since high school, he's started 3 philanthropies and 8 companies—ranging from e-commerce, to gaming, to GetHuman, a site that helps users access human customer support. His best-known venture is probably KAYAK, a travel website launched in 2004 over two gin-and-tonics with co-founder Steve Hafner. Using a simple interface, KAYAK specialized in search; and it made partners out of potential rivals like Orbitz and Expedia by charging them a fee to send users to their sites. Eventually KAYAK became one of the most-searched "K" words on Google, and in 2012, it sold to Priceline for $1.8 billion. A few years later, Paul started yet another company, Lola.com—and says he plans to launch many more.See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.
As the co-founder of Kayak and GetHuman, Paul English has deep insight into the ways technology can bring people closer to what they're actually looking for. Robb and Josh welcome Paul for an exploration of the ways that conversational AI can become the thin UI layer that obscures all of the messy technology cluttering our lives. Having recently co-founded the Applied Artificial Intelligence Institute at UMass Boston, Paul brings his thinking on how generative AI fits into our technology tapestry to a practical conversation about our changing relationship with machines.
Can you name a millionaire tech mogul with bipolar disorder? Well, you can now. Today's guest is Paul English, the tech mogul best known as the founder of travel website Kayak. As more and more celebrities in the arts publicly share their bipolar disorder diagnoses many people in the business world still choose to conceal their illness due to stigma and discrimination. Join us as Paul tells us his story of living with bipolar disorder, including some of the stigma he has faced in the workplace. To learn more - or read the transcript -- please visit the show's official episode page. Guest Paul English is the founder of Boston Venture Studio. Paul has previously co-founded and successfully sold six startups — Kayak, Lola, Moonbeam, GetHuman, Boston Light and Intermute. Paul is also the founder of four nonprofits — Summits Education in Haiti, Embrace Boston, The Winter Walk for Homelessness, and the Bipolar Social Club. Paul is the subject of Tracy Kidder's book, “A Truck Full of Money.” You can hear an interview with Paul on “How I Built This” with Guy Raz, and you can see his video from TEDxBoston in 2022. Host Gabe Howard is an award-winning writer and speaker who lives with bipolar disorder. He is the author of the popular book, "Mental Illness is an Asshole and other Observations," available from Amazon; signed copies are also available directly from the author. Gabe makes his home in the suburbs of Columbus, Ohio. He lives with his supportive wife, Kendall, and a Miniature Schnauzer dog that he never wanted, but now can't imagine life without. To book Gabe for your next event or learn more about him, please visit gabehoward.com. Learn more about your ad choices. Visit megaphone.fm/adchoices
This week we will learn about Lola, a new dating app launching in Boston and New York this summer. Today's guest is Paul English the founder of six startups and co-founder of Kayak, a travel industry giant he sold to Priceline for 1.8 billion dollars. Paul is passionate about finding a better way and uses his creativity to solve problems. Years ago, when online dating himself - Paul could identify issues and became compelled to solve the frustrations many faced with existing dating apps. It was a match on Bumble with Rachel Cohen, who became his girlfriend, and now the couple is taking on a new challenge with the upcoming launch of their dating app, Lola. Through Lola, Paul and Rachel plan on creating a new way to connect. Paul shares the vision and inspiration behind Lola, and learn about the exciting possibilities that lie ahead for this new dating app. Paul English is the founder of Boston Venture Studio and he's also an entrepreneur, and philanthropist who has previously co-founded and successfully sold six startups – Kayak, Lola, Moonbeam, GetHuman, Boston Light, and Intermute. Paul is also the founder of four nonprofits – Summits Education in Haiti, Embrace Boston, The Winter Walk for Homelessness, and The Bipolar Social Club. Paul is the subject of Tracy Kidder's book "A Truck Full of Money" and you can hear an interview with Paul on "How I Built This" with Guy Raz and view his video from TEDxBoston in 2022. I've watched and listened to it all and I can't tell you how special this man is!Kerry Brett and Paul English discuss the common struggles many have with online dating and how Paul plans on changing the online dating culture and improve and simplify the over dating experience.How Lola will filter out terrible daters.How Lola will use A1 to give the users better matches.Lola will be very safe for women.Lola will have a component built into the app that will find a place in the middle for you to meet.How Lola will use machine learning to help find you a better date.Lola will cut down catfishing.Lola will filter out people who don't practice good behavior.
Subscribe, 5 ⭐ And Please Write A Review! Listen, Watch, Review, and Share With A Friend! #tampa #business #podcast #69b2b #girthyroi #sweatequity
GotTechED the Podcast Episode #123:17 EdTech Tools to Get Ahead of 2023 (Part 2) Welcome back to GotTechED the podcast this is Episode 123 called “17 EdTech Tools to Get Ahead of 2023 (Part 2)” In this episode, we'll share 17 unique and fun edtech tools in a variety of educational categories. Guise will also talk about his experience at the 2022 Teach Better Conference and give us a sneak peek at an upcoming bonus episode of GotTechEd. This is another episode you don't want to miss, check it out. Segment 1: UpdatesGuise talks Teach Better Segment 2: Edtech Tools, Resources, etc. to check out https://www.playphrase.me/ (Playphrase.me) - type a phrase and see what movies says it https://neal.fun/ (Neal.fun) - Type in your bday and see what has happened since https://gethuman.com/ (Gethuman.com) - get the number for any company to speak to a human https://privnote.com/ (Privnote.com) - send a note that destructs after its read https://temp-mail.org/ (Temp-email.org) - temporary emails https://psdfreebies.com/ (Psdfreebies) - editable templates of flyers/posters https://www.beautiful.ai/ (Beautiful.ai) - presentation templates https://fakeyou.com/ (Fakeyou.com) - type a message and pick a famous voice https://learn-anything.xyz/ (learn anything xyz) - populates articles basics of that topic https://jitter.video/ (Jitter.video) - motion graphic templates https://svgartista.net/ (svg artista) - animation logos https://vocalremover.org/ (Vocalremover.org) - separate music and voice https://www.calligraphr.com/ (Calligraphr.com) - turn any sentence into calligraphy https://360gigapixels.com/ (360gigapixels.com) - 360 degree pictures https://spik.ai/ (BigSpeak.ai) - voice-over https://incompetech.com/ (Incompetech.com) - royalty free music http://www.oldversion.com/ (Oldversion.com) - old versions of software Segment 3: Where to Find GotTechEDDo us 3 favors Subscribe to GotTechED the Podcast https://itunes.apple.com/us/podcast/gotteched/id1358366637?mt=2 (Apple Podcasts) https://open.spotify.com/show/7zyzfCkSDNHkKdqxmh9XLB?si=YhSdMa6BQVmcLHbSrYxE9Q (Spotify) https://play.google.com/music/listen?u=0#/ps/Indeizidhz4h37mawfylwdgco4y (Google Podcasts) https://www.stitcher.com/search?q=gotteched (Stitcher) https://www.youtube.com/channel/UCMIQwu39Tkow3kduRQAH85w?view_as=subscriber (YouTube) https://twitter.com/WeGotTechED (Twitter) https://www.facebook.com/WeGotTechED/ (Facebook) Write us an Apple Podcast Review! Tell your friends about http://www.gotteched.com (www.gotteched.com) Tell your friends about the Teach Better Podcast Network Music Credits:The Degs: Shotgunhttp://freemusicarchive.org/music/The_Degs/ ( http://freemusicarchive.org/music/The_Degs/) @bensoundshttps://www.bensound.com/ ( https://www.bensound.com/) Subscribe to our Podcasthttps://itunes.apple.com/us/podcast/gotteched/id1358366637?mt=2 (Apple Podcasts) https://open.spotify.com/show/7zyzfCkSDNHkKdqxmh9XLB?si=YhSdMa6BQVmcLHbSrYxE9Q (Spotify) https://play.google.com/music/listen?u=0#/ps/Indeizidhz4h37mawfylwdgco4y (Google Podcasts) https://www.stitcher.com/search?q=gotteched (Stitcher) https://www.youtube.com/channel/UCMIQwu39Tkow3kduRQAH85w?view_as=subscriber (YouTube) https://twitter.com/WeGotTechED (Twitter) https://www.facebook.com/WeGotTechED/ (Facebook) Connect with us on Social MediaGuise on Twitterhttps://twitter.com/GuiseGotTechEd ( @guisegotteched) Nick on Twitterhttps://twitter.com/NickGotTechEd ( @nickgotteched) GotTechED the Podcast on Twitterhttps://twitter.com/WeGotTechEd ( @wegotteched) Join the Conversation and our PLNOur favorite part of recording a live podcast each week is participating in the great conversations that happen on our https://www.facebook.com/WeGotTechED/ (Facebook Group Page). Need a...
Paul English is on the podcast this week. Paul is a serial entrepreneur, since high school he has founded 8 companies and 4 philanthropies ranging from gaming to fintech to GetHuman, a site that helps users access human customer support. Paul is best known for disrupting the travel industry with online travel search engine Kayak, which he sold to Priceline in 2012 for $1.8 billion. If you have any inkling of starting your own business, you wanna listen closely to Paul, because in this conversation, we discuss everything from how to validate a product idea to how to hire the right talent. Paul also talks about his lifelong struggles with bipolar disorder that he had severe depression and he would go days at a time with tiny amounts of sleep. And without further ado, here's my conversation with Paul English.
In this episode of the Millionaire Mindcast, we have a remarkable guest, Paul English who shares insights on his journey to building a huge life, creating maximum productivity, the key to balance life, time management, how to formulate investment decisions, health hacks that work, and achieving a life with minimal stress while giving an impact on the world! Paul English is a Boston-based serial entrepreneur and activist, a former lecturer to different schools, and Co-founder of Lola, Kayak, Xiangqi.com, Moonbeam, GetHuman, Boston Light, and Intermute. He is also a nonprofit co-founder of King Boston, Summits and the Winter Walk. Paul also serves on the boards of Partners In Health, Flying Kites, Village Health Works, and Humanity Rises. Paul co-founded Kayak in 2004. It is a travel company that was sold for $2 billion. As he makes some pretty good money at that time, he never forgets to share it with his team. In fact, over half of his employees became a millionaire. But prior to Kayak, Paul had already created five (5) successful companies that have a loving culture. He makes sure his team is the priority before the customer and the profit. How did that happen? The customers get surprised at something that they couldn't get anywhere else; accordingly, all the finance will fall into place. Moreover, Paul has always been transparent and honest about what things are going well and whatnot, and treats employees the same way. He creates a working environment that values people, and appreciates every single employee to work with the same side of things. Thus, makes them invigorated, and excited about their job. Presently, being passionate about helping people, Paul wanted to make money as much as he can so he can give more impact to his 3 non-profits companies, and to the world as well! Some Questions I Ask: How long have you been living kind of this business, life, and balance in your world? (01:35) When you sold the Kayak company for $2 billion, what was that feeling like? (02:53) As you guys went into creating Kayak, was that the vision of where you thought you guys would end up? (04:59) How would you say your company culture was? (06:18) What do you think it is about you based on some of the reflections you've had that you've done really well as a leader or gaps that you need to attack? (09:19) How do you keep and create that balance when you're in the trenches to get some traction and momentum behind it? (10:48) In terms of your morning or evening routines, which one do you like better, do you feel like is a ‘must-have” and staple that everyone should be incorporating in to serve at such a high level? (13:55) How have you shown up to get a little bit more sleep? (15:52) What has that kind of journey to enlighten or awareness look like for you? (19:14) Are there any other characteristics that you see in others successfully that you've worked with or that have really worked well for you? (22:12) What was your motivation for becoming an entrepreneur? (25:14) Why do you go and continue down this grind and this path? Where's that leading you to what's your focus on today? (29:25) How did you analyze whether or not it made sense to go after some of these businesses from a financial aspect? (30:56) In This Episode, You Will Learn: 3 priorities that Paul working every day (05:25) The Fifteen Commitments of Conscious Leadership book (08:20) How Paul mitigate his weaknesses (09:55) The Secret to Minimizing Stress (12:10) Paul health hacks (17:16) How Paul formulate his investment decisions (27:11) Quotes: “Team first, customer second, and profit third.” “If you cling to the past you just creating stress for yourself.” “Work is all about ideation and how do you invent and solve problems.” Connect with Paul English on: Lola Moonbeam Kayak LinkedIn A Truck Full of Money book by Tracy Kidder
Paul English is a perpetual founder. Since high school, he's started 3 philanthropies and 8 companies—ranging from e-commerce, to gaming, to GetHuman, a site that helps users access human customer support. His best-known venture is probably KAYAK, a travel website launched in 2004 over two gin-and-tonics with co-founder Steve Hafner. Using a simple interface, KAYAK specialized in search; and it made partners out of potential rivals like Orbitz and Expedia by charging them a fee to send users to their sites. Eventually KAYAK became one of the most-searched "K" words on Google, and in 2012, it sold to Priceline for $1.8 billion. A few years later, Paul started yet another company, Lola.com—and says he plans to launch many more.
Paul is the Founder and CTO of Lola.com, the easiest way for businesses to manage their employee travel. Previously, Paul was CTO of KAYAK, a travel company he co-founded in 2004, took public in 2012, and sold to Priceline in 2013. Paul is also the founder of GetHuman, a service created to give consumers excellent customer service at any company, Intermute, a security software company, and Boston Light, a small business ecommerce startup he sold to Intuit.Paul is the subject of Tracy Kidder’s book A Truck Full of Money, published by Random House in September 2016.You can read more about Paul at: paulenglish.com.Check out Paul's upcoming Podcast app at moonbeam.fm.We have a brand new podcast coming soon! To learn more about the upcoming show, sign up for the newsletter at smartpeoplepodcast.com/new.Become a Patron!Help us grow and become a Patron today: https://www.patreon.com/smartpeoplepodcastSponsors:LinkedIn Jobs - When your business is ready to make that next hire, find the right person with LinkedIn Jobs. Your first job post is free. Just visit https://linkedin.com/smart.FundRise - See for yourself how one hundred thirty thousand investors have built a better portfolio with private real estate. Go to fundrise.com/smart.Audible - New members can try Audible free for 30 days by going to audible.com/smart or texting smart to 500-500.Donate:Donate here to support the show!
What would be the top piece of advice from a serial entrepreneur and angel investor who has been involved in the development and transfer of hands of billion-dollar companies? Aside from being exceptionally successful, our guest has focused on an usually-overlooked aspect of business: the human talent. As a co-founder of several successful companies, including Lola.com, Kayak and many others, our guest shared why he considers choosing the right people as the most important business strategy. This is my conversation with the one and only, Paul English. Paul is the Founder and CTO of Lola.com, the easiest way for a business to manage their employee travel. Previously, Paul was CTO of KAYAK, a travel company he co-founded in 2004, took public in 2012, and sold to Priceline in 2013. Paul is also the founder of GetHuman, a service created to give consumers excellent customer service at any company. Paul grew up in Boston (as did his parents), his father was a pipefitter at Boston Gas Company, Paul’s first job was delivering the Boston Globe, and he went to Boston public schools until he studied music and computer science at UMASS Boston. Paul is the subject of Tracy Kidder’s book “A Truck Full of Money”, published by Random House in September 2016. You can connect with Paul here: Websites: https://www.moonbeam.fm/ Facebook: https://www.facebook.com/paulenglishboston Twitter: https://twitter.com/englishpaulm Instagram: https://www.instagram.com/englishpaulm Linked In: https://www.linkedin.com/in/englishpaulm/ The Passion Accomplished podcast with Alberto Sardiñas is available on www.PassionPodcast.com.
In this episode of the Millionaire Mindcast, we have a remarkable guest, Paul English who shares insights on his journey to building a huge life, creating maximum productivity, the key to balance life, time management, how to formulate investment decisions, health hacks that work, and achieving a life with minimal stress while giving an impact on the world! Paul English is a Boston-based serial entrepreneur and activist, a former lecturer to different schools, and Co-founder of Lola, Kayak, Xiangqi.com, Moonbeam, GetHuman, Boston Light, and Intermute. He is also a nonprofit co-founder of King Boston, Summits and the Winter Walk. Paul also serves on the boards of Partners In Health, Flying Kites, Village Health Works, and Humanity Rises. Paul co-founded Kayak in 2004. It is a travel company that was sold for $2 billion. As he makes some pretty good money at that time, he never forgets to share it with his team. In fact, over half of his employees became a millionaire. But prior to Kayak, Paul had already created five (5) successful companies that have a loving culture. He makes sure his team is the priority before the customer and the profit. How did that happen? The customers get surprised at something that they couldn’t get anywhere else; accordingly, all the finance will fall into place. Moreover, Paul has always been transparent and honest about what things are going well and whatnot, and treats employees the same way. He creates a working environment that values people, and appreciates every single employee to work with the same side of things. Thus, makes them invigorated, and excited about their job. Presently, being passionate about helping people, Paul wanted to make money as much as he can so he can give more impact to his 3 non-profits companies, and to the world as well! Some Questions I Ask: How long have you been living kind of this business, life, and balance in your world? (01:35) When you sold the Kayak company for $2 billion, what was that feeling like? (02:53) As you guys went into creating Kayak, was that the vision of where you thought you guys would end up? (04:59) How would you say your company culture was? (06:18) What do you think it is about you based on some of the reflections you’ve had that you’ve done really well as a leader or gaps that you need to attack? (09:19) How do you keep and create that balance when you’re in the trenches to get some traction and momentum behind it? (10:48) In terms of your morning or evening routines, which one do you like better, do you feel like is a ‘must-have” and staple that everyone should be incorporating in to serve at such a high level? (13:55) How have you shown up to get a little bit more sleep? (15:52) What has that kind of journey to enlighten or awareness look like for you? (19:14) Are there any other characteristics that you see in others successfully that you’ve worked with or that have really worked well for you? (22:12) What was your motivation for becoming an entrepreneur? (25:14) Why do you go and continue down this grind and this path? Where’s that leading you to what’s your focus on today? (29:25) How did you analyze whether or not it made sense to go after some of these businesses from a financial aspect? (30:56) In This Episode, You Will Learn: 3 priorities that Paul working every day (05:25) The Fifteen Commitments of Conscious Leadership book (08:20) How Paul mitigate his weaknesses (09:55) The Secret to Minimizing Stress (12:10) Paul health hacks (17:16) How Paul formulate his investment decisions (27:11) Quotes: “Team first, customer second, and profit third.” “If you cling to the past you just creating stress for yourself.” “Work is all about ideation and how do you invent and solve problems.” Connect with Paul English on: Lola Moonbeam Kayak LinkedIn A Truck Full of Money book by Tracy Kidder
Paul English is the CTO and co-founder of Lola.com, where he oversees product strategy, definition, design, and development, working closely with customers to make sure that Lola’s newest features are well received by users, and that they become “must haves” not “nice to have”. He also makes sure Lola’s products are innovative, fast, and beautiful with the objective of completely shattering the soul-sucking experience today’s business travelers must endure when planning travel. Paul was previously the CTO and co-founder of Kayak (took public then sold to Priceline), and he also co-founded GetHuman (ongoing), Boston Light (sold to Intuit), and Intermute (sold to Trend Micro). Separately, Paul is an investor in dozens of startups, and he sits on six nonprofit boards. You can read more about Paul at PaulEnglish.com.
In Episode 101, futurists hear from famed internet entrepreneur and philanthropist, Paul English, who has started more companies than he has fingers to count with. He’s known best for co-founding travel site KAYAK in 2004 which was sold for $1.8 billion dollars in 2012, and he’s also the founder of Lola.com, GetHuman.com, Summits Haiti Education, the BostonWinterWalk.org for Homelessness, and now he’s launching what he aims to be the TikTok for podcasts called Moonbeam Podcast Player, which you can check out at the link below. This is an incredible conversation and Paul is a legend in entrepreneurship, advising you to hone the craft of storytelling in your early venture! I love how he's product and brand focused, a rare species to come by for sure! Book a Meeting with Michael to Give Podcast Feedback: calendly.com/michaelsikand Check Out Moonbeam Podcast Player: https://apps.apple.com/pk/app/moonbeam-podcast-player/id1531348470 Subscribe to Our Future Newsletter for career advice and industry insights at https://www.ourfuturehq.com/ Follow us on IG: https://www.instagram.com/ourfuturehq/ Follow us on TikTok: https://www.tiktok.com/@ourfuturehq
iTunes: https://itunes.apple.com/us/podcast/podnutz-android-app-addicts/id388881293?mt=2# RSS: http://feeds.feedburner.com/androidappaddicts Spreadsheet: https://docs.google.com/spreadsheets/d/1A3TXvX-IQ25U9AGHkCjLtkY88QOLRf3JqaZlrXZNc-o/edit?usp=sharing Show – http://podnutz.com/category/android-app-addicts/ Patreon: https://www.patreon.com/AndroidAppAddicts Live Video And Chat – http://podnutz.com/android-app-addicts-live/ Discord Link ? https://discord.gg/sbeUC9b Email – aaa@podnutz.com Hosted by: Mark Cockrell – https://www.gofundme.com/f/fgtkb-service-dog-for-abby – http://elementopie.com/ Steve McLaughlin ? DoorToDoorGeek – http://podnutz.com Josh – http://joshuadennis.ca Eric Arduini – https://www.gofundme.com/help-eric-arduini-and-family Links Mobile Game Playtime Increases By 62% Due To Coronavirus […]
Episode Summary: Our Boston founders series kicks off with guests Paul English, Cofounder and CTO of Lola.com and Mike Volpe, CEO of Lola.com. Hosts Rob May and Matt Hayes visit Lola's headquarters in Boston to learn more about the founding of Lola (Paul's 5th company to date), and how Mike and Paul's different work styles provide a well-balanced leadership approach. Uncovered in this episode: Fun facts most people don't know about Paul and Mike Why Paul English transitioned from CEO to CTO and how they made it a smooth and successful transition for the Lola team Hiring at Lola.com; making it fun to come to work; and building a culture around collaboration and learningWhy vulnerability is important to discuss and how implementing one simple practice has helped both Paul and Mike drive stronger managerial relationships List of resources mentioned in episode: Hiring Religion by Paul English: http://paulenglish.com/hiring.htmlLearn more on Lola: http://www.lola.comAbout Mike Volpe: Mike Volpe is the CEO at Lola.com, the corporate travel SaaS platform that helps companies stop wasting time and start saving money on their business travel program. He has been asked to speak at numerous conferences on sales, marketing and growth, as well as people operations, leadership, hiring and culture and is a strong advocate for building great teams with a wide range of talent.Previously Mike was CMO at Cybereason, a cybersecurity SaaS company, where he helped the company increase its sales pipeline by 650% in a single year and grow revenue by five times during his tenure. He was also part of the founding team at HubSpot, where he spent eight years growing the company from five people to over 1,000 employees, $175m in revenue, and a successful IPO.Mike is well-known and active in the Boston SaaS and startup communities as a member of the board of directors of Validity and Privy, and as an angel investor in more than 30 startups. He holds an MBA from the MIT Sloan School of Management and a BA from Bowdoin College. Check him out on Twitter, LinkedIn, and Instagram.About Paul English: Paul English is the CTO and co-founder of Lola.com, where he oversees product strategy, definition, design, and development, working closely with customers to make sure that Lola's newest features are well received by users, and that they become “must haves” not “nice to have”. He also makes sure Lola's products are innovative, fast, and beautiful with the objective of completely shattering the soul-sucking experience today's business travelers must endure when planning travel.Paul was previously the CTO and co-founder of Kayak (took public then sold to Priceline), and he also co-founded GetHuman (ongoing), Boston Light (sold to Intuit), and Intermute (sold to Trend Micro). Separately, Paul is an investor in dozens of startups, and he sits on six nonprofit boards. You can read more about Paul at PaulEnglish.com.
Today’s guest, Paul English, is the co-founder of five software companies – Lola.com, kayak.com, GetHuman, Boston Light, and Intermute – and the founder of three nonprofits – summits.org, kingboston.org, and winterwalkboston.org. For more information, visit: http://Brandeis.edu Resources: Learn more at paulenglish.com Facebook: https://www.facebook.com/paulenglishboston/ Instagram: https://www.instagram.com/englishpaulm/ Twitter: https://twitter.com/englishpaulm From the Dorm Room to the Boardroom is a production of Crate Media
Paul is the CTO of Lola.com, the easiest way for a business to manage their employee travel. Previously, Paul was CTO of KAYAK, a travel company he co-founded in 2004, took public in 2012, and sold to Priceline in 2013. Paul is also the founder of GetHuman, a service created to give consumers excellent customer service at any company.Paul grew up in Boston (as did his parents), his father was a pipefitter at Boston Gas Company, Paul's first job was delivering the Boston Globe, and he went to Boston public schools until he studied music and computer science at UMASS Boston. (As you can guess, Paul is a Boston Red Sox fan, and his accent gets worse in bahs.)Paul is the subject of Tracy Kidder's book “A Truck Full of Money”, published by Random House in September 2016. Which tells the story of Paul English, a kinetic and unconventional inventor and entrepreneur, who as a boy rebelled against authority. Growing up in working-class Boston, English discovers a medium for his talents the first time he sees a computer. As a young man, despite suffering from what would eventually be diagnosed as bipolar disorder, he begins his pilgrim's journey through the ups and downs in the brave new world of computers. Relating to the Internet as if it's an extension of his own mind, he discovers that he has a talent for conceiving innovative enterprises and building teams that can develop them, becoming “a Pied Piper” of geeks. His innovative management style, success, and innate sense of fair play inspire intense loyalty. Early on, one colleague observes: “Someday this boy's going to get hit by a truck full of money, and I'm going to be standing beside him.” Yet when English does indeed make a fortune, when the travel website Kayak is sold for almost two billion dollars—the first thing he thinks about is how to give the money away: “What else would you do with it?” The second thing he thinks is, What's next?Nonprofit WorkPaul is cofounder of Summits Education, an organization that is building education systems in rural Haiti. Summits operates a network of 41 schools in Haiti's Central Plateau, employing over 350 educators, and serving 10,000 students. Paul first went to Haiti in 2003. (Paul wè bote ak espwa.)Paul is a Director of Partners In Health and of Village Health Works, both organizations providing quality healthcare to populations of extreme poverty. Paul is also very interested in problems of homelessness in Boston.Paul's latest project is to bring an MLK Memorial to Boston.Ancient HistoryPaul was previously President of Boston Light Software, an ecommerce company sold to Intuit, where Paul then served as VP Technology. Paul was a cofounder/Director (with his brother Ed) of Intermute, a security software company sold to Trend Micro. Paul was briefly an entrepreneur in-residence at Greylock, the founder of the World Xiangqi League, VP of Engineering at NetCentric, SVP of Engineering and Product Management at Interleaf. He also did contract programming for the US Air Force, operations research programming for Data General, programming for a medical device company, and even some video game software and sound-effect development.Paul received a BS and MS in computer science from University of Massachusetts. Paul was named Chief Technology Officer of the year by Mass Technology Leadership Council in 2009. - http://paulenglish.com/LinkedIn - https://www.linkedin.com/in/mark-metry/Instagram - https://www.instagram.com/markmetry/Twitter - https://twitter.com/markymetryMedium - https://medium.com/@markymetryFacebook - https://www.facebook.com/Humans.2.0.PodcastMark Metry - https://www.markmetry.com/Humans 2.0 Twitter - https://twitter.com/Humans2Podcast
Paul is the CTO of Lola.com, the easiest way for a business to manage their employee travel. Previously, Paul was CTO of KAYAK, a travel company he co-founded in 2004, took public in 2012, and sold to Priceline in 2013. Paul is also the founder of GetHuman, a service created to give consumers excellent customer service at any company.Paul grew up in Boston (as did his parents), his father was a pipefitter at Boston Gas Company, Paul’s first job was delivering the Boston Globe, and he went to Boston public schools until he studied music and computer science at UMASS Boston. (As you can guess, Paul is a Boston Red Sox fan, and his accent gets worse in bahs.)Paul is the subject of Tracy Kidder’s book “A Truck Full of Money”, published by Random House in September 2016. Which tells the story of Paul English, a kinetic and unconventional inventor and entrepreneur, who as a boy rebelled against authority. Growing up in working-class Boston, English discovers a medium for his talents the first time he sees a computer. As a young man, despite suffering from what would eventually be diagnosed as bipolar disorder, he begins his pilgrim’s journey through the ups and downs in the brave new world of computers. Relating to the Internet as if it’s an extension of his own mind, he discovers that he has a talent for conceiving innovative enterprises and building teams that can develop them, becoming “a Pied Piper” of geeks. His innovative management style, success, and innate sense of fair play inspire intense loyalty. Early on, one colleague observes: “Someday this boy’s going to get hit by a truck full of money, and I’m going to be standing beside him.” Yet when English does indeed make a fortune, when the travel website Kayak is sold for almost two billion dollars—the first thing he thinks about is how to give the money away: “What else would you do with it?” The second thing he thinks is, What’s next?Nonprofit WorkPaul is cofounder of Summits Education, an organization that is building education systems in rural Haiti. Summits operates a network of 41 schools in Haiti's Central Plateau, employing over 350 educators, and serving 10,000 students. Paul first went to Haiti in 2003. (Paul wè bote ak espwa.)Paul is a Director of Partners In Health and of Village Health Works, both organizations providing quality healthcare to populations of extreme poverty. Paul is also very interested in problems of homelessness in Boston.Paul’s latest project is to bring an MLK Memorial to Boston.Ancient HistoryPaul was previously President of Boston Light Software, an ecommerce company sold to Intuit, where Paul then served as VP Technology. Paul was a cofounder/Director (with his brother Ed) of Intermute, a security software company sold to Trend Micro. Paul was briefly an entrepreneur in-residence at Greylock, the founder of the World Xiangqi League, VP of Engineering at NetCentric, SVP of Engineering and Product Management at Interleaf. He also did contract programming for the US Air Force, operations research programming for Data General, programming for a medical device company, and even some video game software and sound-effect development.Paul received a BS and MS in computer science from University of Massachusetts. Paul was named Chief Technology Officer of the year by Mass Technology Leadership Council in 2009. - http://paulenglish.com/LinkedIn - https://www.linkedin.com/in/mark-metry/Instagram - https://www.instagram.com/markmetry/Twitter - https://twitter.com/markymetryMedium - https://medium.com/@markymetryFacebook - https://www.facebook.com/Humans.2.0.PodcastMark Metry - https://www.markmetry.com/Humans 2.0 Twitter - https://twitter.com/Humans2Podcast
Paul English, co-founder of Kayak, Lola and GetHuman, wants to make an impact, and is putting his knowledge, experience and money where is mouth is. Paul discusses how he turned his business success into charitable endeavors, including MLK Boston, and his mission to create a new memorial to Martin Luther King, Jr. and Coretta Scott King in Boston.
AiA 152: Multirepo vs Monorepo with Jeff Whelpley and Kushal Dave On today's episode of Adventures in Angular, we have panelists Ward Bell, Joe Eames and Charles Max Wood. We have special guests, Jeff Whelpley and Kushal Dave. The discussion ranges from the organization of code bases to the benefits of using Monorepo vs Multirepo. Tune in! [00:01:45] – Introduction to Jeff Whelpley and Kushal Dave Kushal is CTO at Scroll, a start-up. Before that, he was at Foursquare, Chartbeat, Google, and IBM. He has worked in a lot of monorepo code base. Although he actually has experience working on a lot of Multirepo situations. Jeff is the CTO of a small startup in Boston called GetHuman that helps people with customer service problems. He has been on Adventures in Angular a couple of times before. He has also been in a couple of other podcasts before, as well as in the open-source community. [00:03:20] – Introduction to the issue Typically, when you’re working in just one or two people team, you don’t really have that many issues centered on dev process, coordinating changes between each other, and trying to figure out the best optimal way to organize your code. Most of the time, you understand the entire code base because you’re working with everything. It gets to be a much different problem once you get to have a larger team. In essence, everything is starting slow down because of different overhead related to the process that was needed in order to make sure got quality changes. You basically have to spend a lot of time and thought around your developer process, how you structure your code, how you physically setup, and organize your entire code base. [00:06:20] – How to organize your code bases? When Kushal worked at Google, everything is in a single giant repository. There are one or two exceptions for client code and some infrastructure things. It allowed people to feel that they could change any of the code and it made it easy to keep everybody in sync with the state of the code. There is some sort of workflow and process things that you have to change in order to get that right. Probably, the biggest one is trying to keep the repo from working in long running branches because things start to diverge. That was the model of Foursquare too. [00:08:15] – How do you run all of the CI across everything? The answer changes to different sizes. At Scroll and for most of the time that Kushal was at Foursquare, it was efficient to run all the builds on every commit. If you just have one mega build that just runs continuously, that’s good enough up until 30 or 40 developers. Once you hit that size, there’s a variety of build tools out there that you can use and understand the structure of your code base. Once you’ve used one of these build tools, declaratively indicate which artifacts depends on which libraries, and what the full dependency thing is, you can build only the relevant CI’s. You can decide whether this change only touches this binary or this test. Chuck also like the approach of having everything in master. If it was experimental, it would still go into master and their CI would effectively run the different builds with the different feature flags. If what you did broke something that somebody else was working on in a process, you could just adjust it midstream. [00:16:00] – Gatekeeper process The gatekeeper process protects the whole code base but at the same time, it’s in the layer of bureaucracy. We’ve been reviewing every piece of code before it’s allowed to land in master. Everybody on our team commits multiple times a day to master. All the changes, as much as possible are really small, especially the feature flag check. In that world, there is this bureaucracy. Hopefully, it’s not holding you up too much. The flipside of that is when you’ll feel really confident that you didn’t break anybody who depends on you and you’re going to have to revisit this change a month from now. For the past 9 months or so, Jeff tried a bunch of different configurations. He tried monorepo and other configurations from the other end of the spectrum - many small packages. As he was interviewing people with their different setups, they’ve all encountered the same types of problems. Regardless if you’re using monorepo or not, as long as you’re trying to keep your changes small and specific, and implemented quickly, it can alleviate any other pains. [00:22:10] – Guard rails The guard rails are just the reviewers. For us, every change that’s getting reviewed means that in some extent, there’s a human check on that. I’m not sure if you can but I certainly know that Reviewable and Fabricate both offer sort of wide range of configuration options. I can imagine the world in which you can programmatically keep people from landing changes that didn’t have that level. In Github, there are guard rails. That actually helps the reviewers. It’s reassuring to have some technology that this person is associated with this set of boundaries. If you want to step outside of the boundaries, they’re going to have to get some other person who understands the code that’s outside of the line to join in approving that. If their organization is big, this is something that they might have to think about. Jeff advises to really be careful about what you’re doing. Is this a change where you are just bumping version numbers or is this something that you have to change a business logic? [00:28:15] – Allowing different people to upgrade dependencies The only way Kushal has ever seen it done is a brutal all-nighter by somebody who has to sit there and get everything working. But one of the things that Google does is they develop a lot of patterns about how to refactor code to make things easier. One solution that Jeff sees is the complete opposite of the spectrum from monorepo. Dr. Gleb Bahmutov is a huge fan of open-source smaller repos - a lot of the mentality of keeping things small, separate and distinct. He’s decided that he’s going to stick in the many repo universe and just create tooling to solve some of these problems. For versioning, he runs this server that detects that a new version has been published. It will automatically try to update it and run all the tests. But according to Kushal, if you have different repos, you can move differently in terms of dependencies but if you’re now out of sync, you may suddenly have incompatible dependencies across what you’re doing. It’s a question of when you want to deal with the problem. Chuck talks about the ways you can get out of sync. With the multirepo, you can get out of sync not just on the dependencies and the build process, but also on the API’s. If you have a module that you’re working on over here and whatever are consuming it on the other side as a driver may not be updated yet so it doesn’t talk properly. Jeff also noticed that with Angular DI, if you aren’t actually using the same version, you run into issues because it has to be the exact same thing at every level or else the injection token is different. [00:36:50] – Develop within Monorepo or develop in a separate repo Chuck thinks that it depends. If there are a lot of dependencies and shortcuts that he can take by relying on the monorepo, he will do it on the monorepo like if it auto loads the correct libraries automatically. And then, they don’t have to do a whole lot of setup. If it’s small, independent, and it’s going to move quickly, then, a separate repo may be the right answer. Kushal adds that there are a lot of benefits in doing it in the monorepo. With feature flags, you have the benefit of reviewing it. It also allows you and others to keep up with everyone in terms of breaking API changes, other than having some brutal merge. Jeff will do it in a separate repo. If this an experimental thing, it disturbs people less. It alleviates the notifications that go on. That is why Kushal’s team also built a lot of custom Slack cooks in order to get some notifications tailored to the parts that they only care about. [00:44:50] – How do you work it out so that things aren’t so tightly coupled? There are no circular dependencies between your packages even transitively. As your monorepo grows you may eventually have some tooling that requires that for your build system. Can this layer have this type of functionality? Or does it need to be moved into a new package? It also means it improves your architecture. Kushal’s team is working on Java. This object that users and organizations create can know about each other’s’ objects but the users can never depend back into organizations or vice versa. You can think of the layered model of networking. We have the pure data model objects are not allowed to know anything about the service layer that interacts with the database. The database can know about those model objects. The web tier can obviously know about both the model objects and the service tier because it utilizes both of those. [00:47:30] – How are those relationships defined? They are defined in build files. If you look at Pants or Blaze or Buck, all those build systems have explicit dependency configurations so you can sort of keeping any of those invariants from being broken. But Kushal’s team just have a Wiki page that lists out the rules. They also have a test that looks for any cycles in any package dependencies. Jeff’s team created a CLI tool that walks down all subdirectories from where they’re running it. It finds all the package JSON in all your subdirectories and it creates the dependency graphs. They haven’t fully moved to a monorepo but they did start to consolidate. They have a couple of larger repos. This tool will see the dependency graph for all the NPM modules and also see the dependencies between the repos based off of the NPM module dependencies. [00:50:20] – Multimonorepo It’s not perfect to have one larger repo that has basically all of the none-deployable codes. Jeff and his team have a separate set of repos for the actual deployable code. They haven’t made the jump to where Kushal is advocating – using build tools. [00:50:20] – To open-source When you want an open-source portion of what you’re doing but not the entire company’s code base, Jeff thinks that there’s really no way out of having a separate repo for that. Google has this giant internal repo because not everything in it is open-source. Angular is open-source. That’s at least one driver that Angular is in the public Github repo and Google use so much of Angular. And some companies want the sort of open collaboration and free support and upgrades from the community. Other companies see that they’re giving away some kind of competitive advantage that they’re not willing to give up. [00:55:40] – Monorepo is better in all cases Jeff recognizes that there’s a number of organizations that have successfully implemented it but there isn’t an easy way for someone to do it. It’s not common knowledge and does not have a well-known set of tooling and best practices. There’s still a lot to go to get to the point where it’s a no-brainer and everybody knows how to do this the right way. Ward doesn’t know how to do a monorepo but according to him, if he is in an organization or starting an organization, he would go figure out how to do it and would want his organization to have a monorepo. Chuck tends to lean to monorepo but doesn't always do it either. Another caveat is even if he starts with the monorepo, that doesn’t mean that’s where he’s going to end. The answer is if you put them all in separate repos and it turns out that you need benefits of having them all in the same place, you can move them all in one repo. It may not be easy depending on how big and complicated you make your mono or the way you tie together your disparate repos. Kushal is all in. The only time that he wouldn’t do it is if he’s building disparate open-source projects and wanted them to play the open-source ecosystem. The net benefit is that everyone is moving together rapidly because monorepo is optimized for speed. But Kushal wishes that the tooling is better and that many people move to this model. Joe is also open to monorepo in a larger organization. He thinks that the separate repos keep things but monorepo can solve a lot of problems. [01:01:55] – Places to go Jeff has a bunch of articles for people who are pro-monorepo and are advocating for that. He has yet to find one that sets forth like a good mental model or decision framework. This is what Jeff hopes to create in the next couple of weeks before the conference. Picks Ward Bell Hiking Fishing Southern Sierras Chuck Max Wood Book: Profit First by Mike Michalowicz Ketogenic Diet Air-conditioning Joe Eames Book: Everybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are by Seth Stephens-Davidowitz Rent a scooter to ride around Rome Jeff Whelpley Survey: Monorepo vs Multirepo Twitter: @jeffwhelpley Medium: @jeffwhelpey Kushal Dave Technical Design Reviews Book: The Orphan Master’s Son Twitter: @krave Medium: Workflow
AiA 152: Multirepo vs Monorepo with Jeff Whelpley and Kushal Dave On today's episode of Adventures in Angular, we have panelists Ward Bell, Joe Eames and Charles Max Wood. We have special guests, Jeff Whelpley and Kushal Dave. The discussion ranges from the organization of code bases to the benefits of using Monorepo vs Multirepo. Tune in! [00:01:45] – Introduction to Jeff Whelpley and Kushal Dave Kushal is CTO at Scroll, a start-up. Before that, he was at Foursquare, Chartbeat, Google, and IBM. He has worked in a lot of monorepo code base. Although he actually has experience working on a lot of Multirepo situations. Jeff is the CTO of a small startup in Boston called GetHuman that helps people with customer service problems. He has been on Adventures in Angular a couple of times before. He has also been in a couple of other podcasts before, as well as in the open-source community. [00:03:20] – Introduction to the issue Typically, when you’re working in just one or two people team, you don’t really have that many issues centered on dev process, coordinating changes between each other, and trying to figure out the best optimal way to organize your code. Most of the time, you understand the entire code base because you’re working with everything. It gets to be a much different problem once you get to have a larger team. In essence, everything is starting slow down because of different overhead related to the process that was needed in order to make sure got quality changes. You basically have to spend a lot of time and thought around your developer process, how you structure your code, how you physically setup, and organize your entire code base. [00:06:20] – How to organize your code bases? When Kushal worked at Google, everything is in a single giant repository. There are one or two exceptions for client code and some infrastructure things. It allowed people to feel that they could change any of the code and it made it easy to keep everybody in sync with the state of the code. There is some sort of workflow and process things that you have to change in order to get that right. Probably, the biggest one is trying to keep the repo from working in long running branches because things start to diverge. That was the model of Foursquare too. [00:08:15] – How do you run all of the CI across everything? The answer changes to different sizes. At Scroll and for most of the time that Kushal was at Foursquare, it was efficient to run all the builds on every commit. If you just have one mega build that just runs continuously, that’s good enough up until 30 or 40 developers. Once you hit that size, there’s a variety of build tools out there that you can use and understand the structure of your code base. Once you’ve used one of these build tools, declaratively indicate which artifacts depends on which libraries, and what the full dependency thing is, you can build only the relevant CI’s. You can decide whether this change only touches this binary or this test. Chuck also like the approach of having everything in master. If it was experimental, it would still go into master and their CI would effectively run the different builds with the different feature flags. If what you did broke something that somebody else was working on in a process, you could just adjust it midstream. [00:16:00] – Gatekeeper process The gatekeeper process protects the whole code base but at the same time, it’s in the layer of bureaucracy. We’ve been reviewing every piece of code before it’s allowed to land in master. Everybody on our team commits multiple times a day to master. All the changes, as much as possible are really small, especially the feature flag check. In that world, there is this bureaucracy. Hopefully, it’s not holding you up too much. The flipside of that is when you’ll feel really confident that you didn’t break anybody who depends on you and you’re going to have to revisit this change a month from now. For the past 9 months or so, Jeff tried a bunch of different configurations. He tried monorepo and other configurations from the other end of the spectrum - many small packages. As he was interviewing people with their different setups, they’ve all encountered the same types of problems. Regardless if you’re using monorepo or not, as long as you’re trying to keep your changes small and specific, and implemented quickly, it can alleviate any other pains. [00:22:10] – Guard rails The guard rails are just the reviewers. For us, every change that’s getting reviewed means that in some extent, there’s a human check on that. I’m not sure if you can but I certainly know that Reviewable and Fabricate both offer sort of wide range of configuration options. I can imagine the world in which you can programmatically keep people from landing changes that didn’t have that level. In Github, there are guard rails. That actually helps the reviewers. It’s reassuring to have some technology that this person is associated with this set of boundaries. If you want to step outside of the boundaries, they’re going to have to get some other person who understands the code that’s outside of the line to join in approving that. If their organization is big, this is something that they might have to think about. Jeff advises to really be careful about what you’re doing. Is this a change where you are just bumping version numbers or is this something that you have to change a business logic? [00:28:15] – Allowing different people to upgrade dependencies The only way Kushal has ever seen it done is a brutal all-nighter by somebody who has to sit there and get everything working. But one of the things that Google does is they develop a lot of patterns about how to refactor code to make things easier. One solution that Jeff sees is the complete opposite of the spectrum from monorepo. Dr. Gleb Bahmutov is a huge fan of open-source smaller repos - a lot of the mentality of keeping things small, separate and distinct. He’s decided that he’s going to stick in the many repo universe and just create tooling to solve some of these problems. For versioning, he runs this server that detects that a new version has been published. It will automatically try to update it and run all the tests. But according to Kushal, if you have different repos, you can move differently in terms of dependencies but if you’re now out of sync, you may suddenly have incompatible dependencies across what you’re doing. It’s a question of when you want to deal with the problem. Chuck talks about the ways you can get out of sync. With the multirepo, you can get out of sync not just on the dependencies and the build process, but also on the API’s. If you have a module that you’re working on over here and whatever are consuming it on the other side as a driver may not be updated yet so it doesn’t talk properly. Jeff also noticed that with Angular DI, if you aren’t actually using the same version, you run into issues because it has to be the exact same thing at every level or else the injection token is different. [00:36:50] – Develop within Monorepo or develop in a separate repo Chuck thinks that it depends. If there are a lot of dependencies and shortcuts that he can take by relying on the monorepo, he will do it on the monorepo like if it auto loads the correct libraries automatically. And then, they don’t have to do a whole lot of setup. If it’s small, independent, and it’s going to move quickly, then, a separate repo may be the right answer. Kushal adds that there are a lot of benefits in doing it in the monorepo. With feature flags, you have the benefit of reviewing it. It also allows you and others to keep up with everyone in terms of breaking API changes, other than having some brutal merge. Jeff will do it in a separate repo. If this an experimental thing, it disturbs people less. It alleviates the notifications that go on. That is why Kushal’s team also built a lot of custom Slack cooks in order to get some notifications tailored to the parts that they only care about. [00:44:50] – How do you work it out so that things aren’t so tightly coupled? There are no circular dependencies between your packages even transitively. As your monorepo grows you may eventually have some tooling that requires that for your build system. Can this layer have this type of functionality? Or does it need to be moved into a new package? It also means it improves your architecture. Kushal’s team is working on Java. This object that users and organizations create can know about each other’s’ objects but the users can never depend back into organizations or vice versa. You can think of the layered model of networking. We have the pure data model objects are not allowed to know anything about the service layer that interacts with the database. The database can know about those model objects. The web tier can obviously know about both the model objects and the service tier because it utilizes both of those. [00:47:30] – How are those relationships defined? They are defined in build files. If you look at Pants or Blaze or Buck, all those build systems have explicit dependency configurations so you can sort of keeping any of those invariants from being broken. But Kushal’s team just have a Wiki page that lists out the rules. They also have a test that looks for any cycles in any package dependencies. Jeff’s team created a CLI tool that walks down all subdirectories from where they’re running it. It finds all the package JSON in all your subdirectories and it creates the dependency graphs. They haven’t fully moved to a monorepo but they did start to consolidate. They have a couple of larger repos. This tool will see the dependency graph for all the NPM modules and also see the dependencies between the repos based off of the NPM module dependencies. [00:50:20] – Multimonorepo It’s not perfect to have one larger repo that has basically all of the none-deployable codes. Jeff and his team have a separate set of repos for the actual deployable code. They haven’t made the jump to where Kushal is advocating – using build tools. [00:50:20] – To open-source When you want an open-source portion of what you’re doing but not the entire company’s code base, Jeff thinks that there’s really no way out of having a separate repo for that. Google has this giant internal repo because not everything in it is open-source. Angular is open-source. That’s at least one driver that Angular is in the public Github repo and Google use so much of Angular. And some companies want the sort of open collaboration and free support and upgrades from the community. Other companies see that they’re giving away some kind of competitive advantage that they’re not willing to give up. [00:55:40] – Monorepo is better in all cases Jeff recognizes that there’s a number of organizations that have successfully implemented it but there isn’t an easy way for someone to do it. It’s not common knowledge and does not have a well-known set of tooling and best practices. There’s still a lot to go to get to the point where it’s a no-brainer and everybody knows how to do this the right way. Ward doesn’t know how to do a monorepo but according to him, if he is in an organization or starting an organization, he would go figure out how to do it and would want his organization to have a monorepo. Chuck tends to lean to monorepo but doesn't always do it either. Another caveat is even if he starts with the monorepo, that doesn’t mean that’s where he’s going to end. The answer is if you put them all in separate repos and it turns out that you need benefits of having them all in the same place, you can move them all in one repo. It may not be easy depending on how big and complicated you make your mono or the way you tie together your disparate repos. Kushal is all in. The only time that he wouldn’t do it is if he’s building disparate open-source projects and wanted them to play the open-source ecosystem. The net benefit is that everyone is moving together rapidly because monorepo is optimized for speed. But Kushal wishes that the tooling is better and that many people move to this model. Joe is also open to monorepo in a larger organization. He thinks that the separate repos keep things but monorepo can solve a lot of problems. [01:01:55] – Places to go Jeff has a bunch of articles for people who are pro-monorepo and are advocating for that. He has yet to find one that sets forth like a good mental model or decision framework. This is what Jeff hopes to create in the next couple of weeks before the conference. Picks Ward Bell Hiking Fishing Southern Sierras Chuck Max Wood Book: Profit First by Mike Michalowicz Ketogenic Diet Air-conditioning Joe Eames Book: Everybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are by Seth Stephens-Davidowitz Rent a scooter to ride around Rome Jeff Whelpley Survey: Monorepo vs Multirepo Twitter: @jeffwhelpley Medium: @jeffwhelpey Kushal Dave Technical Design Reviews Book: The Orphan Master’s Son Twitter: @krave Medium: Workflow
AiA 152: Multirepo vs Monorepo with Jeff Whelpley and Kushal Dave On today's episode of Adventures in Angular, we have panelists Ward Bell, Joe Eames and Charles Max Wood. We have special guests, Jeff Whelpley and Kushal Dave. The discussion ranges from the organization of code bases to the benefits of using Monorepo vs Multirepo. Tune in! [00:01:45] – Introduction to Jeff Whelpley and Kushal Dave Kushal is CTO at Scroll, a start-up. Before that, he was at Foursquare, Chartbeat, Google, and IBM. He has worked in a lot of monorepo code base. Although he actually has experience working on a lot of Multirepo situations. Jeff is the CTO of a small startup in Boston called GetHuman that helps people with customer service problems. He has been on Adventures in Angular a couple of times before. He has also been in a couple of other podcasts before, as well as in the open-source community. [00:03:20] – Introduction to the issue Typically, when you’re working in just one or two people team, you don’t really have that many issues centered on dev process, coordinating changes between each other, and trying to figure out the best optimal way to organize your code. Most of the time, you understand the entire code base because you’re working with everything. It gets to be a much different problem once you get to have a larger team. In essence, everything is starting slow down because of different overhead related to the process that was needed in order to make sure got quality changes. You basically have to spend a lot of time and thought around your developer process, how you structure your code, how you physically setup, and organize your entire code base. [00:06:20] – How to organize your code bases? When Kushal worked at Google, everything is in a single giant repository. There are one or two exceptions for client code and some infrastructure things. It allowed people to feel that they could change any of the code and it made it easy to keep everybody in sync with the state of the code. There is some sort of workflow and process things that you have to change in order to get that right. Probably, the biggest one is trying to keep the repo from working in long running branches because things start to diverge. That was the model of Foursquare too. [00:08:15] – How do you run all of the CI across everything? The answer changes to different sizes. At Scroll and for most of the time that Kushal was at Foursquare, it was efficient to run all the builds on every commit. If you just have one mega build that just runs continuously, that’s good enough up until 30 or 40 developers. Once you hit that size, there’s a variety of build tools out there that you can use and understand the structure of your code base. Once you’ve used one of these build tools, declaratively indicate which artifacts depends on which libraries, and what the full dependency thing is, you can build only the relevant CI’s. You can decide whether this change only touches this binary or this test. Chuck also like the approach of having everything in master. If it was experimental, it would still go into master and their CI would effectively run the different builds with the different feature flags. If what you did broke something that somebody else was working on in a process, you could just adjust it midstream. [00:16:00] – Gatekeeper process The gatekeeper process protects the whole code base but at the same time, it’s in the layer of bureaucracy. We’ve been reviewing every piece of code before it’s allowed to land in master. Everybody on our team commits multiple times a day to master. All the changes, as much as possible are really small, especially the feature flag check. In that world, there is this bureaucracy. Hopefully, it’s not holding you up too much. The flipside of that is when you’ll feel really confident that you didn’t break anybody who depends on you and you’re going to have to revisit this change a month from now. For the past 9 months or so, Jeff tried a bunch of different configurations. He tried monorepo and other configurations from the other end of the spectrum - many small packages. As he was interviewing people with their different setups, they’ve all encountered the same types of problems. Regardless if you’re using monorepo or not, as long as you’re trying to keep your changes small and specific, and implemented quickly, it can alleviate any other pains. [00:22:10] – Guard rails The guard rails are just the reviewers. For us, every change that’s getting reviewed means that in some extent, there’s a human check on that. I’m not sure if you can but I certainly know that Reviewable and Fabricate both offer sort of wide range of configuration options. I can imagine the world in which you can programmatically keep people from landing changes that didn’t have that level. In Github, there are guard rails. That actually helps the reviewers. It’s reassuring to have some technology that this person is associated with this set of boundaries. If you want to step outside of the boundaries, they’re going to have to get some other person who understands the code that’s outside of the line to join in approving that. If their organization is big, this is something that they might have to think about. Jeff advises to really be careful about what you’re doing. Is this a change where you are just bumping version numbers or is this something that you have to change a business logic? [00:28:15] – Allowing different people to upgrade dependencies The only way Kushal has ever seen it done is a brutal all-nighter by somebody who has to sit there and get everything working. But one of the things that Google does is they develop a lot of patterns about how to refactor code to make things easier. One solution that Jeff sees is the complete opposite of the spectrum from monorepo. Dr. Gleb Bahmutov is a huge fan of open-source smaller repos - a lot of the mentality of keeping things small, separate and distinct. He’s decided that he’s going to stick in the many repo universe and just create tooling to solve some of these problems. For versioning, he runs this server that detects that a new version has been published. It will automatically try to update it and run all the tests. But according to Kushal, if you have different repos, you can move differently in terms of dependencies but if you’re now out of sync, you may suddenly have incompatible dependencies across what you’re doing. It’s a question of when you want to deal with the problem. Chuck talks about the ways you can get out of sync. With the multirepo, you can get out of sync not just on the dependencies and the build process, but also on the API’s. If you have a module that you’re working on over here and whatever are consuming it on the other side as a driver may not be updated yet so it doesn’t talk properly. Jeff also noticed that with Angular DI, if you aren’t actually using the same version, you run into issues because it has to be the exact same thing at every level or else the injection token is different. [00:36:50] – Develop within Monorepo or develop in a separate repo Chuck thinks that it depends. If there are a lot of dependencies and shortcuts that he can take by relying on the monorepo, he will do it on the monorepo like if it auto loads the correct libraries automatically. And then, they don’t have to do a whole lot of setup. If it’s small, independent, and it’s going to move quickly, then, a separate repo may be the right answer. Kushal adds that there are a lot of benefits in doing it in the monorepo. With feature flags, you have the benefit of reviewing it. It also allows you and others to keep up with everyone in terms of breaking API changes, other than having some brutal merge. Jeff will do it in a separate repo. If this an experimental thing, it disturbs people less. It alleviates the notifications that go on. That is why Kushal’s team also built a lot of custom Slack cooks in order to get some notifications tailored to the parts that they only care about. [00:44:50] – How do you work it out so that things aren’t so tightly coupled? There are no circular dependencies between your packages even transitively. As your monorepo grows you may eventually have some tooling that requires that for your build system. Can this layer have this type of functionality? Or does it need to be moved into a new package? It also means it improves your architecture. Kushal’s team is working on Java. This object that users and organizations create can know about each other’s’ objects but the users can never depend back into organizations or vice versa. You can think of the layered model of networking. We have the pure data model objects are not allowed to know anything about the service layer that interacts with the database. The database can know about those model objects. The web tier can obviously know about both the model objects and the service tier because it utilizes both of those. [00:47:30] – How are those relationships defined? They are defined in build files. If you look at Pants or Blaze or Buck, all those build systems have explicit dependency configurations so you can sort of keeping any of those invariants from being broken. But Kushal’s team just have a Wiki page that lists out the rules. They also have a test that looks for any cycles in any package dependencies. Jeff’s team created a CLI tool that walks down all subdirectories from where they’re running it. It finds all the package JSON in all your subdirectories and it creates the dependency graphs. They haven’t fully moved to a monorepo but they did start to consolidate. They have a couple of larger repos. This tool will see the dependency graph for all the NPM modules and also see the dependencies between the repos based off of the NPM module dependencies. [00:50:20] – Multimonorepo It’s not perfect to have one larger repo that has basically all of the none-deployable codes. Jeff and his team have a separate set of repos for the actual deployable code. They haven’t made the jump to where Kushal is advocating – using build tools. [00:50:20] – To open-source When you want an open-source portion of what you’re doing but not the entire company’s code base, Jeff thinks that there’s really no way out of having a separate repo for that. Google has this giant internal repo because not everything in it is open-source. Angular is open-source. That’s at least one driver that Angular is in the public Github repo and Google use so much of Angular. And some companies want the sort of open collaboration and free support and upgrades from the community. Other companies see that they’re giving away some kind of competitive advantage that they’re not willing to give up. [00:55:40] – Monorepo is better in all cases Jeff recognizes that there’s a number of organizations that have successfully implemented it but there isn’t an easy way for someone to do it. It’s not common knowledge and does not have a well-known set of tooling and best practices. There’s still a lot to go to get to the point where it’s a no-brainer and everybody knows how to do this the right way. Ward doesn’t know how to do a monorepo but according to him, if he is in an organization or starting an organization, he would go figure out how to do it and would want his organization to have a monorepo. Chuck tends to lean to monorepo but doesn't always do it either. Another caveat is even if he starts with the monorepo, that doesn’t mean that’s where he’s going to end. The answer is if you put them all in separate repos and it turns out that you need benefits of having them all in the same place, you can move them all in one repo. It may not be easy depending on how big and complicated you make your mono or the way you tie together your disparate repos. Kushal is all in. The only time that he wouldn’t do it is if he’s building disparate open-source projects and wanted them to play the open-source ecosystem. The net benefit is that everyone is moving together rapidly because monorepo is optimized for speed. But Kushal wishes that the tooling is better and that many people move to this model. Joe is also open to monorepo in a larger organization. He thinks that the separate repos keep things but monorepo can solve a lot of problems. [01:01:55] – Places to go Jeff has a bunch of articles for people who are pro-monorepo and are advocating for that. He has yet to find one that sets forth like a good mental model or decision framework. This is what Jeff hopes to create in the next couple of weeks before the conference. Picks Ward Bell Hiking Fishing Southern Sierras Chuck Max Wood Book: Profit First by Mike Michalowicz Ketogenic Diet Air-conditioning Joe Eames Book: Everybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are by Seth Stephens-Davidowitz Rent a scooter to ride around Rome Jeff Whelpley Survey: Monorepo vs Multirepo Twitter: @jeffwhelpley Medium: @jeffwhelpey Kushal Dave Technical Design Reviews Book: The Orphan Master’s Son Twitter: @krave Medium: Workflow
Startup Boston Podcast: Entrepreneurs | Investors | Influencers | Founders
Ellen Chisa started her career in Program Management at Microsoft then moved to Kickstarter as a Product Manager where she was the fiftieth employee. In 2015 she joined Lola Travel as the first employee as the VP of Product. Lola is Paul English’s second travel company, and connects travelers with in-house personal travel consultants who help you plan, book, and manage your travel, allowing you to have a more personalized and rewarding trip. In this episode, Ellen talks about: The differences between designing product for web and mobile How to break into a product position Why Lola uses real travel consultants instead of bots Misconceptions about the PM role What to think about before getting your MBA Links from today’s episode: Perry Chen Blade Angel (Formerly GoButler) Fin Barney Harford GetHuman Stripe Wistia The Jar to Quantify Creativity Rainbow Pencils Want to be a PM? Do a project I’m angry because I’m afraid Day One Trello Github Issues Zenhub The Skimm The Sun in Your Eyes Drafted Ellen’s blog If you liked this episode: Follow the podcast on Twitter Subscribe on iTunes or your podcast app and write a review Get in touch with feedback, ideas, or to say hi: nic {AT} startupbostonpodcast [DOT] com Music by: Broke For Free
Today I’m honored to have Jeff Whelpley on the show. Jeff is the CTO at GetHuman, and a regular contributor to the Angular Open Source community through his video podcast AngularAir and the Angular Universal project. In this episode Jeff guides us on how we can all contribute to the open source community
02:05 - Jeff Whelpley Introduction and Angular Universal Patterns Twitter Blog Jeffrey Whelpey & Patrick Stapleton: Angular 2 Universal Patterns @ ng-conf angular/universal 03:26 - Backend Implementations 05:07 - Drawbacks zone.js 12:46 - Contribution Patrick Stapleton Tobias Bosch Jeff Cross 16:42 - Caching 19:04 - Other Gotchas Session State App Container 25:40 - The User Experience Hydration 31:29 - Installation and Running Angular Universal 33:24 - The Release Schedule Picks BB-8 Sphero (Joe) Black Man in a White Coat: A Doctor's Reflections on Race and Medicine by Damon Tweedy (Joe) iPhreaks Show Episode 153: Using Mobile Devices to Manage Diabetes with Scott Hanselman (Chuck) The Freelancers' Show Episode 202: Live from MicroConf: Managing a Team with Anders Thue Pedersen (Chuck) DevChat.tv Survey (Chuck) GetHuman (Jeff)
02:05 - Jeff Whelpley Introduction and Angular Universal Patterns Twitter Blog Jeffrey Whelpey & Patrick Stapleton: Angular 2 Universal Patterns @ ng-conf angular/universal 03:26 - Backend Implementations 05:07 - Drawbacks zone.js 12:46 - Contribution Patrick Stapleton Tobias Bosch Jeff Cross 16:42 - Caching 19:04 - Other Gotchas Session State App Container 25:40 - The User Experience Hydration 31:29 - Installation and Running Angular Universal 33:24 - The Release Schedule Picks BB-8 Sphero (Joe) Black Man in a White Coat: A Doctor's Reflections on Race and Medicine by Damon Tweedy (Joe) iPhreaks Show Episode 153: Using Mobile Devices to Manage Diabetes with Scott Hanselman (Chuck) The Freelancers' Show Episode 202: Live from MicroConf: Managing a Team with Anders Thue Pedersen (Chuck) DevChat.tv Survey (Chuck) GetHuman (Jeff)
02:05 - Jeff Whelpley Introduction and Angular Universal Patterns Twitter Blog Jeffrey Whelpey & Patrick Stapleton: Angular 2 Universal Patterns @ ng-conf angular/universal 03:26 - Backend Implementations 05:07 - Drawbacks zone.js 12:46 - Contribution Patrick Stapleton Tobias Bosch Jeff Cross 16:42 - Caching 19:04 - Other Gotchas Session State App Container 25:40 - The User Experience Hydration 31:29 - Installation and Running Angular Universal 33:24 - The Release Schedule Picks BB-8 Sphero (Joe) Black Man in a White Coat: A Doctor's Reflections on Race and Medicine by Damon Tweedy (Joe) iPhreaks Show Episode 153: Using Mobile Devices to Manage Diabetes with Scott Hanselman (Chuck) The Freelancers' Show Episode 202: Live from MicroConf: Managing a Team with Anders Thue Pedersen (Chuck) DevChat.tv Survey (Chuck) GetHuman (Jeff)
Angular Universal Intros for new people History: Jeff’s story with GetHuman, Jeff and Patrick join forces, Getting Universal project going Why Server Rendering? SEO Performance Browser support Preview (i.e. Facebook, etc.) Cache Why Universal? Why not just use service workers? 2 modes of server rendering Can you use it to generate static websites? (Olivier) Pre-rendering vs re-rendering Diff between “universal” and “server rendering” Abstracting out your environment How does it work? (not preboot) Angular 2 Core Rendering Engine (NativeScript, WebWorker, etc.) Universal bootstrap process Preboot What is left before release? Production-ready Documentation Critical 3rd party services Multi-app support Performance Future Non-node.js back ends Crazy caching Partial page rendering and streaming Ng-conf 20 minutes Focused on patterns (i.e. how to deal with common challenges when building universal app) Tips & Picks PatrickJS Ng-Conf ng-conf.com AngularConnect angularconnect.com Jeff Whelpley Original design doc - https://docs.google.com/document/d/1q6g9UlmEZDXgrkY88AJZ6MUrUxcnwhBGS0EXbVlYicY/edit#heading=h.19ijfd7mxdt4 GetHuman - https://gethuman.com Wassim Patrick video readthesource universal - https://www.youtube.com/watch?v=qOjtFjXoebY Ari Fullstackreact.com (product plug) http://www.serverless.com (‘cause it’s cool) Olivier Ui router 1.0.0 alpha 1 All my libs are “unpublish” proof --- Support this podcast: https://anchor.fm/angularair/support
Sign up for Angular Remote Conf! 02:35 - Jeff Whelpley Introduction Twitter Blog GetHuman Angular Air 02:53 - Patrick Stapleton Introduction Twitter GitHhub Blog Angular Class 03:39 - Advantages of Server Rendering 14:28 - Universal & Isomorphic 24:11 - Caching and Load Balancing Rendering the Application Rendering the Application with Data 41:29 - Service Worker 43:02 - Bindings 46:36 - Rendering Angular 49:00 - Prerendering 52:41 - Rendering in Angular 2 58:38 - Time Table Picks 14 by Peter Clines (Lukas) ZPacks Cuben Fiber Arc Backpacks (Ward) Angular Remote Conf (Chuck) Iron Sharpens Iron (Chuck) View from the Top (Chuck) GetHuman (Jeff) Angular Universal (Jeff) Open Source (Patrick) Angular Summit (Patrick) AngularConnect (Patrick)
Sign up for Angular Remote Conf! 02:35 - Jeff Whelpley Introduction Twitter Blog GetHuman Angular Air 02:53 - Patrick Stapleton Introduction Twitter GitHhub Blog Angular Class 03:39 - Advantages of Server Rendering 14:28 - Universal & Isomorphic 24:11 - Caching and Load Balancing Rendering the Application Rendering the Application with Data 41:29 - Service Worker 43:02 - Bindings 46:36 - Rendering Angular 49:00 - Prerendering 52:41 - Rendering in Angular 2 58:38 - Time Table Picks 14 by Peter Clines (Lukas) ZPacks Cuben Fiber Arc Backpacks (Ward) Angular Remote Conf (Chuck) Iron Sharpens Iron (Chuck) View from the Top (Chuck) GetHuman (Jeff) Angular Universal (Jeff) Open Source (Patrick) Angular Summit (Patrick) AngularConnect (Patrick)
Sign up for Angular Remote Conf! 02:35 - Jeff Whelpley Introduction Twitter Blog GetHuman Angular Air 02:53 - Patrick Stapleton Introduction Twitter GitHhub Blog Angular Class 03:39 - Advantages of Server Rendering 14:28 - Universal & Isomorphic 24:11 - Caching and Load Balancing Rendering the Application Rendering the Application with Data 41:29 - Service Worker 43:02 - Bindings 46:36 - Rendering Angular 49:00 - Prerendering 52:41 - Rendering in Angular 2 58:38 - Time Table Picks 14 by Peter Clines (Lukas) ZPacks Cuben Fiber Arc Backpacks (Ward) Angular Remote Conf (Chuck) Iron Sharpens Iron (Chuck) View from the Top (Chuck) GetHuman (Jeff) Angular Universal (Jeff) Open Source (Patrick) Angular Summit (Patrick) AngularConnect (Patrick)