POPULARITY
Gene Tunny interviews William ‘Bill' Welser IV, the visionary behind Lotic, an AI startup designed to transform personal data into actionable insights while protecting user privacy. Bill discusses how Lotic's AI-powered digital companion is designed to help users make better decisions, improve mental health, and understand their behavior patterns. The episode dives into ethical considerations, data security, and the economic implications of widespread AI adoption.Please let Gene know your thoughts on this episode by emailing him at contact@economicsexplored.com.TimestampsIntroduction (0:00)Bill Welser's Vision for Lotic AI (3:14)Data Collection and User Interaction (6:18)Behavioral Insights and Health Applications (14:20)Privacy and Legal Considerations (32:51)User Demographics and Market Reach (34:58)Startup Journey and Future Plans (44:12)TakeawaysPersonalized AI as a Digital Companion: Lotic aims to transform individuals from passive data subjects into active agents by providing personalized insights. The AI helps users understand themselves better, make small behavioral changes, and potentially improve mental health, relationships, and job satisfaction.Privacy and Ethical Data Collection: Bill Welser emphasizes a deliberate, privacy-first approach to data collection. Lotic uses advanced cryptography, blockchain technology, and user-controlled data sharing to protect personal information, ensuring users have agency over their data and insights.Potential Economic Impact of AI: Welser suggests that as AI disrupts traditional job markets, individuals could leverage their personal data as a form of currency. He believes creating comprehensive, discrete personal data sets could help mitigate potential unemployment waves and provide new economic opportunities for people.Links relevant to the conversationLotic website:https://www.lotic.ai/CEO Magazine profile of Bill Welser IV:https://digitalmag.theceomagazine.com/william-welser-iv/?r=globalEverybody Lies: Big Data, New Data, and What the Internet Can Tell Us about Who We Really Arehttps://www.amazon.com.au/Everybody-Lies-Internet-About-Really/dp/0062390856Lumo Coffee promotion10% of Lumo Coffee's Seriously Healthy Organic Coffee.Website: https://www.lumocoffee.com/10EXPLOREDPromo code: 10EXPLORED Full transcripts are available a few days after the episode is first published at www.economicsexplored.com.
Truth in Learning: in Search of Something! Anything!! Anybody?
This episode's topics: Is AI cheating? What is the impact on intellectual property? Learner assessment? Heck, even job replacement? These questions are both philosophical and pragmatic. What about the value of critical thinking... and does AI take that application away? We explore ways to use AI more effectively... but recognize we cannot even fathom some of the consequences, yet. In the spirit of Christmas and Santa Claus, is it ok to ever lie to your learners? What is the value of the "white lie?" What is fiction in the context of learning? Is it a lie? How do we use or adapt case studies? We discuss the more nuanced, ethical questions related to the truth in the context of learning. Joining Matt and Clark is Karl Kapp. Karl is a professor of instructional technology and the Director of the Institute for Interactive Technologies at Bloomsburg University. He is also the founder of the Learning and Development Mentor Academy where he offers tons of self-paced workshops and live sessions for seasoned L&D professionals. He also co-founded Enterprise Game Stack, a company that designs, develops and delivers online, digital card activities and games that keep participants focused, engaged, and collaborative, while reinforcing learning both in the moment and over time. You can find Karl on LinkedIn here: https://www.linkedin.com/in/karlkapp/ And on his website here: https://karlkapp.com Episode Notes: Matt refers to the book, Everybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are by Seth Stephens-Davidowitz. https://www.amazon.com/Everybody-Lies-Internet-About-Really-ebook/dp/B01AFXZ2F4/ref=sr_1_1?crid=32XE7RFU8662&keywords=Everybody+lies&qid=1703693836&sprefix=everybody+lies%2Caps%2C98&sr=8-1 Karl refers to Damned Lies and Statistics by Joel Best. https://www.amazon.com/Damned-Lies-Statistics-Untangling-Politicians/dp/0520274709/ref=sr_1_1?crid=1NIS0ITNOKV1A&keywords=lies%2C+damned+lies%2C+and+statistics&qid=1703693953&sprefix=Lies%2C+damned+li%2Caps%2C92&sr=8-1 Clark refers to Cognitive apprenticeship: Teaching the crafts of reading, writing, and mathematics by Allan Collins, John Seely Brown, and Susan E. Newman. https://psycnet.apa.org/record/1989-98135-013 Scott Page wrote The Model Thinker: What You Need To Know To Make Data Work For You. https://www.amazon.com/Model-Thinker-What-Need-Know-ebook/dp/B07B8D3V9V/ref=sr_1_1?crid=12ZCGDWY9C3GI&keywords=The+Model+Thinker&qid=1703694035&sprefix=the+model+thinker%2Caps%2C98&sr=8-1 And, Scott is from the University of Michigan.
Brought to you by Vanta—Automate compliance. Simplify security | Sidebar—Catalyze your career with a Personal Board of Directors | Merge—A single API to add hundreds of integrations into your app—Christopher Miller serves as the VP of Product for Growth and AI at HubSpot. Having spent the past seven years at HubSpot, Chris has been at the center of one of the biggest B2B growth stories in history—leading HubSpot's early growth strategy, their shift to PLG, and now their investment in AI. Beyond his role at HubSpot, he lends his expertise to founders advising them on PLG and their growth strategy broadly. In today's podcast, we discuss:• The principles of winning teams, careers, and companies• What customer obsession looks like in practice• How sneaking into a party led to a career opportunity• Advice for breaking into product management• How to find mentors• The top four skills for growth roles• Lessons from building HubSpot's famous PLG motion—Find the full transcript at: https://www.lennyspodcast.com/relentless-curiosity-radical-accountability-and-hubspots-winning-growth-formula-christopher-mil/#transcript—Where to find Chris Miller:• LinkedIn: https://www.linkedin.com/in/christopherwilliammiller/• Instagram: https://www.instagram.com/millsyjoeyoung/—Where to find Lenny:• Newsletter: https://www.lennysnewsletter.com• Twitter: https://twitter.com/lennysan• LinkedIn: https://www.linkedin.com/in/lennyrachitsky/—In this episode, we cover:(00:00) Chris's background(04:15) Chris's role at HubSpot leading Growth and AI teams(09:17) The story of how Chris crashed a party and pitched his idea around pricing and packaging(12:25) Relentless curiosity and other important traits to have as a PM(16:52) How Chris broke into product management and advice for others wanting to do the same(22:12) Helpful tips for learning the craft of product management(26:30) Why you should talk to customers, former customers, and potential customers(29:34) Mentors vs. sponsors, and advice for finding people who will help you grow(34:02) What makes HubSpot unique(36:07) Customer obsession in action(40:23) How staying in the mid-market space has benefited HubSpot(42:10) HubSpot's culture code(45:10) Fun rituals at HubSpot(47:36) Key elements that contributed to HubSpot's early growth(55:00) Fallacies of product-led companies and how HubSpot embraced PLG(1:00:48) Advice for companies wanting to become more product-led(1:04:35) Common mistakes to avoid when trying to start a PLG motion(1:07:53) How HubSpot structures growth loops(1:10:50) The importance of aggressive experimentation within new channels(1:16:11) How Covid accelerated growth at HubSpot(1:17:59) Lightning round—Referenced:• Kyle Poyar on LinkedIn: https://www.linkedin.com/in/kyle-poyar/• Mariah Muscato on LinkedIn: https://www.linkedin.com/in/mariahmuscato/• Ken Norton on Lenny's Podcast: https://www.lennyspodcast.com/how-to-unlock-your-product-leadership-skills-ken-norton-ex-google/• Fareed Mosavat on Lenny's Podcast: https://www.lennyspodcast.com/videos/how-to-build-trust-and-grow-as-a-product-leader-fareed-mosavat-reforge-slack-instacart-pixar/• Jules Walter on Lenny's Podcast: https://www.lennyspodcast.com/leveraging-mentors-to-uplevel-your-career-jules-walter-youtube-slack/• The Culture Code at HubSpot: https://blog.hubspot.com/blog/tabid/6307/bid/34234/the-hubspot-culture-code-creating-a-company-we-love.aspx• Brian Balfour on LinkedIn: https://www.linkedin.com/in/bbalfour/• Dharmesh on Twitter: https://twitter.com/dharmesh• ChatSpot: https://chatspot.ai/• Everybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are: https://www.amazon.com/Everybody-Lies-Internet-About-Really/dp/0062390856• Chop Wood Carry Water: How to Fall in Love with the Process of Becoming Great: https://www.amazon.com/Chop-Wood-Carry-Water-Becoming/dp/153698440X• The Score Takes Care of Itself: My Philosophy of Leadership: https://www.amazon.com/Score-Takes-Care-Itself-Philosophy/dp/1591843472/• I'm a Virgo on Amazon Prime: https://www.amazon.com/Im-A-Virgo-Season-1/dp/B0B8PXXV2M• Barry on HBO: https://www.hbo.com/barry• Succession on HBO: https://www.hbo.com/succession• Building a great product management organization: https://stripe.com/it-es/guides/atlas/building-a-great-pm-org• Garmin watch: https://www.amazon.com/Garmin-010-02174-01-Vivoactive-Smartwatch-Refurbished/dp/B0BPCNKBW1• Fernet: https://en.wikipedia.org/wiki/Fernet—Production and marketing by https://penname.co/. For inquiries about sponsoring the podcast, email podcast@lennyrachitsky.com.—Lenny may be an investor in the companies discussed. Get full access to Lenny's Newsletter at www.lennysnewsletter.com/subscribe
In our first ever live and in-person episode, we chat with Sandra Matz about the opportunities and challenges for using big data to understand human behavior Links Everybody lies book (https://www.amazon.com/Everybody-Lies-Internet-About-Really/dp/0062390856), by Seth Stephens-Davidowitz A paper (https://link.springer.com/article/10.3758/s13428-015-0630-z) on "Born open" data Other links Everything Hertz on social media - Dan on twitter (https://www.twitter.com/dsquintana) - James on twitter (https://www.twitter.com/jamesheathers) - Everything Hertz on twitter (https://www.twitter.com/hertzpodcast) - Everything Hertz on Facebook (https://www.facebook.com/everythinghertzpodcast/) Support us on Patreon (https://www.patreon.com/hertzpodcast) and get bonus stuff! $1 per month: A 20% discount on Everything Hertz merchandise, access to the occasional bonus episode, and the the warm feeling you're supporting the show $5 per month or more: All the stuff you get in the one dollar tier PLUS a bonus episode every month Citation Quintana, D.S., Heathers, J.A.J. (Hosts). (2023, May 31) "169: Using big data to understand behavior (Live episode with Sandra Matz)", Everything Hertz [Audio podcast], DOI: 10.17605/OSF.IO/JDXHF Special Guest: Sandra Matz.
Real Estate Uncensored - Real Estate Sales & Marketing Training Podcast
We get into real estate because we want to take control of our careers, and none of us wants to play in the minor leagues. However, so often, that's what happens. How can we shift out of doing ‘okay' and start taking steps towards greatness? What's separating the big players from everyone else? Do we have what it takes to become a force to be reckoned with? In this episode, we dive deep into why making it to the big leagues is surprisingly simple. Three Things You'll Learn in This Episode Why we need to stop trying to do it all How can we tell if we're creating freedom for ourselves as agents, or if we've just created glorified jobs for ourselves? How to deliver a stronger brand message Are we more likely to get better results if we're sharing a ton of different messages, or should we be taking another approach? How to transform our business in 12 months Is it possible to make massive changes in our strategies (and our results!) in just one year? Guest Bio Connect with your hosts: https://www.klevrleads.com/ https://www.facebook.com/Nick.J.Sakkis http://genevolpe.com/ And call or text Greg on 925 915 1978 Books mentioned in this episode: https://www.amazon.com/ONE-Thing-Surprisingly-Extraordinary-Results/dp/1885167776 https://www.amazon.com/Tiny-Habits-Changes-Change-Everything/dp/0358003326 https://www.amazon.com/Everybody-Lies-Internet-About-Really/dp/0062390856
Olga Andrienko is a Search Engine Optimization and content marketing expert at SEMRush. She walks us through the process of selecting keywords and designing content to get a snippet, or better spot on Google and other search engine searches. Panelists Brad Large Charles Max Wood Brooks Forsyth Guest Olga Andrienko Sponsors G2i Sentry | Use the code “devchat” for $100 credit CacheFly ____________________________________________________________ "The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today! ____________________________________________________________ Picks Olga Adrienko: Everybody Lies Charles Max Wood: The Man In the High Castle Magician: Master Ready Fire Aim Brad Large: Yoast Kai Davis' Emails
Olga Andrienko is a Search Engine Optimization and content marketing expert at SEMRush. She walks us through the process of selecting keywords and designing content to get a snippet, or better spot on Google and other search engine searches. Panelists Brad Large Charles Max Wood Brooks Forsyth Guest Olga Andrienko Sponsors G2i Sentry | Use the code “devchat” for $100 credit CacheFly ____________________________________________________________ "The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today! ____________________________________________________________ Picks Olga Adrienko: Everybody Lies Charles Max Wood: The Man In the High Castle Magician: Master Ready Fire Aim Brad Large: Yoast Kai Davis' Emails
We’ve lurked in the waters of San Francisco Bay to catch arguably the most outspoken and controversial voice in the industry; the bullshit detecting bulldog, Bob Hoffman. He is the acerbic wit behind the highly popular ‘Ad Contrarian’ blog, named one of the world’s most influential marketing and advertising blogs by Business Insider, and is the author of four Amazon Number 1 selling books about advertising. Bob’s commentary has appeared in the likes of BBC World Service, The Wall Street Journal, the Financial Times and Forbes. He talks to us on his early career as an adult fiction writer (!!!), ad fraud, his experience of client and agency side, the great danger of tracking and surveillance in online advertising, the de-valuation of creativity, his writing of a new book and so much more. ///// Bob Links: Follow Bob on LinkedIn (https://www.linkedin.com/in/bobhoffman3/) On the Twitter (https://twitter.com/AdContrarian) Here is his AdContrarian blog (http://adcontrarian.blogspot.com) And his website (https://www.bobhoffmanswebsite.com) You can also check out the details on his 4 published books here (https://www.bobhoffmanswebsite.com/writing) Book Recommendations: The Anatomy of Humbug (https://www.amazon.co.uk/Anatomy-Humbug-Think-Differently-Advertising/dp/1784621927) by Paul Feldwick The Choice Factory (https://www.amazon.co.uk/Choice-Factory-behavioural-biases-influence/dp/085719609X) by Richard Shotton One Plus One Equals Three (https://www.amazon.co.uk/One-Plus-Equals-Three-Masterclass/dp/1447287053) by Dave Trott Predatory Thinking (https://www.amazon.com/Predatory-Thinking-Dave-Trott/dp/1447285344/) by Dave Trott The Big Book of Rants (https://www.amazon.com/gp/product/0692703314) by Rich Siegel Everybody Lies (https://www.amazon.com/Everybody-Lies-Internet-About-Really/dp/0062390864) by Seth Stephens-Davidowitz Alchemy (https://www.amazon.com/Thing-Which-Has-No-Name/dp/0753556510) by Rory Sutherland /////
In this episode, Caleb talks with Seth Stephens-Davidowitz about his book, Everybody Lies. ------------- *Guest Links* ------------- [Seth on Twitter][1] [Everybody Lies by Seth Stephens-Davidowitz][2] ----------------- *Links Mentioned* ----------------- [Episode 82 with Joseph Sojourner][3] [Episode 76 with Dave Adamson][4] [Caleb on Instagram][5] [Caleb on GoodReads][6] [Caleb on Medium][7] [Enlightenment Now by Steven Pinkner][8] [Lost Connections by Johann Hari][9] ----------------- *What We Learned* ----------------- What big data is The world doesn't work the way we think it works. Everybody has issues and is a little weird. Why it's important to pursue uncomfortable truths How to recognize false patterns ------------------------------------------------ *New Episode Every Tuesday and Thursday in June* ------------------------------------------------ Thank you for listening to the Learner's Corner Podcast. We hope you'll join us for next week's episode. Until next time, keep learning and keep growing. [1]: https://twitter.com/SethS_D [2]: https://www.amazon.com/Everybody-Lies-Internet-About-Really/dp/0062390856/ref=sr_1_1?s=books&ie=UTF8&qid=1529187243&sr=1-1&keywords=everybody%20lies%20big%20data,%20new%20data,%20and%20what%20the%20internet%20can%20tell%20us&dpID=511LZBXbRpL&preST= SY344_BO1,204,203,200_QL70 &dpSrc=srch [3]: https://simplecast.com/s/b1ae48f0 [4]: https://simplecast.com/s/d097a4ff [5]: https://www.instagram.com/calebjmason/ [6]: https://www.goodreads.com/user/show/36109048-caleb-mason [7]: https://medium.com/@calebmason91 [8]: https://www.amazon.com/Enlightenment-Now-Science-Humanism-Progress/dp/0525427570/ref=sr_1_2?ie=UTF8&qid=1529187676&sr=8-2&keywords=enlightenment%20now&dpID=51baoEVDKJL&preST= SY291_BO1,204,203,200_QL40 &dpSrc=srch [9]: https://www.amazon.com/Lost-Connections-Uncovering-Depression-Unexpected/dp/163286830X/ref=sr_1_1?s=books&ie=UTF8&qid=1529187715&sr=1-1&keywords=lost%20connections%20uncovering%20the%20real%20causes%20of%20depression&dpID=51-K9qPGqsL&preST= SY291_BO1,204,203,200_QL40 &dpSrc=srch
Panel: Reuven Learner Jeremy Green Erik Dietrich Jonathan Stark In this episode of the Freelancers’ Show, the panelists discuss chaos clients. Chaos clients are long-time clients who are disorganized, reactive, and constantly wait for things to blow up before “pulling the fire alarm.” These types of clients are disruptive to any business, and so the panelists discuss some things you can do if you have chaos clients. They also touch on how each of the respective panelists deal with these clients and their thoughts on the best and worse ways of dealing with a client’s self-inflicted problems. In particular, we dive pretty deep on: What is a chaos client? What can you do when you have a chaos client? Decide whether or not you want to keep the client Maybe fire them if you can’t see them changing Have individual fire-drill pricing Wait to address the situation in a low-emotion time Try to become more proactive in the future with them Higher price tags for these clients Price tag for your misery vs getting rid of these clients Be careful with just raising prices Push back in ways that make the client revise their priorities Understanding that not everything needs to be done ASAP Part of your job is to calm clients down Helping a client with an actual emergency vs helping a client who self-inflicts problems Chronic chaos clients Preventing these “fire drills” in the future Only push off other projects when talking with the person of authority on the project Pricing can be used to discourage clients from doing things And much, much more! Sponsors: FreshBooks Linode Picks: Jonathan The Expert Video Flawless Consulting The Freelancer's Roadmap by Jonathan Stark Reuven Everybody Lies by Seth Stephens-Davidowitz Weekly Python Exercise Jeremy Remarq The Key to Increasing Your Consulting Fees Erik Horkey Handbook
Panel: Reuven Learner Jeremy Green Erik Dietrich Jonathan Stark In this episode of the Freelancers’ Show, the panelists discuss chaos clients. Chaos clients are long-time clients who are disorganized, reactive, and constantly wait for things to blow up before “pulling the fire alarm.” These types of clients are disruptive to any business, and so the panelists discuss some things you can do if you have chaos clients. They also touch on how each of the respective panelists deal with these clients and their thoughts on the best and worse ways of dealing with a client’s self-inflicted problems. In particular, we dive pretty deep on: What is a chaos client? What can you do when you have a chaos client? Decide whether or not you want to keep the client Maybe fire them if you can’t see them changing Have individual fire-drill pricing Wait to address the situation in a low-emotion time Try to become more proactive in the future with them Higher price tags for these clients Price tag for your misery vs getting rid of these clients Be careful with just raising prices Push back in ways that make the client revise their priorities Understanding that not everything needs to be done ASAP Part of your job is to calm clients down Helping a client with an actual emergency vs helping a client who self-inflicts problems Chronic chaos clients Preventing these “fire drills” in the future Only push off other projects when talking with the person of authority on the project Pricing can be used to discourage clients from doing things And much, much more! Sponsors: FreshBooks Linode Picks: Jonathan The Expert Video Flawless Consulting The Freelancer's Roadmap by Jonathan Stark Reuven Everybody Lies by Seth Stephens-Davidowitz Weekly Python Exercise Jeremy Remarq The Key to Increasing Your Consulting Fees Erik Horkey Handbook
Josh & Devin re-visit a crazy NCAA tournament and give props to the UMBC Twitter account https://twitter.com/UMBCAthletics Sharing is Caring: New YouTube Live: https://youtube-creators.googleblog.com/2018/03/making-it-easier-to-go-live.html Everybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are: https://www.amazon.com/Everybody-Lies-Internet-About-Really/dp/0062390856/ref=sr_1_1?ie=UTF8&qid=1521684665&sr=8-1&keywords=everybody+lies+big+data%2C+new+data%2C+and+what+the+internet+can+tell+us
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
Future Squared with Steve Glaveski - Helping You Navigate a Brave New World
Seth Stephens-Davidowitz is a New York Times op-ed contributor, a visiting lecturer at The Wharton School, and a former Google data scientist. He received a BA in philosophy from Stanford, where he graduated Phi Beta Kappa, and a PhD in economics from Harvard. His research—which uses new, big data sources to uncover hidden behaviors and attitudes—has appeared in the Journal of Public Economics and other prestigious publications and has just surfaced in his new book, Everybody Lies - New Data, and What the Internet Can Tell Us About Who We Really Are, which explores what the vast amounts of information now instantly available to us reveals about ourselves and our world. Expect to learn a number of things in this episode of Future Squared, including: - Topics Discussed: - What kinds of things we usually tell Google that we wouldn’t tell our loved ones - The connection between the school you go and your level of success in life - How AI and machine learning can behave in a way that may be construed as racist - Correlation and causation - How companies can use data to build better products - Why customer surveys don’t work - What most startups get wrong about AB testing - How much data is enough when testing assumptions underpinning a new product idea - How your Google search history can be used to identify health risk factors and diagnose users - Are we collecting too much data to the point where it’s difficult to extract anything meaningful? - Are ‘online echo chambers’ are actually a thing? - How data can be used to mitigate decisions that stem from our personal biases and entrenched belief systems - Why the real us often shows up at 2am on PornHub Show Notes: Web: Sethsd.com Twitter: @SethS_D Amazon: www.amazon.com/Everybody-Lies-Internet-About-Really/dp/0062390856 Listen on iTunes: goo.gl/sMnEa0 Listen on Stitcher: www.stitcher.com/podcast/future If you've got any questions on this podcast feel free to send an email to steve@collectivecamp.us or tweet me on Twitter @steveglaveski or @future_squared Like us? It'd make our day if you took 1 minute to show some love on iTunes, Stitcher or Soundcloud by subscribing, sharing and giving us a 5 star rating. To sign up to our mailing list head to www.futuresquared.xyz For more information on Collective Campus, our innovation hub, school and consultancy based in Australia and Singapore check out www.collectivecamp.us