POPULARITY
Data analytics and business intelligence involve collecting, processing, and interpreting data to guide decision-making. A common challenge in data-focused organizations is how to make data accessible to the wider organization, without the need for large data teams. Metabase is an open source business intelligence tool that focuses on data exploration, visualization, and analysis. It offers The post Open Source Data Analytics with Sameer Al-Sakran appeared first on Software Engineering Daily.
Data analytics and business intelligence involve collecting, processing, and interpreting data to guide decision-making. A common challenge in data-focused organizations is how to make data accessible to the wider organization, without the need for large data teams. Metabase is an open source business intelligence tool that focuses on data exploration, visualization, and analysis. It offers The post Open Source Data Analytics with Sameer Al-Sakran appeared first on Software Engineering Daily.
Es gibt viele Wege ein Problem zu lösen, doch wie würdest du es tun?Softwareentwicklung ist weit mehr als nur Programmieren. Es geht darum, das eigentliche Problem zu verstehen, sich zu fragen, ob dies wirklich ein Problem ist und ob es sich (in Bezug auf den Aufwand) lohnt, dieses Problem zu lösen und wie man es lösen würde. Verschiedene Lösungswege zu durchdenken, die Vor- und Nachteile abzuwägen und final die beste Entscheidung zu treffen, ist einer der größten Skills von erfahrenen Softwareentwickler*innen.In dieser Episode machen wir genau das: Eine Art Design- bzw. Architektur- bzw. Implementierungs-Diskussion. Wir stellen die Frage “Wie würdest du folgendes Problem lösen und implementieren?”. Das Szenario ist dabei eine Art Preis-Monitor. Ähnlich wie Geizhals oder Idealo, doch deutlich simpler.Bonus: Brauchen wir ein Cron-Package in jeder Programmiersprache?Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partnersDas schnelle Feedback zur Episode:
Dans cet épisode, je reçois Guillaume, CEO de Green Go, une plateforme de voyage durable qui ambitionne de devenir un acteur clé du tourisme éco-responsable en Europe.Dès le premier jour, Green Go a misé sur une stratégie data-driven pour structurer son marketing, optimiser ses décisions et maximiser chaque euro investi. Guillaume partage avec nous son approche, ses outils et ses apprentissages pour piloter efficacement une entreprise dans un marché complexe et compétitif.Points clés abordés dans l'épisodePourquoi structurer une stratégie marketing autour de la data dès le départ.Les outils indispensables pour un suivi efficace des données : MetaBase, MixPanel, SEMrush, Customer.io.Comment éviter l'éparpillement en se concentrant sur les KPIs clés.Trouver l'équilibre entre branding et performance grâce à la data.Les résultats obtenus et les leçons apprises après plusieurs années de pilotage data-driven.Guillaume nous montre comment transformer la data en un levier puissant pour structurer et faire évoluer son marketing. Un épisode riche en conseils pratiques pour adopter une approche data-driven.⚙️ Les outils évoqués :MetaBase, MixPanel, SEMrush, Customer.io
Guest Nolan Lawson Panelist Richard Littauer | Eric Berry | Justin Dorfman Show Notes In this episode of Sustain, Richard, Justin, and Eric revisit an unreleased interview with Nolan Lawson from 2020. They discuss Nolan's experience as a former maintainer of PouchDB, the emotional labor of being an open source maintainer, and the challenges that led him to step away from such high-profile projects. Nolan also shares his thoughts on the impact of reputation-driven development, open source community dynamics, and his journey towards a healthier relationship with open source. The conversation delves into the candid realities of burnout and the personal sacrifices often made by unpaid open source contributors. Nolan highlights his transition to more sustainable open source practices and his new interests including his work on a Mastodon client called Pinafore. Download now to hear more! [00:01:43] Nolan explains his background with PouchDB and shares his fascination with databases and browser technologies. [00:02:58] Richard shares his personal connection to PouchDB, mentioning how he discovered Nolan through his work on the project. [00:03:26] Nolan talks about his blog post form 2017 titled, “What it feels like to be an open source maintainer,” which reflected on the emotional toll and burnout he experienced for maintaining PouchDB. [00:05:33] Justin reflects on the impact of Nolan's blog post, describing it as a “shot heard around the world” in the open source community. [00:06:48] Eric asks why Nolan and other maintainers stay involved in open source despite the challenges. Nolan explains that reputational benefits and personal interest in the technology were initial motivators for staying involved. [00:10:27] Eric asks Nolan how he realized it was time to step away from maintaining PouchDB. Nolan shares that personal life changes helped him reassess his involvement in open source and reflects on advice he received from other maintainers. [00:14:36] Richard emphasizes the personal and emotional investment many maintainers have in their projects and Nolan acknowledges the privilege of being able to work on open source, but also the challenges it poses for maintainers who feel they cannot leave. [00:21:13] Nolan shares stepping away from PouchDB has improved his mental health and personal relationships and he maintains smaller open source projects. [00:24:00] Nolan explains the importance of being personally invested in a project and realizing when it's time to move on and Justin reflects on his own experience of stepping away from maintaining a project after years of involvement. [00:26:00] Eric asks if funding could have made a difference for Nolan's involvement in open source, and Nolan shares that he avoided funding, preferring to keep his work as a “labor of love.” [00:26:52] What is Nolan currently doing? He talks about maintaining a Mastodon client and focusing on personal projects that bring him joy. [00:30:00] Richard discusses the importance of balancing open source work with personal life and the need for a sustainable approach to maintaining projects. [00:30:46] Eric highlights the vulnerability and self-awareness Nolan has shown in discussing his open source journey, thanking him for sharing his experiences. [00:33:13] Find out where you can follow Nolan on the internet. Spotlight [00:33:41] Justin's spotlight is Metabase. [00:34:16] Eric's spotlight is Parametric. [00:35:08] Richard's spotlight is IPFS. [00:35:22] Nolan's spotlight is fake-indexeddb. Links SustainOSS (https://sustainoss.org/) podcast@sustainoss.org (mailto:podcast@sustainoss.org) richard@sustainoss.org (mailto:richard@sustainoss.org) SustainOSS Discourse (https://discourse.sustainoss.org/) SustainOSS Mastodon (https://mastodon.social/tags/sustainoss) Open Collective-SustainOSS (Contribute) (https://opencollective.com/sustainoss) Richard Littauer Socials (https://www.burntfen.com/2023-05-30/socials) Justin Dorfman X (https://twitter.com/jdorfman?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor) Eric Berry X (https://x.com/coderberry?lang=en) Nolan Lawson Blog (https://nolanlawson.com/) Nolan Lawson Mastodon (https://toot.cafe/@nolan) “What it feels like to be an open source maintainer” (Blog post by Nolan) (https://nolanlawson.com/2017/03/05/what-it-feels-like-to-be-an-open-source-maintainer/) PouchDB (https://pouchdb.com/) Pinafore (https://pinafore.social/) Salesforce (https://www.salesforce.com/) Working in Public: The Making and Maintenance of Open Source Software by Nadia Eghbal (https://press.stripe.com/working-in-public) Metabase (https://www.metabase.com/) Parametric (https://github.com/ismasan/parametric) IPFS (https://www.ipfs.com/) fake-indexeddb (GitHub) (https://github.com/dumbmatter/fakeIndexedDB) Credits Produced by Richard Littauer (https://www.burntfen.com/) Edited by Paul M. Bahr at Peachtree Sound (https://www.peachtreesound.com/) Show notes by DeAnn Bahr Peachtree Sound (https://www.peachtreesound.com/) Special Guest: Nolan Lawson.
Sameer Al-Sakran is CEO of Metabase, the open-source analytics and business intelligence platform. Their open source project, also called metabase, has over 38K stars on GitHub. Metabase has raised $51M from investors including NEA, Insight and Expa. In this episode, we dig into the company's 10 year journey, what it means to have a "developer friendly analytics platform", eliminating the friction with BI by making Metabase super fast to get started with, keeping the product simple, juggling short-term execution with their long-term vision & more!
Welcome to Growthmates. This is Kate Syuma, Growth advisor, previously Head of Growth Design at Miro. I'm building Growthmates as a place to connect with inspiring leaders to help you grow yourself and your product. Here you can learn how companies like Dropbox, Adobe, Canva, Loom and many more are building excellent products and growth culture. Get all episodes and a free playbook for Growth teams on our brand-new website — growthamtes.club, and press follow to support us on your favorite platforms. Thanks for reading Kate's Syuma Newsletter & Growthmates! Subscribe for free to receive new posts and support my work.Listen now and subscribe on your favorite platforms — Apple, Spotify, or watch on YouTube (new!).In this episode, I met Bruno Berger — a VP of Design and Product Management who worked in companies like Google, Metabase, and now he's teaching “Design for PMs” on Reforge. We discuss Bruno's career journey, the integration of design and product management, and best practices for improving collaboration between designers and PMs. We also explored Bruno's strategies for combining design and product management to enhance team collaboration and project success.By the end of this episode, you can learn how to make your PM and Design collaboration better by adjusting the ways of working, building trust, and how to align faster to make it the most rewarding thinking partnership.This episode is supported by Appcues — the platform that helps you design, deploy, and test captivating onboarding experiences.Appcues created the Product Adoption Academy to help you level up your product adoption for free. Check out the template that I created to help companies uncover meaningful improvements. Find an example of Dropbox Onboarding inside and apply it to review any growth flows: appcues.com/growthmatesKey highlights from this episode that you can implement right away
Summary Maintaining a single source of truth for your data is the biggest challenge in data engineering. Different roles and tasks in the business need their own ways to access and analyze the data in the organization. In order to enable this use case, while maintaining a single point of access, the semantic layer has evolved as a technological solution to the problem. In this episode Artyom Keydunov, creator of Cube, discusses the evolution and applications of the semantic layer as a component of your data platform, and how Cube provides speed and cost optimization for your data consumers. Announcements Hello and welcome to the Data Engineering Podcast, the show about modern data management This episode is brought to you by Datafold – a testing automation platform for data engineers that prevents data quality issues from entering every part of your data workflow, from migration to dbt deployment. Datafold has recently launched data replication testing, providing ongoing validation for source-to-target replication. Leverage Datafold's fast cross-database data diffing and Monitoring to test your replication pipelines automatically and continuously. Validate consistency between source and target at any scale, and receive alerts about any discrepancies. Learn more about Datafold by visiting dataengineeringpodcast.com/datafold (https://www.dataengineeringpodcast.com/datafold). Dagster offers a new approach to building and running data platforms and data pipelines. It is an open-source, cloud-native orchestrator for the whole development lifecycle, with integrated lineage and observability, a declarative programming model, and best-in-class testability. Your team can get up and running in minutes thanks to Dagster Cloud, an enterprise-class hosted solution that offers serverless and hybrid deployments, enhanced security, and on-demand ephemeral test deployments. Go to dataengineeringpodcast.com/dagster (https://www.dataengineeringpodcast.com/dagster) today to get started. Your first 30 days are free! Data lakes are notoriously complex. For data engineers who battle to build and scale high quality data workflows on the data lake, Starburst powers petabyte-scale SQL analytics fast, at a fraction of the cost of traditional methods, so that you can meet all your data needs ranging from AI to data applications to complete analytics. Trusted by teams of all sizes, including Comcast and Doordash, Starburst is a data lake analytics platform that delivers the adaptability and flexibility a lakehouse ecosystem promises. And Starburst does all of this on an open architecture with first-class support for Apache Iceberg, Delta Lake and Hudi, so you always maintain ownership of your data. Want to see Starburst in action? Go to dataengineeringpodcast.com/starburst (https://www.dataengineeringpodcast.com/starburst) and get $500 in credits to try Starburst Galaxy today, the easiest and fastest way to get started using Trino. Your host is Tobias Macey and today I'm interviewing Artyom Keydunov about the role of the semantic layer in your data platform Interview Introduction How did you get involved in the area of data management? Can you start by outlining the technical elements of what it means to have a "semantic layer"? In the past couple of years there was a rapid hype cycle around the "metrics layer" and "headless BI", which has largely faded. Can you give your assessment of the current state of the industry around the adoption/implementation of these concepts? What are the benefits of having a discrete service that offers the business metrics/semantic mappings as opposed to implementing those concepts as part of a more general system? (e.g. dbt, BI, warehouse marts, etc.) At what point does it become necessary/beneficial for a team to adopt such a service? What are the challenges involved in retrofitting a semantic layer into a production data system? evolution of requirements/usage patterns technical complexities/performance and cost optimization What are the most interesting, innovative, or unexpected ways that you have seen Cube used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Cube? When is Cube/a semantic layer the wrong choice? What do you have planned for the future of Cube? Contact Info LinkedIn (https://www.linkedin.com/in/keydunov/) keydunov (https://github.com/keydunov) on GitHub Parting Question From your perspective, what is the biggest gap in the tooling or technology for data management today? Closing Announcements Thank you for listening! Don't forget to check out our other shows. Podcast.__init__ (https://www.pythonpodcast.com) covers the Python language, its community, and the innovative ways it is being used. The Machine Learning Podcast (https://www.themachinelearningpodcast.com) helps you go from idea to production with machine learning. Visit the site (https://www.dataengineeringpodcast.com) to subscribe to the show, sign up for the mailing list, and read the show notes. If you've learned something or tried out a project from the show then tell us about it! Email hosts@dataengineeringpodcast.com (mailto:hosts@dataengineeringpodcast.com)) with your story. Links Cube (https://cube.dev/) Semantic Layer (https://en.wikipedia.org/wiki/Semantic_layer) Business Objects (https://en.wikipedia.org/wiki/BusinessObjects) Tableau (https://www.tableau.com/) Looker (https://cloud.google.com/looker/?hl=en) Podcast Episode (https://www.dataengineeringpodcast.com/looker-with-daniel-mintz-episode-55/) Mode (https://mode.com/) Thoughtspot (https://www.thoughtspot.com/) LightDash (https://www.lightdash.com/) Podcast Episode (https://www.dataengineeringpodcast.com/lightdash-exploratory-business-intelligence-episode-232/) Embedded Analytics (https://en.wikipedia.org/wiki/Embedded_analytics) Dimensional Modeling (https://en.wikipedia.org/wiki/Dimensional_modeling) Clickhouse (https://clickhouse.com/) Podcast Episode (https://www.dataengineeringpodcast.com/clickhouse-data-warehouse-episode-88/) Druid (https://druid.apache.org/) BigQuery (https://cloud.google.com/bigquery?hl=en) Starburst (https://www.starburst.io/) Pinot (https://pinot.apache.org/) Snowflake (https://www.snowflake.com/en/) Podcast Episode (https://www.dataengineeringpodcast.com/snowflakedb-cloud-data-warehouse-episode-110/) Arrow Datafusion (https://arrow.apache.org/datafusion/) Metabase (https://www.metabase.com/) Podcast Episode (https://www.dataengineeringpodcast.com/metabase-with-sameer-al-sakran-episode-29) Superset (https://superset.apache.org/) Alation (https://www.alation.com/) Collibra (https://www.collibra.com/) Podcast Episode (https://www.dataengineeringpodcast.com/collibra-enterprise-data-governance-episode-188) Atlan (https://atlan.com/) Podcast Episode (https://www.dataengineeringpodcast.com/atlan-data-team-collaboration-episode-179) The intro and outro music is from The Hug (http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/Love_death_and_a_drunken_monkey/04_-_The_Hug) by The Freak Fandango Orchestra (http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/) / CC BY-SA (http://creativecommons.org/licenses/by-sa/3.0/)
In this episode of The Cybersecurity Defenders Podcast we speak with Salvador Mendoza, Director of Research and Development at Metabase Q, about the tokenization of payment systems.Salvador is a prominent figure in the cybersecurity industry and holds the position of Director of Research and Development at Metabase Q. He is also an integral member of the Ocelot Offensive Security Team. His area of expertise lies in the intricate world of the tokenization process, payment systems, and the development of embedded prototypes. With a commendable history of presenting at high-profile security conferences including Black Hat, DEF CON, Hack in the Box, and Troopers, Salvador brings a wealth of knowledge and insight to our discussion. Furthermore, he is the author of the insightful book, "Show me the e-money. Hacking digital payment systems: NFC, RFID, MST and EMV Chips," where he delves into the vulnerabilities and security measures of digital payment technologies.You can find his book for purchase here.And you can find the PCI spec here.You can follow Salvaador on Twitter/X here.
Maja Voje is a growth strategy expert who has worked with some of the largest tech companies in the world. Through her consulting, she realised that there was a problem holding companies back from product/market fit. Unable to find a playbook to guide companies to the promised land, she decided to research and write one herself. We chatted about the book and some of the themes within it. Episode highlights: 1. 95% of startups will not survive, but you can work together to beat the odds It's not normally a bad product that's the problem. There are a zillion reasons for startup failure, but beating the odds is not a product management or a sales or marketing problem. We have to work cross-functionally, join forces and work together to align the company around success. 2. Product/market fit is more than just delivering value, but being able to build a sustainable business Traditional definitions of product/market fit focus on whether you can deliver value to a specific market segment, but it's important to bring other dimensions into play, such as the most effective business model and people's willingness to pay. You have to capture enough value to build a sustainable business. 3. It's essential to pick a niche, define your ideal customers, and stick to the plan It's really easy for early startup founders to try to go wide and fix everyone's problems, but this is generally a mistake. It's important to maintain discipline, be strategic, and realise that not all opportunities are created equal. You don't have to make a sale at all costs. 4. You're probably not charging enough for your solution, but your customers aren't going to price it for you Founders sometimes fall prey to product imposter syndrome, where they fail to extract fair value from their customers because they're not sure the product is good enough, or feel bad asking for money. We need money! But, don't expect your customers to just tell you a fair price. It's important to do decent pricing research. 5. We can learn a lot from "special ops" thinking Business science has matured over the last couple of hundred years, but there are timeless principles from military strategy that can help us succeed. Pitting small resources against larger competition, being nimble, responding to change and executing fast can help us succeed in a crowded marketplace. Check out "Go-To-Market Strategist" "In Growth and Marketing, we were taught how the “big tech” companies grew to their heights more than a decade ago. They had bigger budgets, teams, and global talent. Markets were less saturated. Customers were more excited about innovation. You need a different playbook for GTM. One that applies to bootstrap startups, clever leaders in innovative companies, and independent innovators. So I went on a journey. I devoted a year of my life to interviewing 54 experts from companies such as: Hubspot, Miro, Figma, Metabase, CXL, and many more to ask them to share their “go to market” advice that will most securely and successfully guide you to product-market fit." Check out the book website. Contact Maja You can catch up with Maja on LinkedIn.
Pierre de Poulpiquet est Cofondateur et CTO chez Whaly, la solution de Business Intelligence accélérée au sein du prestigieux accélérateur américain YC. Ils ont déjà convaincu des dizaines de clients dont Ignition Program, Alma ou Zéphyr.On aborde notamment :
Summary With all of the messaging about treating data as a product it is becoming difficult to know what that even means. Vishal Singh is the head of products at Starburst which means that he has to spend all of his time thinking and talking about the details of product thinking and its application to data. In this episode he shares his thoughts on the strategic and tactical elements of moving your work as a data professional from being task-oriented to being product-oriented and the long term improvements in your productivity that it provides. Announcements Hello and welcome to the Data Engineering Podcast, the show about modern data management When you're ready to build your next pipeline, or want to test out the projects you hear about on the show, you'll need somewhere to deploy it, so check out our friends at Linode. With their new managed database service you can launch a production ready MySQL, Postgres, or MongoDB cluster in minutes, with automated backups, 40 Gbps connections from your application hosts, and high throughput SSDs. Go to dataengineeringpodcast.com/linode (https://www.dataengineeringpodcast.com/linode) today and get a $100 credit to launch a database, create a Kubernetes cluster, or take advantage of all of their other services. And don't forget to thank them for their continued support of this show! Modern data teams are dealing with a lot of complexity in their data pipelines and analytical code. Monitoring data quality, tracing incidents, and testing changes can be daunting and often takes hours to days or even weeks. By the time errors have made their way into production, it's often too late and damage is done. Datafold built automated regression testing to help data and analytics engineers deal with data quality in their pull requests. Datafold shows how a change in SQL code affects your data, both on a statistical level and down to individual rows and values before it gets merged to production. No more shipping and praying, you can now know exactly what will change in your database! Datafold integrates with all major data warehouses as well as frameworks such as Airflow & dbt and seamlessly plugs into CI workflows. Visit dataengineeringpodcast.com/datafold (https://www.dataengineeringpodcast.com/datafold) today to book a demo with Datafold. RudderStack helps you build a customer data platform on your warehouse or data lake. Instead of trapping data in a black box, they enable you to easily collect customer data from the entire stack and build an identity graph on your warehouse, giving you full visibility and control. Their SDKs make event streaming from any app or website easy, and their extensive library of integrations enable you to automatically send data to hundreds of downstream tools. Sign up free at dataengineeringpodcast.com/rudder (https://www.dataengineeringpodcast.com/rudder) Build Data Pipelines. Not DAGs. That's the spirit behind Upsolver SQLake, a new self-service data pipeline platform that lets you build batch and streaming pipelines without falling into the black hole of DAG-based orchestration. All you do is write a query in SQL to declare your transformation, and SQLake will turn it into a continuous pipeline that scales to petabytes and delivers up to the minute fresh data. SQLake supports a broad set of transformations, including high-cardinality joins, aggregations, upserts and window operations. Output data can be streamed into a data lake for query engines like Presto, Trino or Spark SQL, a data warehouse like Snowflake or Redshift., or any other destination you choose. Pricing for SQLake is simple. You pay $99 per terabyte ingested into your data lake using SQLake, and run unlimited transformation pipelines for free. That way data engineers and data users can process to their heart's content without worrying about their cloud bill. For data engineering podcast listeners, we're offering a 30 day trial with unlimited data, so go to dataengineeringpodcast.com/upsolver (https://www.dataengineeringpodcast.com/upsolver) today and see for yourself how to avoid DAG hell. Your host is Tobias Macey and today I'm interviewing Vishal Singh about his experience building data products at Starburst Interview Introduction How did you get involved in the area of data management? Can you describe what your definition of a "data product" is? What are some of the different contexts in which the idea of a data product is applicable? How do the parameters of a data product change across those different contexts/consumers? What are some of the ways that you see the conversation around the purpose and practice of building data products getting overloaded by conflicting objectives? What do you see as common challenges in data teams around how to approach product thinking in their day-to-day work? What are some of the tactical ways that product-oriented work on data problems differs from what has become common practice in data teams? What are some of the features that you are building at Starburst that contribute to the efforts of data teams to build full-featured product experiences for their data? What are the most interesting, innovative, or unexpected ways that you have seen Starburst used in the context of data products? What are the most interesting, unexpected, or challenging lessons that you have learned while working at Starburst? When is a data product the wrong choice? What do you have planned for the future of support for data product development at Starburst? Contact Info LinkedIn (https://www.linkedin.com/in/singhsvishal/) @vishal_singh (https://twitter.com/vishal_singh) on Twitter Parting Question From your perspective, what is the biggest gap in the tooling or technology for data management today? Closing Announcements Thank you for listening! Don't forget to check out our other shows. Podcast.__init__ (https://www.pythonpodcast.com) covers the Python language, its community, and the innovative ways it is being used. The Machine Learning Podcast (https://www.themachinelearningpodcast.com) helps you go from idea to production with machine learning. Visit the site (https://www.dataengineeringpodcast.com) to subscribe to the show, sign up for the mailing list, and read the show notes. If you've learned something or tried out a project from the show then tell us about it! Email hosts@dataengineeringpodcast.com (mailto:hosts@dataengineeringpodcast.com)) with your story. To help other people find the show please leave a review on Apple Podcasts (https://podcasts.apple.com/us/podcast/data-engineering-podcast/id1193040557) and tell your friends and co-workers Links Starburst (https://www.starburst.io/) Podcast Episode (https://www.dataengineeringpodcast.com/starburst-lakehouse-modern-data-architecture-episode-304/) Geophysics (https://en.wikipedia.org/wiki/Geophysics) Product-Led Growth (https://www.productled.org/foundations/what-is-product-led-growth) Trino (https://trino.io/) DataNova (https://www.starburst.io/datanova/) Starburst Galaxy (https://www.starburst.io/platform/starburst-galaxy/) Tableau (https://www.tableau.com/) PowerBI (https://powerbi.microsoft.com/en-us/) Podcast Episode (https://www.dataengineeringpodcast.com/power-bi-business-intelligence-episode-154/) Metabase (https://www.metabase.com/) Podcast Episode (https://www.dataengineeringpodcast.com/metabase-with-sameer-al-sakran-episode-29/) Great Expectations (https://greatexpectations.io/) Podcast Episode (https://www.dataengineeringpodcast.com/great-expectations-technical-debt-data-pipeline-episode-117/) The intro and outro music is from The Hug (http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/Love_death_and_a_drunken_monkey/04_-_The_Hug) by The Freak Fandango Orchestra (http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/) / CC BY-SA (http://creativecommons.org/licenses/by-sa/3.0/)
Docker und Container: Buzzwords der letzten Dekade - Doch was ist Docker wirklich?In dieser Episode versuchen wir genau diese Frage zu beantworten. Jeder redet davon, und wie in jedem Hype werden Wörter und Begriffe oft in einem falschen Kontext genutzt und das Ecosystem entwickelt sich unglaublich schnell. Deswegen ist es doch ganz gut, wenn man ein wenig hinter die Kulissen schaut: Warum wurde Docker erschaffen und welches ursprüngliche Problem sollte es lösen? Was ist das besondere an Docker, wenn es "diese Linux Container" bereits seit > 20 Jahren gibt? Was ist eigentlich ein Container im Kontext von Software und was hat "Change Root" (chroot) damit zu tun? Und welche Nachteile hat Docker?Kurz um: 55 Minuten um das “Warum” hinter Docker.Bonus: Warum Duisburg eine essentielle Rolle im Container-Ecosystem spielt, was Kaffe mit Software deployen zu tun hat und wie man das Endstück vom Brot nennt.Feedback (gerne auch als Voice Message)Email: stehtisch@engineeringkiosk.devTwitter: https://twitter.com/EngKioskWhatsApp +49 15678 136776Gerne behandeln wir auch euer Audio Feedback in einer der nächsten Episoden, einfach Audiodatei per Email oder WhatsApp Voice Message an +49 15678 136776Linkslocalhost Konferenz: https://localhost.engineering/Landschaftspark Duisburg-Nord: https://www.landschaftspark.de/Nomad von Hashicorp: https://www.nomadproject.io/Docker auf der pycon 2013: "The future of Linux Containers": https://www.youtube.com/watch?v=wW9CAH9nSLsdotCloud: https://www.docker.com/press-release/dotcloud-inc-now-docker-inc/"Why we built Docker" Solomon Hykes auf der dotScale 2013: https://www.youtube.com/watch?v=3N3n9FzebAA10+ Deploys Per Day: Dev and Ops Cooperation at Flickr: https://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickrLinux Containers (LXC): https://de.wikipedia.org/wiki/LXClibcontainer: https://github.com/opencontainers/runc/tree/main/libcontainerFROM scratch-Container: https://hub.docker.com/_/scratchContainers are chroot with a Marketing Budget: https://earthly.dev/blog/chroot/Metabase: https://github.com/metabase/metabaseQemu: https://www.qemu.org/Die 100 häufigsten Wörter für das Brotende: https://100woerter.de/100-haeufigsten-woerter-fuer-das-brotende/Der Sprachatlas - Brotende: https://www.atlas-alltagssprache.de/r10-f3h/?child=rundeSprungmarken(00:00:00) Intro(00:00:54) Wolfgangs Weltreise und Duisburg's Binnenhafen, der größte der Welt(00:04:16) Das heutige Thema: Docker - Was ist das? Woher kommt es? Sind Docker und Container dasselbe? Und wie sieht das Container-Ecosystem eigentlich aus(00:08:11) Wie lange gibt es Docker bereits? Und welches Problem löst Docker eigentlich?(00:16:47) Was ist der Unterschied zwischen Virtual Machines (VMs) und Jar's zu Docker Containern?(00:21:41) Wann und Wie entstand die Continuous Integration (CI) / Continuous Delivery (CD) / Continuous Deployment (CD) Bewegung?(00:24:38) Was ist eigentlich ein Container im Sinne der Software?(00:29:32) Change root (chroot)(00:31:20) Was ist denn das Besondere an Docker, wenn es Linux Container bereits vorher gab?(00:39:20) Welche Nachteile hat Docker oder ist Docker wie geschnitten Brot?(00:47:37) Das Killer-Argument von Docker: Updaten von Applikationen(00:51:06) Zukünftige Podcast-Episoden über Docker und das Container-Ecosystem(00:52:25) Outro: Feedback und Shownote-LinksHostsWolfgang Gassler (https://twitter.com/schafele)Andy Grunwald (https://twitter.com/andygrunwald)Feedback (gerne auch als Voice Message)Email: stehtisch@engineeringkiosk.devTwitter: https://twitter.com/EngKioskWhatsApp +49 15678 136776
Listen to Screaming in the Cloud: https://www.lastweekinaws.com/podcast/screaming-in-the-cloud/learning-in-public-with-swyx/Episode SummaryToday Corey sits down with swyx, head of developer experience at Airbyte, and so much more! They begin by chatting about swyx's career history, professional motivation, and an industry taboo: following the money. Then Corey and swyx move into a discussion about the surprisingly challenging nature of developer experience and what it means to “learn in public.” swyx talks about expertise and how to quantify and demonstrate learning. Corey and swyx discuss swyx's book “The Coding Career Handbook” and career coaching. swyx shares about his most recent foray into management in the era of zoom meetings, and conclude the conversation by talking about data integration and swyx's latest job at Airbyte.Links Referenced: “Learning Gears” blog post: https://www.swyx.io/learning-gears The Coding Career Handbook: https://learninpublic.org Personal Website: https://swyx.io Twitter: https://twitter.com/swyx TranscriptCorey: Welcome to Screaming in the Cloud. I'm Corey Quinn. Some folks are really easy to introduce when I have them on the show because, “My name is, insert name here. I built thing X, and my job is Y at company Z.” Then we have people like today's guest.swyx is currently—and recently—the head of developer experience at Airbyte, but he's also been so much more than that in so many different capacities that you're very difficult to describe. First off, thank you for joining me. And secondly, what's the deal with you?swyx: [laugh]. I have professional ADD, just like you. Thanks for having me, Corey. I'm a—Corey: It works out.swyx: a big fan. Longtime listener, first time caller. Love saying that. [laugh].Corey: You have done a lot of stuff. You have a business and finance background, which… okay, guilty; it's probably why I feel some sense of affinity for a lot of your work. And then you went into some interesting directions. You were working on React and serverless YahvehScript—which is, of course, how I insist on pronouncing it—at Two Sigma, Netlify, AWS—a subject near and dear to my heart—and most recently temporal.io.And now you're at Airbyte. So, you've been focusing on a lot of, I won't say the same things, but your area of emphasis has definitely consistently rhymed with itself. What is it that drives you?swyx: So, I have been recently asking myself a lot of this question because I had to interview to get my new role. And when you have multiple offers—because the job market is very hot for DevRel managers—you have to really think about it. And so, what I like to say is: number one, working with great people; number two, working on great products; number three, making a lot of money.Corey: There's entire school of thought that, “Oh, that's gauche. You shouldn't mention trying to make money.” Like, “Why do you want to work here because I want to make money.” It's always true—swyx: [crosstalk 00:03:46]—Corey: —and for some reason, we're supposed to pretend otherwise. I have a lot of respect for people who can cut to the chase on that. It's always been something that has driven me nuts about the advice that we give a new folks to the industry and peop—and even students figuring out their career path of, “Oh, do something you love and the money will follow.” Well, that's not necessarily true. There are ways to pivot something you'd love into something lucrative and there are ways to wind up more or less borderline starving to death. And again, I'm not saying money is everything, but for a number of us, it's hard to get to where we want to be without it.swyx: Yeah, yeah. I think I've been cast with the kind of judgmental label of being very financially motivated—that's what people have called me—for simply talking about it. And I'm like, “No. You know, it's number three on my priority list.” Like, I will leave positions where I have a lot of money on the table because I don't enjoy the people or the products, but having it up there and talking openly about it somehow makes you [laugh] makes you sort of greedy or something. And I don't think that's right. I tried to set an example for the people that I talk to or people who follow me.Corey: One of the things I've always appreciated about, I guess, your online presence, which has remained remarkably consistent as you've been working through a bunch of different, I guess, stages of life and your career, is you have always talked in significant depth about an area of tech that I am relatively… well, relatively crap at, let's be perfectly honest. And that is the wide world of most things front-end. Every time I see a take about someone saying, “Oh, front-end is junior or front-end is somehow less than,” I'd like to know what the hell it is they know because every time I try and work with it, I wind up more confused than I was when I started. And what I really appreciate is that you have always normalized the fact that this stuff is hard. As of the time that we're recording this a day or so ago, you had a fantastic tweet thread about a friend of yours spun up a Create React App and imported the library to fetch from an endpoint and immediately got stuck. And then you pasted this ridiculous error message.He's a senior staff engineer, ex-Google, ex-Twitter; he can solve complex distributed systems problems and unable to fetch from a REST endpoint without JavaScript specialist help. And I talk about this a lot in other contexts, where the reason I care so much about developer experience is that a bad developer experience does not lead people to the conclusion of, “Oh, this is a bad interface.” It leads people to the conclusion, “Oh, I'm bad at this and I didn't realize it.” No. I still fall into that trap myself.I was under the impression that there was just this magic stuff that JS people know. And your tweet did so much to help normalize from my perspective, the fact that no, no, this is very challenging. I recently went on a Go exploration. Now, I'm starting to get into JavaScript slash TypeScript, which I think are the same thing but I'm not entirely certain of that. Like, oh, well, one of them is statically typed, or strongly typed. It's like, “Well, I have a loud mechanical keyboard. Everything I do is typing strongly, so what's your point?”And even then we're talking past each other in these things. I don't understand a lot of the ecosystem that you live your career in, but I have always had a tremendous and abiding respect for your ability to make it accessible, understandable, and I guess for lack of a better term, to send the elevator back down.swyx: Oh, I definitely think about that strongly, especially that last bit. I think it's a form of personal growth. So, I think a lot of people, when they talk about this sending the elevator back down, they do it as a form of charity, like I'm giving back to the community. But honestly, you actually learn a lot by trying to explain it to others because that's the only way that you truly know if you've learned something. And if you ever get anything wrong, you'll—people will never let you forget it because it is the internet and people will crawl over broken glass to remind you that you're wrong.And once you've got it wrong, you will—you know, you've been so embarrassed that you'll never forget it. So, I think it's just a really good way to learn in public. And that's kind of the motto that I'm kind of known for. Yeah, we can take the direction anywhere you want to go in JavaScript land. Happy to talk about it all day. [laugh].Corey: Well, I want to start by something you just said where you're doing the learning in public thing. And something I've noticed is that there are really two positions you can take—in the general sense—when you set out to make a bit of a reputation for yourself in a particular technical space. You can either do the, “I'm a beginner here, same as the rest of you, and I'm learning in public,” or you can position yourself as something of an expert. And there are drawbacks and advantages to both. I think that if you don't look as wildly over-represented as I do, both of them are more fraught in different ways, where it's, “Oh, you're learning in public. Ah, look at the new person, she's dumb.”Or if you're presenting yourself as an expert, you get nibbled to death by ducks on a lot of the deep technical nuances and well, actually'ed to death. And my position has always been and this is going to be a radical concept for some folks, is that I'm genuinely honest. I tend to learn in public about the things that I don't know, but the things that I am something of a subject matter expert in—like, I don't know, cloud billing—I don't think that false modesty necessarily serves me particularly well. It's yeah, I know exactly what I'm talking about here. Pretending otherwise it's just being disingenuous.swyx: I try to think of it as having different gears of learning in public. So, I've called this “Learning Gears” in a previous blog post of mine, where you try to fit your mode of learning to the terrain that you're on, your domain expertise, and you should never over-represent the amount that you know because I think people are very rightly upset when there are a lot of people—let's say on Twitter, or YouTube, or Udemy even—who present themselves as experts who are actually—they just read the docs the previous night. So, you should try not to over-represent your expertise.But at the same time, don't let your imposter syndrome stop you from sharing what you are currently learning and taking corrections when you're wrong. And I think that's the tricky balance to get which is constantly trying to put yourself out there while accepting that you might be wrong and not getting offended when or personally attacked when someone corrects you, inevitably. And sometimes people will—especially if you have a lot of followers, people will try to say—you know, someone of your following—you know, it's—I kind of call this follower shaming, like, you should act, uh—invulnerable, or run every tweet through committee before you tweet after a certain sort of following size. So, I try to not do that and try to balance responsibility with authenticity.Corey: I think that there's something incredibly important about that, where there's this idea that you either become invulnerable and get defensive and you yell at people, and down that path lies disaster because, believe it or not, we all get it wrong from time to time, and doubling down and doubling down and doubling down again, suddenly, you're on an island all by yourself and no one respectable is going to be able to get there to help you. And the other side of it is going too far in the other direction, where you implicitly take any form of criticism whatsoever as being de facto correct. And I think that both paths don't lead to super great places. I think it's a matter of finding our own voices and doing a little bit of work as far as the validity of accepting a given piece of feedback goes. But other than that, I'm a big fan of being able to just more or less be as authentic as possible.And I get that I live in a very privileged position where I have paths open to me that are not open to most folks. But in many respects so to you are one of the—easily—first five people I would think of if someone said, “Hey if I need to learn JavaScript for someone, who should I talk to first?” You're on that list. And you've done a lot of things in this area, but you've never—you alluded to it a few minutes ago, but I'm going to call it out a little more pointedly—without naming names, let's be clear—and that you're never presented as a grifter, which is sort of the best way I can think of it of, “Well, I just learned this new technology stack yesterday and now I'm writing a book that I'm going to sell to people on how to be an expert at this thing.” And I want to be clear, this is very distinct from gatekeeping because I think that, “Oh, well, you have to be at least this much of an expert—” No, but I think that holding yourself out as I'm going to write a book on how to be proud of how to become a software engineer.Okay, you were a software engineer for six months, and more to the point, knowing how to do a thing and knowing how to teach a thing are orthogonal skill sets, and I think that is not well understood. If I ever write a book or put something—or some sort of info product out there, I'm going to have to be very careful not to fall into that trap because I don't want to pretend to be an expert in things that I'm not. I barely think I'm an expert in things that I provable am.swyx: there are many ways to answer that. So, I have been accused a couple of times of that. And it's never fun, but also, if you defend yourself well, you can actually turn a critic into a fan, which I love doing.Corey: Mm-hm.swyx: [laugh].Corey: Oh yes.swyx: what I fall back to, so I have a side interest in philosophy, based on one of my high school teachers giving us, like, a lecture in philosophy. I love him, he changed my life. [Lino Barnard 00:13:20], in case—in the off chance that he's listening. So, there's a theory of knowledge of, like, how do you know what you know, right? And if you can base your knowledge on truth—facts and not opinions, then people are arguing with the facts and not the opinions.And so, getting as close to ground truth as possible and having certainty in your collection of facts, I think is the basis of not arguing based on identity of, like, “Okay, I have ten years experience; you have two years experience. I am more correct than you in every single opinion.” That's also not, like, the best way to engage in the battlefield of ideas. It's more about, do you have the right amount of evidence to support the conclusions that you're trying to make? And oftentimes, I think, you know, that is the basis, if you don't have that ability.Another thing that I've also done is to collect the opinions of others who have more expertise and present them and curate them in a way that I think adds value without taking away from the individual original sources. So, I think there's a very academic way [laugh] you can kind of approach this, but that defends your intellectual integrity while helping you learn faster than the typical learning rate. Which is kind of something I do think about a lot, which is, you know, why do we judge people by the number of years experience? It's because that's usually the only metric that we have available that is quantifiable. Everything else is kind of fuzzy.But I definitely think that, you know, better algorithms for learning let you progress much faster than the median rate, and I think people who apply themselves can really get up there in terms of the speed of learning with that. So, I spend a lot of time thinking about this stuff. [laugh].Corey: It's a hard thing to solve for. There's no way around it. It's, what is it that people should be focusing on? How should they be internalizing these things? I think a lot of it starts to with an awareness, even if not in public, just to yourself of, “I would like advice on some random topic.” Do you really? Are you actually looking for advice or are you looking—swyx: right.Corey: For validation? Because those are not the same thing, and you are likely to respond very differently when you receive advice, depending on which side of that you're coming from.swyx: Yeah. And so, one way to do that is to lay out both sides, to actually demonstrate what you're split on, and ask for feedback on specific tiebreakers that would help your decision swing one way or another. Yeah, I mean, there are definitely people who ask questions that are just engagement bait or just looking for validation. And while you can't really fix that, I think it's futile to try to change others' behavior online. You just have to be the best version of yourself you can be. [laugh].Corey: DoorDash had a problem. As their cloud-native environment scaled and developers delivered new features, their monitoring system kept breaking down. In an organization where data is used to make better decisions about technology and about the business, losing observability means the entire company loses their competitive edge. With Chronosphere, DoorDash is no longer losing visibility into their applications suite. The key? Chronosphere is an open source compatible, scalable, and reliable observability solution that gives the observability lead at DoorDash business, confidence, and peace of mind. Read the full success story at snark.cloud/chronosphere. That's snark.cloud slash C-H-R-O-N-O-S-P-H-E-R-E.Corey: So, you wrote a book that is available at learninpublic.org, called The Coding Career Handbook. And to be clear, I have not read this myself because at this point, if I start reading a book like that, and you know, the employees that I have see me reading a book like that, they're going to have some serious questions about where this company is going to be going soon. But scrolling through the site and the social proof, the testimonials from various people who have read it, more or less read like a who's-who of people that I respect, who have been on this show themselves.Emma Bostian is fantastic at explaining a lot of these things. Forrest Brazeal is consistently a source to me of professional envy. I wish I had half his musical talent; my God. And your going down—it explains, more or less, the things that a lot of folks people are all expected to know but no one teaches them about every career stage, ranging from newcomer to the industry to senior. And there's a lot that—there's a lot of gatekeeping around this and I don't even know that it's intentional, but it has to do with the idea that people assume that folks, quote-unquote, “Just know” the answer to some things.Oh, people should just know how to handle a technical interview, despite the fact that the skill set is completely orthogonal to the day-to-day work you'll be doing. People should just know how to handle a performance review, or should just know how to negotiate for a raise, or should just know how to figure out is this technology that I'm working on no longer the direction the industry is going in, and eventually I'm going to wind up, more or less, waiting for the phone to ring because there's only three companies in the world left who use it. Like, how do you keep—how do you pay attention to what's going on around you? And it's the missing manual that I really wish that people would have pointed out to me back when I was getting started. Would have made life a lot easier.swyx: Oh, wow. That's high praise. I actually didn't know we're going to be talking about the book that much. What I will say is—Corey: That's the problem with doing too much. You never know what people have found out about you and what they're going to say when they drag you on to a podcast.swyx: got you, got you. Okay. I know, I know, I know where this is going. Okay. So, one thing that I really definitely believe is that—and this happened to me in my first job as well, which is most people get the mentors that they're assigned at work, and sometimes you have a bad roll the dice. [laugh].And you're supposed to pick up all the stuff they don't teach you in school at work or among your friend group, and sometimes you just don't have the right network at work or among your friend group to tell you the right things to help you progress your career. And I think a lot of this advice is written down in maybe some Hacker News posts, some Reddit posts, some Twitter posts, and there's not really a place you to send people to point to, that consolidates that advice, particularly focused at the junior to senior stage, which is the stage that I went through before writing the book. And so, I think that basically what I was going for is targeting the biggest gap that I saw, which is, there a lot of interview prep type books like Crack the Coding Career, which is kind of—Crack the Coding Interview, which is kind of the book title that I was going after. But once you got the job, no one really tells you what to do after you got that first job. And how do you level up to the senior that everyone wants to hire, right? There's—Corey: “Well, I've mastered cracking the coding interview. Now, I'm really trying to wrap my head around the problem of cracking the showing up at work on time in the morning.” Like, the baseline stuff. And I had so many challenges with that early in my career. Not specifically punctuality, but just the baseline expectation that it's just assumed that by the time you're in the workplace earning a certain amount of money, it's just assumed that you have—because in any other field, you would—you have several years of experience in the workplace and know how these things should play out.No, the reason that I'm sometimes considered useful as far as giving great advice on career advancement and the rest is not because I'm some wizard from the future, it's because I screwed it all up myself and got censured and fired and rejected for all of it. And it's, yeah, I'm not smart enough to learn from other people's mistakes; I got to make them myself. So, there's something to be said for turning your own missteps into guidance so that the next person coming up has an easier time than you did. And that is a theme that, from what I have seen, runs through basically everything that you do.swyx: I tried to do a lot of research, for sure. And so, one way to—you know, I—hopefully, I try not to make mistakes that others have learned, have made, so I tried to pick from, I think I include 1500 quotes and sources and blog posts and tweets to build up that level of expertise all in one place. So hopefully, it gives people something to bootstrap your experience off of. So, you're obviously going to make some mistakes on your own, but at least you have the ability to learn from others, and I think this is my—you know, I'm very proud of the work that I did. And I think people have really appreciated it.Because it's a very long book, and nobody reads books these days, so what am I doing [laugh] writing a book? I think it's only the people that really need this kind of advice, that they find themselves not having the right mentorship that reach out to me. And, you know, it's good enough to support a steady stream of sales. But more importantly, like, you know, I am able to mentor them at various levels from read my book, to read my free tweets, to read the free chapters, or join the pay community where we have weekly sessions going through every chapter and I give feedback on what people are doing. Sometimes I've helped people negotiate their jobs and get that bump up to senior staff—senior engineer, and I think more than doubled their salary, which was very personal proud moment for me.But yeah, anyway, I think basically, it's kind of like a third place between the family and work that you could go to the talk about career stuff. And I feel like, you know, maybe people are not that open on Twitter, but maybe they can be open in a small community like ours.Corey: There's a lot to be said for a sense of professional safety and personal safety around being—having those communities. I mean, mine, when I was coming up was the freenode IRC network. And that was great; it's pseudo-anonymous, but again, I was Corey and network staff at the time, which was odd, but it was great to be able to reach out and figure out am I thinking about this the wrong way, just getting guidance. And sure, there are some channels that basically thrived on insulting people. I admittedly was really into that back in the early-two-thousand-nothings.And, like, it was always fun to go to the Debian channel. It's like, “Yeah, can you explain to me how to do this or should I just go screw myself in advance?” Yeah, it's always the second one. Like, community is a hard thing to get right and it took me a while to realize this isn't the energy I want in the world. I like being able to help people come up and learn different things.I'm curious, given your focus on learning in public and effectively teaching folks as well as becoming a better engineer yourself along the way, you've been focusing for a while now on management. Tell me more about that.swyx: I wouldn't say it's been, actually, a while. Started dabbling in it with the Temporal job, and then now fully in it with Airbyte.Corey: You have to know, it has been pandemic time; it has stood still. Anything is—swyx: exactly.Corey: —a while it given that these are the interminable—this is the decade of Zoom meetings.swyx: [laugh]. I'll say I have about a year-and-a-half of it. And I'm interested in it partially because I've really been enjoying the mentoring side with the coding career community. And also, I think, some of the more effective parts of what I do have to be achieved in the planning stages with getting the right resources rather than doing the individual contributor work. And so, I'm interested in that.I'm very wary of the fact that I don't love meetings myself. Meetings are a means to an end for me and meetings are most of the job in management time. So, I think for what's important to me there, it is that we get stuff done. And we do whatever it takes to own the outcomes that we want to achieve and try to manage people's—try to not screw up people's careers along the way. [laugh]. Better put, I want people to be proud of what they get done with me by the time they're done with me. [laugh].Corey: So, I know you've talked to me about this very briefly, but I don't know that as of the time of this recording, you've made any significant public statements about it. You are now over at Airbytes, which I confess is a company I had not heard of before. What do y'all do over there?swyx: [laugh]. “What is it we do here?” So Airbyte—Corey: Exactly. Consultants want to know.swyx: Airbyte's a data integration company, which means different things based on your background. So, a lot of the data engineering patterns in, sort of, the modern data stack is extracting from multiple sources and loading everything into a data warehouse like a Snowflake or a Redshift, and then performing analysis with tools like dbt or business intelligence tools out there. We like to use MetaBase, but there's a whole there's a whole bunch of these stacks and they're all sort of advancing at different rates of progress. And what Airbyte would really like to own is the data integration part, the part where you load a bunch of sources, every data source in the world.What really drew me to this was two things. One, I really liked the vision of data freedom, which is, you have—you know, as—when you run a company, like, a typical company, I think at Temporal, we had, like, 100, different, like, you know, small little SaaS vendors, all of them vying to be the sources of truth for their thing, or a system of record for the thing. Like, you know, Salesforce wants to be a source of truth for customers, and Google Analytics want to be source of truth for website traffic, and so on and so forth. Like, and it's really hard to do analysis across all of them unless you dump all of them in one place.So one, is the mission of data freedom really resonates with me. Like, your data should be put in put somewhere where you can actually make something out of it, and step one is getting it into a format in a place that is amenable for analysis. And data warehouse pattern has really taken hold of the data engineering discipline. And I find, I think that's a multi-decade trend that I can really get behind. That's the first thing.Corey: I will say that historically, I'm bad at data. All jokes about using DNS as a database aside, one of the reasons behind that is when you work on stateless things like web servers and you blow trunks and one of them, oops. We all laugh, we take an outage, so maybe we're not laughing that hard, but we can reprovision web servers and things are mostly fine. With data and that going away, there are serious problems that could theoretically pose existential risk to the business. Now, I was a sysadmin and a, at least mediocre one, which means that after the first time I lost data, I was diligent about doing backups.Even now, the data work that we do have deep analysis on our customers' AWS bills, which doesn't sound like a big data problem, but I assure you it is, becomes something where, “Okay, step one. We don't operate on it in place.” We copy it into our own secured environment and then we begin the manipulations. We also have backups installed on these things so that in the event that I accidentally the data, it doesn't wind up causing horrifying problems for our customers. And lastly, I wind up also—this is going to surprise people—I might have securing the access to that data by not permitting writes.Turns out it's really hard—though apparently not impossible—to delete data with read-only calls.swyx: [crosstalk 00:28:12].Corey: It tends to be something of just building guardrails against myself. But the data structures, the understanding the analysis of certain things, I would have gotten into Go way sooner than I did if the introduction to Go tutorial on how to use it wasn't just a bunch of math problems talking about this is how you do it. And great, but here in the year of our lord 2022, I mostly want a programming language to smack a couple of JSON objects together and ideally come out with something resembling an answer. I'm not doing a whole lot of, you know, calculating prime numbers in the course of my week. And that is something that took a while for me to realize that, no, no, it's just another example of not being a great way of explaining something that otherwise could be incredibly accessible to folks who have real problems like this.I think the entire field right now of machine learning and the big data side of the universe struggles with this. It's, “Oh, yeah. If you have all your data, that's going to absolutely change the world for you.” “Cool. Can you explain how?” “No. Not effectively anyway.” Like, “Well, thanks for wasting everyone's time. It's appreciated.”swyx: Yeah, startup is sitting on a mountain of data that they don't use and I think everyone kind of feels guilty about it because everyone who is, like, a speaker, they're always talking about, like, “Oh, we used our data to inform this presidential campaign and look at how amazing we are.” And then you listen to the podcasts where the data scientists, you know, talk amongst themselves and they're like, “Yeah, it's bullshit.” Like, [laugh], “We're making it up as we go along, just like everyone else.” But, you know, I definitely think, like, some of the better engineering practices are arising under this. And it's professionalizing just like front-end professionalized maybe ten years ago, DevOps professionalized also, roughly in that timeframe, I think data is emerging as a field that is just a standalone discipline with its own tooling and potentially a lot of money running through it, especially if you look at the Snowflake ecosystem.So, that's why I'm interested in it. You know, I will say there's also—I talked to you about the sort of API replication use case, but also there's database replication, which is kind of like the big use case, which, for example, if you have a transactional sort of SQL database and you want to replicate that to an analytical database for queries, that's a very common one. So, I think basically data mobility from place to place, reshaping it and transferring it in as flexible manner as possible, I think, is the mission, and I think there's a lot of tooling that starts from there and builds up with it. So, Airbyte integrates pretty well with Airflow, Dexter, and all the other orchestration tools, and then, you know, you can use dbt, and everything else in that data stack to run with it. So, I just really liked that composition of tools because basically when I was a hedge fund analyst, we were doing the ETL job without knowing the name for it or having any tooling for it.I just ran a Python script manually on a cron job and whenever it failed, I would have to get up in the middle of night to go kick it again. It's, [laugh] it was that bad in 2014, '15. So, I really feel the pain. And, you know, the more data that we have to play around with, the more analysis we can do.Corey: I'm looking forward to seeing what becomes of this field as folks like you get further and further into it. And by, “Well, what do you mean, folks like me?” Well, I'm glad you asked, or we're about to as I put words in your mouth. I will tell you. People who have a demonstrated ability not just to understand the technology—which is hard—but then have this almost unicorn gift of being able to articulate and explain it to folks who do not have that level of technical depth in a way that is both accessible and inviting. And that is no small thing.If you were to ask me to draw a big circle around all the stuff that you've done in your career and define it, that's how I would do it. You are a storyteller who is conversant with the relevant elements of the story in a first-person perspective. Which is probably a really wordy way to put it. We should get a storyteller to workshop that, but you see the point.swyx: I try to call it, like, accessibly smart. So, it's a balance that you want to make, where you don't want to talk down to your audience because I think there are a lot of educators out there who very much stay at the basics and never leave that. You want to be slightly aspirational and slightly—like, push people to the bounds of their knowledge, but then not to go too far and be inaccessible. And that's my sort of polite way of saying that I dumb things down as service. [laugh].Corey: But I like that approach. The term dumbing it down is never a phrase to use, as it turns out, when you're explaining it to someone. It's like, “Let me dumb that down for you.” It's like, yeah, I always find the best way to teach someone is to first reach them and get their attention. I use humor, but instead we're going to just insult them. That'll get their attention all right.swyx: No. Yeah. It does offend some people who insist on precision and jargon. And I'm quite against that, but it's a constant fight because obviously there is a place at time for jargon.Corey: “Can you explain it to me using completely different words?” If the answer is, “No,” the question then is, “Do you actually understand it or are you just repeating it by rote?”swyx: right.Corey: There's—people learn in different ways and reaching them is important. [sigh].swyx: Exactly.Corey: Yeah. I really want to thank you for being so generous with your time. If people want to learn more about all the various things you're up to, where's the best place to find you?swyx: Sure, they can find me at my website swyx.io, or I'm mostly on Twitter at @swyx.Corey: And we will include links to both of those in the [show notes 00:33:37]. Thank you so much for your time. I really appreciate it.swyx: Thanks so much for having me, Corey. It was a blast.
In der Mittagsfolge sprechen wir mit Frederic Krahforst, CEO und Co-Founder von TradeLink über die erfolgreiche Finanzierungsrunde in Höhe von 12 Millionen Euro. TradeLink hat eine Plattform entwickelt, mit der sich Mitarbeitende der Lagerlogistik untereinander vernetzen können. Zudem kann die Kommunikation um die Lieferanten, Spediteure und Kunden erweitert werden. Durch die Plattform wird die Zusammenarbeit in der Lieferkette zwischen allen beteiligten Partnern verstärkt und somit die Kommunikation der Logistik vereinfacht. Das LogTech wurde im Jahr 2020 von Frederic Krahforst und Tobias Nendel in München gegründet. Das Startup beschäftigt 60 Mitarbeitende aus 7 Ländern. Mittlerweile nutzen bereits über 1.000 Unternehmen die Lösung der Logistik-Plattform. TradeLink hat nun in einer Finanzierungsrunde 12 Millionen Euro eingesammelt. Neben den Bestandsinvestoren Point Nine und Fly Ventures hat sich auch der Risikokapitalgeber Insight Partners aus New York an der Runde beteiligt. Zu seinem Portfolio gehören u.a. Trivago (Exit), Delivery Hero, Tumblr (Exit), Shopify (Exit), HelloFresh, Twitter (Exit), Shutterstock, Udemy, Docker, Salesloft, OneTrust, Calm, Lightricks, JFrog, Armis, Bullhorn, Diligent, Avo, Canditech, CompanyCam, Leapsome, Landing AI, Metabase, Monolith, MotorQ, Rattle, Rewind, Rudderstack, Slice, Shelf, Taxbit, Kira, CloudBolt und AnyDesk. Außerdem haben Business Angels, wie u.a. der ehemalige Finanzvorstand der Deutschen Bahn Alexander Doll, der CEO von Sennder,David Nothacker und der ehemalige CFO von TeamViewer Stephan Kniewasser in das Münchener Startup investiert.
About swyxswyx has worked on React and serverless JavaScript at Two Sigma, Netlify and AWS, and now serves as Head of Developer Experience at Airbyte. He has started and run communities for hundreds of thousands of developers, like Svelte Society, /r/reactjs, and the React TypeScript Cheatsheet. His nontechnical writing was recently published in the Coding Career Handbook for Junior to Senior developers.Links Referenced: “Learning Gears” blog post: https://www.swyx.io/learning-gears The Coding Career Handbook: https://learninpublic.org Personal Website: https://swyx.io Twitter: https://twitter.com/swyx TranscriptAnnouncer: Hello, and welcome to Screaming in the Cloud with your host, Chief Cloud Economist at The Duckbill Group, Corey Quinn. This weekly show features conversations with people doing interesting work in the world of cloud, thoughtful commentary on the state of the technical world, and ridiculous titles for which Corey refuses to apologize. This is Screaming in the Cloud.Corey: This episode is sponsored in part by our friend EnterpriseDB. EnterpriseDB has been powering enterprise applications with PostgreSQL for 15 years. And now EnterpriseDB has you covered wherever you deploy PostgreSQL on-premises, private cloud, and they just announced a fully-managed service on AWS and Azure called BigAnimal, all one word. Don't leave managing your database to your cloud vendor because they're too busy launching another half-dozen managed databases to focus on any one of them that they didn't build themselves. Instead, work with the experts over at EnterpriseDB. They can save you time and money, they can even help you migrate legacy applications—including Oracle—to the cloud. To learn more, try BigAnimal for free. Go to biganimal.com/snark, and tell them Corey sent you.Corey: Let's face it, on-call firefighting at 2am is stressful! So there's good news and there's bad news. The bad news is that you probably can't prevent incidents from happening, but the good news is that incident.io makes incidents less stressful and a lot more valuable. incident.io is a Slack-native incident management platform that allows you to automate incident processes, focus on fixing the issues and learn from incident insights to improve site reliability and fix your vulnerabilities. Try incident.io, recover faster and sleep more.Corey: Welcome to Screaming in the Cloud. I'm Corey Quinn. Some folks are really easy to introduce when I have them on the show because, “My name is, insert name here. I built thing X, and my job is Y at company Z.” Then we have people like today's guest.swyx is currently—and recently—the head of developer experience at Airbyte, but he's also been so much more than that in so many different capacities that you're very difficult to describe. First off, thank you for joining me. And secondly, what's the deal with you?swyx: [laugh]. I have professional ADD, just like you. Thanks for having me, Corey. I'm a—Corey: It works out.swyx: a big fan. Longtime listener, first time caller. Love saying that. [laugh].Corey: You have done a lot of stuff. You have a business and finance background, which… okay, guilty; it's probably why I feel some sense of affinity for a lot of your work. And then you went into some interesting directions. You were working on React and serverless YahvehScript—which is, of course, how I insist on pronouncing it—at Two Sigma, Netlify, AWS—a subject near and dear to my heart—and most recently temporal.io.And now you're at Airbyte. So, you've been focusing on a lot of, I won't say the same things, but your area of emphasis has definitely consistently rhymed with itself. What is it that drives you?swyx: So, I have been recently asking myself a lot of this question because I had to interview to get my new role. And when you have multiple offers—because the job market is very hot for DevRel managers—you have to really think about it. And so, what I like to say is: number one, working with great people; number two, working on great products; number three, making a lot of money.Corey: There's entire school of thought that, “Oh, that's gauche. You shouldn't mention trying to make money.” Like, “Why do you want to work here because I want to make money.” It's always true—swyx: [crosstalk 00:03:46]—Corey: —and for some reason, we're supposed to pretend otherwise. I have a lot of respect for people who can cut to the chase on that. It's always been something that has driven me nuts about the advice that we give a new folks to the industry and peop—and even students figuring out their career path of, “Oh, do something you love and the money will follow.” Well, that's not necessarily true. There are ways to pivot something you'd love into something lucrative and there are ways to wind up more or less borderline starving to death. And again, I'm not saying money is everything, but for a number of us, it's hard to get to where we want to be without it.swyx: Yeah, yeah. I think I've been cast with the kind of judgmental label of being very financially motivated—that's what people have called me—for simply talking about it. And I'm like, “No. You know, it's number three on my priority list.” Like, I will leave positions where I have a lot of money on the table because I don't enjoy the people or the products, but having it up there and talking openly about it somehow makes you [laugh] makes you sort of greedy or something. And I don't think that's right. I tried to set an example for the people that I talk to or people who follow me.Corey: One of the things I've always appreciated about, I guess, your online presence, which has remained remarkably consistent as you've been working through a bunch of different, I guess, stages of life and your career, is you have always talked in significant depth about an area of tech that I am relatively… well, relatively crap at, let's be perfectly honest. And that is the wide world of most things front-end. Every time I see a take about someone saying, “Oh, front-end is junior or front-end is somehow less than,” I'd like to know what the hell it is they know because every time I try and work with it, I wind up more confused than I was when I started. And what I really appreciate is that you have always normalized the fact that this stuff is hard. As of the time that we're recording this a day or so ago, you had a fantastic tweet thread about a friend of yours spun up a Create React App and imported the library to fetch from an endpoint and immediately got stuck. And then you pasted this ridiculous error message.He's a senior staff engineer, ex-Google, ex-Twitter; he can solve complex distributed systems problems and unable to fetch from a REST endpoint without JavaScript specialist help. And I talk about this a lot in other contexts, where the reason I care so much about developer experience is that a bad developer experience does not lead people to the conclusion of, “Oh, this is a bad interface.” It leads people to the conclusion, “Oh, I'm bad at this and I didn't realize it.” No. I still fall into that trap myself.I was under the impression that there was just this magic stuff that JS people know. And your tweet did so much to help normalize from my perspective, the fact that no, no, this is very challenging. I recently went on a Go exploration. Now, I'm starting to get into JavaScript slash TypeScript, which I think are the same thing but I'm not entirely certain of that. Like, oh, well, one of them is statically typed, or strongly typed. It's like, “Well, I have a loud mechanical keyboard. Everything I do is typing strongly, so what's your point?”And even then we're talking past each other in these things. I don't understand a lot of the ecosystem that you live your career in, but I have always had a tremendous and abiding respect for your ability to make it accessible, understandable, and I guess for lack of a better term, to send the elevator back down.swyx: Oh, I definitely think about that strongly, especially that last bit. I think it's a form of personal growth. So, I think a lot of people, when they talk about this sending the elevator back down, they do it as a form of charity, like I'm giving back to the community. But honestly, you actually learn a lot by trying to explain it to others because that's the only way that you truly know if you've learned something. And if you ever get anything wrong, you'll—people will never let you forget it because it is the internet and people will crawl over broken glass to remind you that you're wrong.And once you've got it wrong, you will—you know, you've been so embarrassed that you'll never forget it. So, I think it's just a really good way to learn in public. And that's kind of the motto that I'm kind of known for. Yeah, we can take the direction anywhere you want to go in JavaScript land. Happy to talk about it all day. [laugh].Corey: Well, I want to start by something you just said where you're doing the learning in public thing. And something I've noticed is that there are really two positions you can take—in the general sense—when you set out to make a bit of a reputation for yourself in a particular technical space. You can either do the, “I'm a beginner here, same as the rest of you, and I'm learning in public,” or you can position yourself as something of an expert. And there are drawbacks and advantages to both. I think that if you don't look as wildly over-represented as I do, both of them are more fraught in different ways, where it's, “Oh, you're learning in public. Ah, look at the new person, she's dumb.”Or if you're presenting yourself as an expert, you get nibbled to death by ducks on a lot of the deep technical nuances and well, actually'ed to death. And my position has always been and this is going to be a radical concept for some folks, is that I'm genuinely honest. I tend to learn in public about the things that I don't know, but the things that I am something of a subject matter expert in—like, I don't know, cloud billing—I don't think that false modesty necessarily serves me particularly well. It's yeah, I know exactly what I'm talking about here. Pretending otherwise it's just being disingenuous.swyx: I try to think of it as having different gears of learning in public. So, I've called this “Learning Gears” in a previous blog post of mine, where you try to fit your mode of learning to the terrain that you're on, your domain expertise, and you should never over-represent the amount that you know because I think people are very rightly upset when there are a lot of people—let's say on Twitter, or YouTube, or Udemy even—who present themselves as experts who are actually—they just read the docs the previous night. So, you should try not to over-represent your expertise.But at the same time, don't let your imposter syndrome stop you from sharing what you are currently learning and taking corrections when you're wrong. And I think that's the tricky balance to get which is constantly trying to put yourself out there while accepting that you might be wrong and not getting offended when or personally attacked when someone corrects you, inevitably. And sometimes people will—especially if you have a lot of followers, people will try to say—you know, someone of your following—you know, it's—I kind of call this follower shaming, like, you should act, uh—invulnerable, or run every tweet through committee before you tweet after a certain sort of following size. So, I try to not do that and try to balance responsibility with authenticity.Corey: I think that there's something incredibly important about that, where there's this idea that you either become invulnerable and get defensive and you yell at people, and down that path lies disaster because, believe it or not, we all get it wrong from time to time, and doubling down and doubling down and doubling down again, suddenly, you're on an island all by yourself and no one respectable is going to be able to get there to help you. And the other side of it is going too far in the other direction, where you implicitly take any form of criticism whatsoever as being de facto correct. And I think that both paths don't lead to super great places. I think it's a matter of finding our own voices and doing a little bit of work as far as the validity of accepting a given piece of feedback goes. But other than that, I'm a big fan of being able to just more or less be as authentic as possible.And I get that I live in a very privileged position where I have paths open to me that are not open to most folks. But in many respects so to you are one of the—easily—first five people I would think of if someone said, “Hey if I need to learn JavaScript for someone, who should I talk to first?” You're on that list. And you've done a lot of things in this area, but you've never—you alluded to it a few minutes ago, but I'm going to call it out a little more pointedly—without naming names, let's be clear—and that you're never presented as a grifter, which is sort of the best way I can think of it of, “Well, I just learned this new technology stack yesterday and now I'm writing a book that I'm going to sell to people on how to be an expert at this thing.” And I want to be clear, this is very distinct from gatekeeping because I think that, “Oh, well, you have to be at least this much of an expert—” No, but I think that holding yourself out as I'm going to write a book on how to be proud of how to become a software engineer.Okay, you were a software engineer for six months, and more to the point, knowing how to do a thing and knowing how to teach a thing are orthogonal skill sets, and I think that is not well understood. If I ever write a book or put something—or some sort of info product out there, I'm going to have to be very careful not to fall into that trap because I don't want to pretend to be an expert in things that I'm not. I barely think I'm an expert in things that I provable am.swyx: there are many ways to answer that. So, I have been accused a couple of times of that. And it's never fun, but also, if you defend yourself well, you can actually turn a critic into a fan, which I love doing.Corey: Mm-hm.swyx: [laugh].Corey: Oh yes.swyx: what I fall back to, so I have a side interest in philosophy, based on one of my high school teachers giving us, like, a lecture in philosophy. I love him, he changed my life. [Lino Barnard 00:13:20], in case—in the off chance that he's listening. So, there's a theory of knowledge of, like, how do you know what you know, right? And if you can base your knowledge on truth—facts and not opinions, then people are arguing with the facts and not the opinions.And so, getting as close to ground truth as possible and having certainty in your collection of facts, I think is the basis of not arguing based on identity of, like, “Okay, I have ten years experience; you have two years experience. I am more correct than you in every single opinion.” That's also not, like, the best way to engage in the battlefield of ideas. It's more about, do you have the right amount of evidence to support the conclusions that you're trying to make? And oftentimes, I think, you know, that is the basis, if you don't have that ability.Another thing that I've also done is to collect the opinions of others who have more expertise and present them and curate them in a way that I think adds value without taking away from the individual original sources. So, I think there's a very academic way [laugh] you can kind of approach this, but that defends your intellectual integrity while helping you learn faster than the typical learning rate. Which is kind of something I do think about a lot, which is, you know, why do we judge people by the number of years experience? It's because that's usually the only metric that we have available that is quantifiable. Everything else is kind of fuzzy.But I definitely think that, you know, better algorithms for learning let you progress much faster than the median rate, and I think people who apply themselves can really get up there in terms of the speed of learning with that. So, I spend a lot of time thinking about this stuff. [laugh].Corey: It's a hard thing to solve for. There's no way around it. It's, what is it that people should be focusing on? How should they be internalizing these things? I think a lot of it starts to with an awareness, even if not in public, just to yourself of, “I would like advice on some random topic.” Do you really? Are you actually looking for advice or are you looking—swyx: right.Corey: For validation? Because those are not the same thing, and you are likely to respond very differently when you receive advice, depending on which side of that you're coming from.swyx: Yeah. And so, one way to do that is to lay out both sides, to actually demonstrate what you're split on, and ask for feedback on specific tiebreakers that would help your decision swing one way or another. Yeah, I mean, there are definitely people who ask questions that are just engagement bait or just looking for validation. And while you can't really fix that, I think it's futile to try to change others' behavior online. You just have to be the best version of yourself you can be. [laugh].Corey: DoorDash had a problem. As their cloud-native environment scaled and developers delivered new features, their monitoring system kept breaking down. In an organization where data is used to make better decisions about technology and about the business, losing observability means the entire company loses their competitive edge. With Chronosphere, DoorDash is no longer losing visibility into their applications suite. The key? Chronosphere is an open source compatible, scalable, and reliable observability solution that gives the observability lead at DoorDash business, confidence, and peace of mind. Read the full success story at snark.cloud/chronosphere. That's snark.cloud slash C-H-R-O-N-O-S-P-H-E-R-E.Corey: So, you wrote a book that is available at learninpublic.org, called The Coding Career Handbook. And to be clear, I have not read this myself because at this point, if I start reading a book like that, and you know, the employees that I have see me reading a book like that, they're going to have some serious questions about where this company is going to be going soon. But scrolling through the site and the social proof, the testimonials from various people who have read it, more or less read like a who's-who of people that I respect, who have been on this show themselves.Emma Bostian is fantastic at explaining a lot of these things. Forrest Brazeal is consistently a source to me of professional envy. I wish I had half his musical talent; my God. And your going down—it explains, more or less, the things that a lot of folks people are all expected to know but no one teaches them about every career stage, ranging from newcomer to the industry to senior. And there's a lot that—there's a lot of gatekeeping around this and I don't even know that it's intentional, but it has to do with the idea that people assume that folks, quote-unquote, “Just know” the answer to some things.Oh, people should just know how to handle a technical interview, despite the fact that the skill set is completely orthogonal to the day-to-day work you'll be doing. People should just know how to handle a performance review, or should just know how to negotiate for a raise, or should just know how to figure out is this technology that I'm working on no longer the direction the industry is going in, and eventually I'm going to wind up, more or less, waiting for the phone to ring because there's only three companies in the world left who use it. Like, how do you keep—how do you pay attention to what's going on around you? And it's the missing manual that I really wish that people would have pointed out to me back when I was getting started. Would have made life a lot easier.swyx: Oh, wow. That's high praise. I actually didn't know we're going to be talking about the book that much. What I will say is—Corey: That's the problem with doing too much. You never know what people have found out about you and what they're going to say when they drag you on to a podcast.swyx: got you, got you. Okay. I know, I know, I know where this is going. Okay. So, one thing that I really definitely believe is that—and this happened to me in my first job as well, which is most people get the mentors that they're assigned at work, and sometimes you have a bad roll the dice. [laugh].And you're supposed to pick up all the stuff they don't teach you in school at work or among your friend group, and sometimes you just don't have the right network at work or among your friend group to tell you the right things to help you progress your career. And I think a lot of this advice is written down in maybe some Hacker News posts, some Reddit posts, some Twitter posts, and there's not really a place you to send people to point to, that consolidates that advice, particularly focused at the junior to senior stage, which is the stage that I went through before writing the book. And so, I think that basically what I was going for is targeting the biggest gap that I saw, which is, there a lot of interview prep type books like Crack the Coding Career, which is kind of—Crack the Coding Interview, which is kind of the book title that I was going after. But once you got the job, no one really tells you what to do after you got that first job. And how do you level up to the senior that everyone wants to hire, right? There's—Corey: “Well, I've mastered cracking the coding interview. Now, I'm really trying to wrap my head around the problem of cracking the showing up at work on time in the morning.” Like, the baseline stuff. And I had so many challenges with that early in my career. Not specifically punctuality, but just the baseline expectation that it's just assumed that by the time you're in the workplace earning a certain amount of money, it's just assumed that you have—because in any other field, you would—you have several years of experience in the workplace and know how these things should play out.No, the reason that I'm sometimes considered useful as far as giving great advice on career advancement and the rest is not because I'm some wizard from the future, it's because I screwed it all up myself and got censured and fired and rejected for all of it. And it's, yeah, I'm not smart enough to learn from other people's mistakes; I got to make them myself. So, there's something to be said for turning your own missteps into guidance so that the next person coming up has an easier time than you did. And that is a theme that, from what I have seen, runs through basically everything that you do.swyx: I tried to do a lot of research, for sure. And so, one way to—you know, I—hopefully, I try not to make mistakes that others have learned, have made, so I tried to pick from, I think I include 1500 quotes and sources and blog posts and tweets to build up that level of expertise all in one place. So hopefully, it gives people something to bootstrap your experience off of. So, you're obviously going to make some mistakes on your own, but at least you have the ability to learn from others, and I think this is my—you know, I'm very proud of the work that I did. And I think people have really appreciated it.Because it's a very long book, and nobody reads books these days, so what am I doing [laugh] writing a book? I think it's only the people that really need this kind of advice, that they find themselves not having the right mentorship that reach out to me. And, you know, it's good enough to support a steady stream of sales. But more importantly, like, you know, I am able to mentor them at various levels from read my book, to read my free tweets, to read the free chapters, or join the pay community where we have weekly sessions going through every chapter and I give feedback on what people are doing. Sometimes I've helped people negotiate their jobs and get that bump up to senior staff—senior engineer, and I think more than doubled their salary, which was very personal proud moment for me.But yeah, anyway, I think basically, it's kind of like a third place between the family and work that you could go to the talk about career stuff. And I feel like, you know, maybe people are not that open on Twitter, but maybe they can be open in a small community like ours.Corey: There's a lot to be said for a sense of professional safety and personal safety around being—having those communities. I mean, mine, when I was coming up was the freenode IRC network. And that was great; it's pseudo-anonymous, but again, I was Corey and network staff at the time, which was odd, but it was great to be able to reach out and figure out am I thinking about this the wrong way, just getting guidance. And sure, there are some channels that basically thrived on insulting people. I admittedly was really into that back in the early-two-thousand-nothings.And, like, it was always fun to go to the Debian channel. It's like, “Yeah, can you explain to me how to do this or should I just go screw myself in advance?” Yeah, it's always the second one. Like, community is a hard thing to get right and it took me a while to realize this isn't the energy I want in the world. I like being able to help people come up and learn different things.I'm curious, given your focus on learning in public and effectively teaching folks as well as becoming a better engineer yourself along the way, you've been focusing for a while now on management. Tell me more about that.swyx: I wouldn't say it's been, actually, a while. Started dabbling in it with the Temporal job, and then now fully in it with Airbyte.Corey: You have to know, it has been pandemic time; it has stood still. Anything is—swyx: exactly.Corey: —a while it given that these are the interminable—this is the decade of Zoom meetings.swyx: [laugh]. I'll say I have about a year-and-a-half of it. And I'm interested in it partially because I've really been enjoying the mentoring side with the coding career community. And also, I think, some of the more effective parts of what I do have to be achieved in the planning stages with getting the right resources rather than doing the individual contributor work. And so, I'm interested in that.I'm very wary of the fact that I don't love meetings myself. Meetings are a means to an end for me and meetings are most of the job in management time. So, I think for what's important to me there, it is that we get stuff done. And we do whatever it takes to own the outcomes that we want to achieve and try to manage people's—try to not screw up people's careers along the way. [laugh]. Better put, I want people to be proud of what they get done with me by the time they're done with me. [laugh].Corey: So, I know you've talked to me about this very briefly, but I don't know that as of the time of this recording, you've made any significant public statements about it. You are now over at Airbytes, which I confess is a company I had not heard of before. What do y'all do over there?swyx: [laugh]. “What is it we do here?” So Airbyte—Corey: Exactly. Consultants want to know.swyx: Airbyte's a data integration company, which means different things based on your background. So, a lot of the data engineering patterns in, sort of, the modern data stack is extracting from multiple sources and loading everything into a data warehouse like a Snowflake or a Redshift, and then performing analysis with tools like dbt or business intelligence tools out there. We like to use MetaBase, but there's a whole there's a whole bunch of these stacks and they're all sort of advancing at different rates of progress. And what Airbyte would really like to own is the data integration part, the part where you load a bunch of sources, every data source in the world.What really drew me to this was two things. One, I really liked the vision of data freedom, which is, you have—you know, as—when you run a company, like, a typical company, I think at Temporal, we had, like, 100, different, like, you know, small little SaaS vendors, all of them vying to be the sources of truth for their thing, or a system of record for the thing. Like, you know, Salesforce wants to be a source of truth for customers, and Google Analytics want to be source of truth for website traffic, and so on and so forth. Like, and it's really hard to do analysis across all of them unless you dump all of them in one place.So one, is the mission of data freedom really resonates with me. Like, your data should be put in put somewhere where you can actually make something out of it, and step one is getting it into a format in a place that is amenable for analysis. And data warehouse pattern has really taken hold of the data engineering discipline. And I find, I think that's a multi-decade trend that I can really get behind. That's the first thing.Corey: I will say that historically, I'm bad at data. All jokes about using DNS as a database aside, one of the reasons behind that is when you work on stateless things like web servers and you blow trunks and one of them, oops. We all laugh, we take an outage, so maybe we're not laughing that hard, but we can reprovision web servers and things are mostly fine. With data and that going away, there are serious problems that could theoretically pose existential risk to the business. Now, I was a sysadmin and a, at least mediocre one, which means that after the first time I lost data, I was diligent about doing backups.Even now, the data work that we do have deep analysis on our customers' AWS bills, which doesn't sound like a big data problem, but I assure you it is, becomes something where, “Okay, step one. We don't operate on it in place.” We copy it into our own secured environment and then we begin the manipulations. We also have backups installed on these things so that in the event that I accidentally the data, it doesn't wind up causing horrifying problems for our customers. And lastly, I wind up also—this is going to surprise people—I might have securing the access to that data by not permitting writes.Turns out it's really hard—though apparently not impossible—to delete data with read-only calls.swyx: [crosstalk 00:28:12].Corey: It tends to be something of just building guardrails against myself. But the data structures, the understanding the analysis of certain things, I would have gotten into Go way sooner than I did if the introduction to Go tutorial on how to use it wasn't just a bunch of math problems talking about this is how you do it. And great, but here in the year of our lord 2022, I mostly want a programming language to smack a couple of JSON objects together and ideally come out with something resembling an answer. I'm not doing a whole lot of, you know, calculating prime numbers in the course of my week. And that is something that took a while for me to realize that, no, no, it's just another example of not being a great way of explaining something that otherwise could be incredibly accessible to folks who have real problems like this.I think the entire field right now of machine learning and the big data side of the universe struggles with this. It's, “Oh, yeah. If you have all your data, that's going to absolutely change the world for you.” “Cool. Can you explain how?” “No. Not effectively anyway.” Like, “Well, thanks for wasting everyone's time. It's appreciated.”swyx: Yeah, startup is sitting on a mountain of data that they don't use and I think everyone kind of feels guilty about it because everyone who is, like, a speaker, they're always talking about, like, “Oh, we used our data to inform this presidential campaign and look at how amazing we are.” And then you listen to the podcasts where the data scientists, you know, talk amongst themselves and they're like, “Yeah, it's bullshit.” Like, [laugh], “We're making it up as we go along, just like everyone else.” But, you know, I definitely think, like, some of the better engineering practices are arising under this. And it's professionalizing just like front-end professionalized maybe ten years ago, DevOps professionalized also, roughly in that timeframe, I think data is emerging as a field that is just a standalone discipline with its own tooling and potentially a lot of money running through it, especially if you look at the Snowflake ecosystem.So, that's why I'm interested in it. You know, I will say there's also—I talked to you about the sort of API replication use case, but also there's database replication, which is kind of like the big use case, which, for example, if you have a transactional sort of SQL database and you want to replicate that to an analytical database for queries, that's a very common one. So, I think basically data mobility from place to place, reshaping it and transferring it in as flexible manner as possible, I think, is the mission, and I think there's a lot of tooling that starts from there and builds up with it. So, Airbyte integrates pretty well with Airflow, Dexter, and all the other orchestration tools, and then, you know, you can use dbt, and everything else in that data stack to run with it. So, I just really liked that composition of tools because basically when I was a hedge fund analyst, we were doing the ETL job without knowing the name for it or having any tooling for it.I just ran a Python script manually on a cron job and whenever it failed, I would have to get up in the middle of night to go kick it again. It's, [laugh] it was that bad in 2014, '15. So, I really feel the pain. And, you know, the more data that we have to play around with, the more analysis we can do.Corey: I'm looking forward to seeing what becomes of this field as folks like you get further and further into it. And by, “Well, what do you mean, folks like me?” Well, I'm glad you asked, or we're about to as I put words in your mouth. I will tell you. People who have a demonstrated ability not just to understand the technology—which is hard—but then have this almost unicorn gift of being able to articulate and explain it to folks who do not have that level of technical depth in a way that is both accessible and inviting. And that is no small thing.If you were to ask me to draw a big circle around all the stuff that you've done in your career and define it, that's how I would do it. You are a storyteller who is conversant with the relevant elements of the story in a first-person perspective. Which is probably a really wordy way to put it. We should get a storyteller to workshop that, but you see the point.swyx: I try to call it, like, accessibly smart. So, it's a balance that you want to make, where you don't want to talk down to your audience because I think there are a lot of educators out there who very much stay at the basics and never leave that. You want to be slightly aspirational and slightly—like, push people to the bounds of their knowledge, but then not to go too far and be inaccessible. And that's my sort of polite way of saying that I dumb things down as service. [laugh].Corey: But I like that approach. The term dumbing it down is never a phrase to use, as it turns out, when you're explaining it to someone. It's like, “Let me dumb that down for you.” It's like, yeah, I always find the best way to teach someone is to first reach them and get their attention. I use humor, but instead we're going to just insult them. That'll get their attention all right.swyx: No. Yeah. It does offend some people who insist on precision and jargon. And I'm quite against that, but it's a constant fight because obviously there is a place at time for jargon.Corey: “Can you explain it to me using completely different words?” If the answer is, “No,” the question then is, “Do you actually understand it or are you just repeating it by rote?”swyx: right.Corey: There's—people learn in different ways and reaching them is important. [sigh].swyx: Exactly.Corey: Yeah. I really want to thank you for being so generous with your time. If people want to learn more about all the various things you're up to, where's the best place to find you?swyx: Sure, they can find me at my website swyx.io, or I'm mostly on Twitter at @swyx.Corey: And we will include links to both of those in the [show notes 00:33:37]. Thank you so much for your time. I really appreciate it.swyx: Thanks so much for having me, Corey. It was a blast.Corey: swyx, head of developer experience at Airbyte, and oh, so much more. I'm Cloud Economist Corey Quinn, and this is Screaming in the Cloud. If you've enjoyed this podcast, please leave a five-star review on your podcast platform of choice or if it's on the YouTubes thumbs up and subscribe, whereas if you've hated this podcast, same thing, five-star review wherever you want, hit the buttons on the YouTubes, but also leaving insulting comment that is hawking your book: Why this Episode was Terrible that you're now selling as a legitimate subject matter expert in this space.Corey: If your AWS bill keeps rising and your blood pressure is doing the same, then you need The Duckbill Group. We help companies fix their AWS bill by making it smaller and less horrifying. The Duckbill Group works for you, not AWS. We tailor recommendations to your business and we get to the point. Visit duckbillgroup.com to get started.Announcer: This has been a HumblePod production. Stay humble.
Simon Belak je bil eden prvih inženirjev podjetja Metabase v Silicijevi dolini, tehnični direktor podjetja Go Opti, je soustanovitelj Hekovnika, danes pa tudi svetovalec različnim podjetjem. Komentiramo aktualno dogajanje v Ukrajini, Rusi so v mestu Melitopolj zasegli kmetijsko mehanizacijo podjetja John Deere, ki je stroje izklopilo na daljavo. Podjetje sicer ne slovi po dobrodelnosti, si lasti veliko količino podatkov in kmetom ne dovoli posega v stroj brez pooblaščenih oseb podjetja. Spominjamo se še iPoda, 21 let starega izdelka, ki je spremenil način poslušanja glasbe. Apple je najavil, da se od njega poslavljajo in ga umikajo iz proizvodnje. Traktorji so računalniki John Deere turned tractors into computers — what's next? - The Verge iPod je šel po gobe The music lives on - Apple Apple releases iPod - Slashdot Priporočilo Airtable | Create apps that perfectly fit your team's needs Notion – One workspace. Every team. Metabase | Business Intelligence, Dashboards, and Data Visualization Pišite nama na odbita@rtvslo.si. Na tem naslovu zbirava ideje za teme in odgovarjava na vprašanja.
Simon Belak je pomagal več ducatom podjetij postati data-driven in postaviti ali nadgraditi svoje podatkovne oddelke in podatkovno infrastrukturo. Poleg svetovalnega dela je bil tekom svoje kariere eden prvih inženirjev na Metabase iz Silicijeve doline, kjer je vodil razvoj umetne inteligence in pripeljal produkt do tega, da ga dnevno uporablja preko 50.000 podjetji, med drugim Swisscom, N26, Revolut, SpaceX, Adidas. Pred tem je bil tehnični direktor na GoOpti, kjer je s svojim delom podatkovno podprl GoOptijevo mednarodno širitev, izboljšal profitabilnost za 35%, vzpostavil growth hacking procese in pomagal pri pridobitvi serija A investicije tveganega kapitala. Kot soustanovitelj Hekovnika – prve startup šole v Sloveniji – je pustil neizbrisljiv pečat na slovenski startup sceni. Simon je iskan predavatelj doma in po svetu, zavzet mentor in viden član programerske in growth hacking skupnosti. Naj quote: A change of perspective is worth 80 IQ points - A. Kay Naj knjiga: nimam najljubše, ampak knjiga, ki mi je zelo pri srcu in jo skoraj vsakemu priporočam in vsebuje veliko prvin, ki jih zelo cenim je: The Origin of Consciousness in the Breakdown of the Bicameral Mind Naj serija: serij gledam zelo malo. Prva, ki mi pade na pamet je Dirk Gently's Holistic Detective Agency Hobiji: surfanje, gorsko kolesarjenje, restavriranje starodobnih avtomobilov Najljubša hrana: na svetu je preveč jedi, da bi imel najljubšo v smislu, da bi se k njej znova in znova vračal. Rad kuham (navezava kuhanje - hekanje) Najljubši podjetnik: bolj kot razmišljam, bolj se mi zdi, da je dober podjetnik vedno tudi deeply flawed. Ljudje od katerih sem se ogromno naučil: Kristjan Pečanec, Sameer al Sakran (CEO Metabase). Zanimiva oseba mi je Musk. Naj app: Emacs Nauki za naše poslušalce: · Malo dinamik je zares linearnih. Dvakrat večje, dvakrat hitrejše, dvakrat krajše se bo obnašalo več kot dvakrat drugače. Če denimo iterirate dvakrat hitreje, bo pot vašega posla povsem drugačna. · Vsako orodje (in pod to štejem tudi procese in mentalne modele) deluje "na obeh koncih". S svojimi danostmi vpliva na to kako razmišljamo in pristopamo k problemom. Nehote bomo kar je preprosto počeli pogosto, tistemu kar ima veliko trenja pa se bomo izogibali. Analizirati svet okoli nas skozi prizmo UX je zato ena ključnih praks za (samo)izboljševanje. · Najbolj impactful stvar, ki jo lahko naredite (zase in za svoje podjetje) je redna, namerna in sistematična pol urna introspekcija vsak teden.
Simon Belak is a visionary; he speaks with outstanding clarity and has a true leader's heart. Working with Metabase has sharpened his skill in product leadership, and today he'll be sharing his line of work with us and walking us through how he can build high leverage teams for his former company, Metabase. Product leadership has become an increasingly important subject in our field. It focuses on specific challenges on those leading product teams and is accountable for product performance and customer satisfaction. Someone can do this by leading a team with a product-centric strategy. Product leaders progress through creating cross-functional influence, product work, and scale. Listen to this episode, and gain value on Simon's insights about the topic. Show notes [3:29] The personal growth that he gets from such a different lifestyle is reflected in his leadership. [4:27] Simon's definition of product leadership. [4:47] The fundamental difference between management and leadership. [7:10] Leadership should be fundamentally about enabling people. [8:35] To earn leadership, you have to show that you're always trying to better your team. [9:57] Taking into account the long-term vision of Product-Led in their company. [11:17] The evolution of leadership at Metabase [15:23] Metabase created an environment where people can open up their thoughts and feelings without worrying about judgment. [18:39] How do you build a high leverage team? [21:36] How can a person adapt to Metawork? [23:54] The most value starts after you do Metawork in the long term. [26:26] The importance of acknowledging how fast the market is changing. [28:08] Actionable recommendations on developing and implementing new leadership strategies. [28:13] Interaction between company culture and leadership. [28:56] Implementing completely bottom-up and very concrete practices. [31:35] How does Simon get into this business meditative state? [34:50] Don't think about solutions. Think about the problem harder. Create a hypothesis about the situation and provide solutions on how you can attest to the problem. [36:58] Start with introspection sessions. About Simon Belak During his time at Metabase, his time was split between data science, product leadership, and producing engineering work. Simon brings complex topics and simplifies them so people can understand them better. He is exceptionally customer-focused and helps you go beyond your boundaries by challenging your beliefs. Profile Simon's Twitter Simon's LinkedIn
Timestamps(01:40) Julia shared the differences growing up in New York and moving to San Francisco.(03:05) Julia discussed her overall undergraduate experience at Stanford — getting dual degrees in Computer Science and Management Science & Engineering_._(05:40) Julia went over her time as an Investment Banker at Qatalyst Partners — notably working on Microsoft's acquisition of LinkedIn.(09:11) Julia talked about her career transition to venture capital — working as an associate investor at New Enterprise Associates.(10:46) Julia emphasized the importance of getting up-to-speed and forming an investment thesis as a new investor.(15:05) Julia discussed her Series A investment in Metabase, an open-source business intelligence software project.(18:36) Julia unpacked her investment(s) in Sentry, an application monitoring platform that helps developers monitor apps in real-time to catch bugs early.(20:14) Julia explained her investment in the Series B round for Anyscale, an end-to-end computing platform that makes building and managing a scaled application across clouds as easy as developing an app on a single computer.(23:03) Julia contextualized her investments in the seed round for Datafold, a data observability platform that equips analytics engineers with the tools to address data quality issues.(24:24) Julia shared typical hiring and go-to-market decisions that companies need to make (depending upon their growth stages and product strategies).(27:05) Julia mentioned her Metabase application to help investors pick winning open-source startups.(29:05) Julia rationalized her switch to becoming a product manager at dbt Labs.(30:34) Julia peeked into the roadmap of dbt Cloud, a hosted service that helps data analysts and engineers productionize dbt deployments.(33:34) Julia went over an under-invested area and the role of interoperability within the broader data tooling ecosystem.(37:56) Julia reflected on the difference between being a venture investor and a product manager.(41:05) Closing segment.Julia's Contact InfoLinkedInTwitterdbt's ResourcesSlack CommunityCoalesce 2021 Replaysdbt LearnGitHubEvents and MeetupsMentioned ContentPeopleTristan Handy (Founder and CEO of dbt Labs)Ali Ghodsi (Co-Creator of Apache Spark, Co-Founder and CEO of Databricks)Dan Levine (General Partner at Accel Partners)Book“Working Backwards: Insights, Stories, and Secrets from Inside Amazon” (by Bill Carr and Colin Bryar)NotesMy conversation with Julia was recorded back in May 2021. Since the podcast was recorded, a lot has happened at dbt Labs! I'd recommend:Reading Julia's recent blog posts on adopting CI/CD and introducing Environment Variables in dbt Cloud.Watching the talk replays from Coalesce, dbt's 2nd annual analytics engineering conferenceListening to Season 1 of the Analytics Engineering Podcast, where Julia co-hosts with Tristan Handy to go deep into the hopes, dreams, motivations, and failures of leading data and analytics practitioners.About the showDatacast features long-form, in-depth conversations with practitioners and researchers in the data community to walk through their professional journeys and unpack the lessons learned along the way. I invite guests coming from a wide range of career paths — from scientists and analysts to founders and investors — to analyze the case for using data in the real world and extract their mental models (“the WHY and the HOW”) behind their pursuits. Hopefully, these conversations can serve as valuable tools for early-stage data professionals as they navigate their own careers in the exciting data universe.Datacast is produced and edited by James Le. Get in touch with feedback or guest suggestions by emailing khanhle.1013@gmail.com.Subscribe by searching for Datacast wherever you get podcasts or click one of the links below:Listen on SpotifyListen on Apple PodcastsListen on Google PodcastsIf you're new, see the podcast homepage for the most recent episodes to listen to, or browse the full guest list.
1:09 - Webflow is now completely free for students worldwide!1:39 - Vlad, from Webflow, was on TechCrunch live2:14 - Tellie launched on Product Hunt3:06 - Parabola adds Editor AND viewer roles to flows3:50 - Brizy is a drag and drop no-code builder for Wordpress4:42 - Zapier announced Transfer!5:52 - The new Bubble responsive engine is supposed to be coming this week? 7:10 - Notion2Sheets launched on Product Hunt8:30 - Codeless launched on Product Hunt too!9:39 - Anyone using AI2Sql?10:55 - Microsoft is just straight up ripping off Coda and Notion13:00 - Ycode announces Zapier Integration13:55 - I went on Aron Korenblit's AATT to talk NoCodeAPI15:09 - Edgar Allan is hosting a session on how to use Metabase this week16:09 - Colleen shared https://www.nocodecalendar.com/ - built by Hiram!16:33 - Spotbase looks interesting
Тема выпуска "Кофейный бизнес, SQL, dbt и BI" В гостях у подкаста `Data Coffee` кандидат экономических наук, специалист и руководитель в области BI, руководитель компании Valiotti Analytics (Сайт, Telegram) Подкаст `Data Coffee` — информационный партнёр конференции SmartData 2021. SmartData — это большая техническая конференция по Data Engineering. Десятки докладов, воркшопов, Q&A-сессий — первые доклады и имена спикеров уже появляются на сайте! Промокод на 2000 рублей: datacoffe2021JRGpc Shownotes: 00:35 Знаменательный день для подкаста 03:03 Всё будет кофе, даже пиво 06:52 Есть ли особеннности в аналитике кофейного бизнеса 11:35 SQL в задачах анализа данных 22:34 Хорошая ли практика - строить ML в SQL 25:00 dbt, Looker и версионирование SQL-кода 41:15 Нужно ли аналитику изучать Python 44:53 Зачем используют MatLab в диссертациях 48:30 Самый любимый BI-инструмент гостя 53:10 Дашборд новоиспечённых родителей 54:24 Динамические дашборды в opensource инструментах 1:08:54 Metabase в качестве BI-инструмента 1:14:42 Как обидеть аналитика данных, или внедрение self-service BI 1:21:20 Бонус для тех кто дослушал Обложка - собственное творение
A mineradora Vale apresentou recurso ordinário para recorrer da decisão de 1ª instância que a condenou a pagar R$ 1 milhão de indenização por cada trabalhador morto no rompimento da barragem Córrego do Feijão, em Brumadinho (MG). A importância é referente aos danos morais pelo sofrimento causado. No recurso, os advogados da Vale classificaram o valor como um “absurdo”. O recurso foi interposto na segunda-feira (5) à 5ª Vara do Trabalho de Betim (MG), onde corre a Ação Civil Coletiva proposta pelo Sindicato dos Trabalhadores nas Indústrias da Extração de Ferro e Metais Básicos de Brumadinho e Região (Metabase). A ação representa os 131 trabalhadores diretos (não terceirizados) e reivindicou inicialmente o valor de R$ 3 milhões por cada trabalhador. Valor este reajustado a R$ 1 milhão pela juíza Viviane Célia Ferreira Ramos Correa. A indenização é referente ao dano moral causado pelo sofrimento por uma morte tão dolorosa e pelo abreviamento das vidas dos trabalhadores. A empresa fez acordos com algumas das vítimas frente a danos morais pessoais, porém, o Metabase Brumadinho sustenta que esse pagamento não se confunde com a indenização por dano moral pela morte dos trabalhadores.
Lindsay, Steve, and Luke Diebold discuss SEO in Nuxt with Anamol Soman. We talk about how he got started with Vue, and his initial blog posts on Nuxt. We dive into SEO, what it is and why it's important, and how to integrate plugins with Nuxt to improve search engine optimization. We also discuss some of the difficulties developers run into with optimizing their sites. Panel Lindsay Wardell Luke Diebold Steve Edwards Guest Anamol Soman Sponsors Dev Influencers Accelerator Links Building Scalable Applications with Quasar – VUE 146 | Devchat.tv Vue Mastery Make your Nuxt.js Application SEO Friendly JSJ 476: Understanding Search Engines and SEO (for devs) – Part 1 | Devchat.tv JSJ 477: Understanding Search Engines and SEO (for devs) – Part 2 | Devchat.tv Anamol Soman - Medium Meta Tags and SEO - NuxtJS Netlify Analytics Fathom Analytics LinkedIn: Anamol Soman Picks Lindsay- Slidev Luke- Metabase Contact Lindsay: Twitter: Lindsay Wardell ( @lindsaykwardell ) Contact Luke: Twitter: Luke Diebold ( @LukeDiebold ) Contact Steve: Twitter: Steve Edwards ( @wonder95 ) GitHub: Steve Edwards ( wonder95 ) LinkedIn: Steve Edwards
Lindsay, Steve, and Luke Diebold discuss SEO in Nuxt with Anamol Soman. We talk about how he got started with Vue, and his initial blog posts on Nuxt. We dive into SEO, what it is and why it's important, and how to integrate plugins with Nuxt to improve search engine optimization. We also discuss some of the difficulties developers run into with optimizing their sites. Panel Lindsay Wardell Luke Diebold Steve Edwards Guest Anamol Soman Sponsors Dev Influencers Accelerator Links Building Scalable Applications with Quasar – VUE 146 | Devchat.tv Vue Mastery Make your Nuxt.js Application SEO Friendly JSJ 476: Understanding Search Engines and SEO (for devs) – Part 1 | Devchat.tv JSJ 477: Understanding Search Engines and SEO (for devs) – Part 2 | Devchat.tv Anamol Soman - Medium Meta Tags and SEO - NuxtJS Netlify Analytics Fathom Analytics LinkedIn: Anamol Soman Picks Lindsay- Slidev Luke- Metabase Contact Lindsay: Twitter: Lindsay Wardell ( @lindsaykwardell ) Contact Luke: Twitter: Luke Diebold ( @LukeDiebold ) Contact Steve: Twitter: Steve Edwards ( @wonder95 ) GitHub: Steve Edwards ( wonder95 ) LinkedIn: Steve Edwards
All companies want to use data in making better decisions, but it's not straightforward. In today's episode, we talk to Sameer Al-Sakran, the CEO of Metabase. Some topics:- Decision Making Styles in Teams - Narrative and/or Data Driven- Interpreting Data is Not Easy- How to make your life painful with data (Pack rats or only showing key metrics)- How to Start using Data in a Better Way and Finding Early Wins- How do you start data exploration if your data isn't clean?- Building Quick Wins with the Company Without Rewriting your Schema- Introducing data in your conversations and decisions
A British designer by trade, Bonjoro is Matts second company, founded out of Sydney Australia. What started as a sales hack for an Agency he was running, Bonjoro went from hack to side hustle to global business in 18 months, and now has team across 5 continents. Matts love of building great products is only surpassed by that of building great culture, and his goal is to be the next Zappos, to be most loved brand in the world. When not heads down in product, Matt spends his time rescuing wildlife, teaching his daughter about beekeeping and running one of Sydney’s largest tech founder networks. Most passionate about I love building great products. The second thing I love most is people. I'm very much an extrovert. So, I love the idea of building great products and then using them to help people connect with other people better. Matt’s career and story I’m from the UK originally, and I came to Australia eleven years ago. I was originally an industrial designer. I earned an MBA and fell into running an agency. We found that by sending videos to individuals, we get much more engagement. A few agencies wanted to use that technique, and their customers used it, so in 2017, we launched a technology company developing personal videos called Bonjoro. It's all about connecting with customers at key points on the customer journey. What we find is that they're investing a little bit of time checking in personally with leads. Using videos and media is incredibly powerful in terms of engagement. Today, I run that company full-time. The product team is here, in Australia. Then, most of the rest of our team is outside Australia because our customer base is located around the world. Right now, it's really about taking the business to the next stage. So we kind of three years behind in Australia, it is definitely not Israel or the West Coast of the States. Best advice for entrepreneurs I think you have to stay connected to the front line. I don't pick and choose. We just send to anyone a personal video and ask them to respond to me personally, to give me feedback. Every single day, I ensure that I talk to a couple of customers on the front line. I have a handle on how well the product is performing and how well our funnel is performing overall, qualitatively. That gives me a better ability to work with my managers across marketing, across customer success, and across products. The biggest, most critical failure with customers The first business that I mentioned we tried to start, we actually built the product and raised lots of money. Then it failed quite spectacularly and we made a critical error. A lot of people loved the idea and loved what we were doing. We had a lot of paying customers. Then none of those activated. There wasn't a sense of urgency within what we were trying to do. Call that a failure of research, or call that making assumptions that were wrong, but ultimately, we couldn't keep that business going. Biggest success with customers I think it was deciding to go full-time into the Bonjoro product when we already had another business running. It wasn't ever meant to be a business but it looked like we should invest some more time, in this project and it became bigger and bigger so we decided to focus on it as our main business. Matt’s recommendation of a tool Amplitude or Metabase. We use both to track data, measure it, and help inform decisions. It is absolutely crucial to helping marketing improve their funnel. Matt’s one key success factor I think it's the love of customers. We talk to them a lot. We hang out with them. We always treat them as friends and it has helped us on every level. It has helped us get amazing marketing opportunities and co-partnerships. It has helped us build integrations and partnerships with much larger companies than us. Matt’s Mountain Since we believe that the best way for entrepreneurs to get fast, big, and sustainable success is by leading your (new)...
Eric Siu is the CEO of digital marketing agency https://www.singlegrain.com/ (Single Grain), a digital marketing agency focused on growing Saas businesses as well as helping Fortune 500 companies like Uber, Amazon and Salesforce acquire more customers through SEO and paid advertising. Eric Siu usually helps entrepreneurs with the tools and processes to help them grow both personally and professionally revealing secrets from that have grown multi-million to billion dollar companies. Eric Siu is a marketing expert that contributes regularly to Entrepreneur Magazine, Fast Company, Forbes & more, He's also the founder of ClickFlow, the entrepreneurial podcast, Growth Everywhere podcast, and the Marketing School podcast with Neil Patel. During this interview we cover: 00:00 - A Word From The Sponsor 01:03 - Intro 02:15 - Eric's Background, Past Ventures & How He got to Where He is Today 06:39 - Marketing Trends & Macro Level Changes in 2020 09:55 - Highly Subjective VS Data Driven Marketing From Client Perspective 10:48 - Eric's Growth SaaS Playbook 14:57 - B2B SaaS VS SMB Playbook Changes 16:18 - SaaS VS Agency, ClickFlow Vs SingleGrain 21:36 - Build a SaaS From Day One? 24:13 - How To Become A Better Digital Marketer 25:52 - Where is Eric Focusing His Marketing Efforts & Budget For His Brand 27:22 - How Long Before Seeing Results Leveraging Youtube, Podcasting & Content Marketing 31:31 - Top Mentors & Resources For Eric's Success Today 33:24 - Get In Touch With Eric & Find Out More About His Book Mentions: https://www.singlegrain.com/ (Single Grain) https://www.clickflow.com/ (ClickFlow) https://metabase.com/ (Metabase) https://growandconvert.com/content-marketing/seo-content-conversions/ (Pain-Point SEO) https://www.googleadservices.com/pagead/aclk?sa=L&ai=DChcSEwie4Pjj4_bsAhXP8uMHHVyxA4wYABAAGgJ5bQ&ae=2&ohost=www.google.com&cid=CAESQeD2vGa3qyO4IjO86e7wGgANq_A46oBdLg9ySbt-2ITsTa8OJSYUEttA9PP2BUsO6JzRQTjjzs3GmQBcloFlh7av&sig=AOD64_1v8xFUmQMJNKjHMX600cwBYwzI6A&q&adurl&ved=2ahUKEwiL6evj4_bsAhUOWa0KHdhmCFQQ0Qx6BAgWEAE&dct=1 (Click Funnels) https://www.singlegrain.com/leveling-up-podcast/ (Leveling Up Podcast) https://coschedule.com/ (Coschedule) https://moz.com/ (Moz) https://basecamp.com/ (Basecamp) https://www.eonetwork.org/ (EO) People: Neil Patel https://www.clickfunnels.com/blog/author/clickfunnels/ (Russel Bronson) https://ca.linkedin.com/in/awilkinson (Andrew Wilkinson) https://www.youtube.com/channel/UCevXpeL8cNyAnww-NqJ4m2w (Anthony Pompliano) https://www.rebootbyjerry.com/ (Jerry Colona) Books: https://www.gurufocus.com/news/862264/the-dhandho-investor-pabrais-investing-framework (DhanDho Investing) Get In Touch With Eric: https://www.levelingup.com/ (Leveling Up) Twitter: @eriosiu Instagram: @ericosiu Tag us & follow: https://www.facebook.com/HorizenCapitalOfficial/ (Facebook) https://www.facebook.com/HorizenCapitalOfficial/ https://www.linkedin.com/company/horizen-capital (LinkedIn) https://www.linkedin.com/company/horizen-capital https://www.instagram.com/saasdistrict/ (Instagram) https://www.instagram.com/saasdistrict/ (https://www.instagram.com/saasdistrict/) YouTube https://www.youtube.com/channel/UCYvpqdVVSlSMunWiEwlMjzw (Akeel Jabber - SaaS District - YouTubewww.youtube.com › UCYvpqdVVSlSMunWiEwlMjzw) More about Akeel: Twitter - https://twitter.com/AkeelJabber (https://twitter.com/AkeelJabber) LinkedIn - https://linkedin.com/in/akeel-jabbar (https://linkedin.com/in/akeel-jabbar) More Podcast Sessions - https://horizencapital.com/saas-podcast (https://horizencapital.com/saas-podcast)
Sponsored by us! Support our work through: Our courses at Talk Python Training Python Testing with pytest Brian #1: How to be helpful online Ned Batchelder When answering questions. Lots of great advice. We’ll focus on just a few here. Answer the question first. There may be other problems with their code that they are not asking about that you want to point out. But keep that for after you’ve helped them and built up trust. No third rails. “It should be OK for someone to ask for help with a program using sockets, and not have to defend using sockets, especially if the specific question has nothing to do with sockets.” Same for pickle, threads, globals, singletons, etc. Don’t let your strong opinions derail the conversation. The goal is to help people. Strong reactions can make the asker feel attacked. No dog-piling. Meet their level. “Try to determine what they know, and give them a reasonable next step, not the ultimate solution. A suboptimal solution they understand is better than a gold standard they can’t make use of.” Say yes. Avoid absolutes. Step back. Take some blame. Use more words. “IRC and other online mediums encourage quick short responses, which are exactly the kinds of responses that will be easy to misinterpret. Try to use more words, especially encouraging optimistic words.” Understand your motivations. Humility. Make connections. Finally: It’s hard. All of Ned’s advice is great. Good meditations for when you read a question and your mouth drops open and your eyes stare in shock. Michael #2: blackcellmagic IPython magic command to format python code in cell using black. Has a great animated gif ;) Just do: %load_ext blackcellmagic Then in any cell %%black and magic! Accepts “arguments” like %%black -l 79 Tobin Jones has been kind enough to develop a NPM package over blackcellmagic to format all cells at once which can be found here. But it’s archived so no idea whether it’s current. Brian #3: Test smarter, not harder Luke Plant There’s lots of great advice in here, but I want to highlight two parts that are often overlooked. “Write your test code with the functions/methods/classes you wish existed, not the ones you’ve been given.” “If the API you want to use doesn’t exist yet, you still use it, and then make it exist.” This is huge. People tend to think like this while coding, but forget to do it while testing. Also. Your tests are often the first client for your API, so if the API in question is under your control and you need an easier API for testing, consider adding it to the real API. If it’s easier for testing, it may be easier for other clients of the API as well. “Only write necessary tests — specifically, tests whose estimated value is greater than their estimated cost. This is a hard judgement call, of course, but it does mean that at least some of the time you should be saying “it’s not worth it”.” Michael #4: US: The Greatest Package in the World by Jeremy Carbaugh A package for easily working with US and state metadata: all US states and territories postal abbreviations Associated Press style abbreviations FIPS codes capitals years of statehood time zones phonetic state name lookup is contiguous or continental URLs to shapefiles for state, census, congressional districts, counties, and census tracts The state lookup method allows matching by FIPS code, abbreviation, and name Even a CLI: $ states md Brian #5: Think Like A Coder Part of TED-Ed “… a 10-episode series that will challenge viewers with programming puzzles as the main characters— a girl and her robot companion— attempt to save a world that has been plunged into turmoil.” Although, I only count 9 episodes, I was 4 episodes in and hooked. Main cool thing, I think, is introducing terms and topics so they will be familiar when someone really does start coding: loops, for loops, until loops, while loops conditionals variables path logic permutations searches tables recursion Big O Also highly recommended for getting excited about coding: Girls Who Code: Learn to Code and Change the World TED-Ed has tons of other cool series on lots of subjects. CodeCombat Michael #6: Costs of running a Python web app for 55k monthly users How much does running a web app in production actually cost? KeepTheScore is an online software for scorekeeping. Create your own scoreboard for up to 150 players and start tracking points. It's mostly free and requires no user account. Keepthescore.co is a Python flask application running on DigitalOcean and Firebase. It currently has around 55k unique visitors per month, per day it’s around 3.4k. Servers and database on DigitalOcean: Costs per month: $95, the servers are oversized for the load they’re currently seeing. Amazon Web Services: Costs per month: $60, use a reporting tool called Metabase to generate insights and reports from the database Google Cloud, costs per month: $1.32, for Firebase DNS hosting, costs per month: $5 Disqus, costs per month: $10 Is it worth it? Is there revenue? In total that’s around $171 USD per month. If you’re running a company with employees that would be peanuts, but in this case the cost is being borne by a single indie-developer out of his own pocket. The bigger issue is that on the revenue side there’s a big fat zero. This is the reason why we are currently working on monetization. Some Talk Python stats: Maybe 40k monthly visitors, but oh, the podcast clients 3M requests / month just RSS, resulting in 320 GB / mo of XML traffic. We run on two prod servers: $10 & $5 as well as a dedicated MongoDB server @ $10. Total $25/mo. On the other hand, Talk Python Training's AWS bill last month was over $1,000 USD. You can hear a bunch about this on Talk Python 215. Joke: From twitter, originally from Netlify: "Oh no! We lost the hackers! Where did they go?" "I don't know! They just ransomware!” Number of days since I have encountered an array index error: -1.
Mayur has a passion for data analytics and digital growth on professional and social platforms. He hasn't decided on which one yet as his dream, but he's enjoying each day doing both.As business intelligence (BI) platforms are could be costly and complex, he recommends using built-in analytics whenever possible. If you do need to get one, he recommends Microsoft Power BI. I also recommend Metabase as it's easy to use and free.After helping out friends on growing their LinkedIn network, he was hooked and started helping others on a part-time basis. He recommends posting text content daily with the following format: first 2 lines should hook the reader, followed by details in the body, and finally a call to action (CTA) at the end, such as visiting a website or make a comment.Watch the YouTube video at https://youtu.be/wZ-3wHqAeq8Connect with him on LinkedIn at https://www.linkedin.com/in/mayurjadhavpage/Boost your productivity with 35+ skills and techniques using our app at http://pathtogenius.app
Join us on the next episode of Tom's Tips Podcast! In this episode we learn about Zach's other podcast projects, Tom's continued love for data, reports, and Metabase in MagHub, and a heated discussion between Tom and Zach about the new The Batman trailer with Robert Pattinson; plus, learn a freaky new cat fact that only makes everyone wonder... what does Tom's search history really look like?
Business intelligence tooling allows analysts to see large quantities of data presented to them in a flexible interface including charts, graphs, and other visualizations. BI tools have been around for decades, and as the world moves towards increased open source software, the business intelligence tools are following that trend. Metabase is an open source business The post Metabase: Business Intelligence Open Source with Sameer Al-Sakran appeared first on Software Engineering Daily.
Business intelligence tooling allows analysts to see large quantities of data presented to them in a flexible interface including charts, graphs, and other visualizations. BI tools have been around for decades, and as the world moves towards increased open source software, the business intelligence tools are following that trend. Metabase is an open source business The post Metabase: Business Intelligence Open Source with Sameer Al-Sakran appeared first on Software Engineering Daily.
Business intelligence tooling allows analysts to see large quantities of data presented to them in a flexible interface including charts, graphs, and other visualizations. BI tools have been around for decades, and as the world moves towards increased open source software, the business intelligence tools are following that trend. Metabase is an open source business The post Metabase: Business Intelligence Open Source with Sameer Al-Sakran appeared first on Software Engineering Daily.
Business intelligence tooling allows analysts to see large quantities of data presented to them in a flexible interface including charts, graphs, and other visualizations. BI tools have been around for decades, and as the world moves towards increased open source software, the business intelligence tools are following that trend.Metabase is an open source business intelligence system that has been widely adopted by enterprises. It includes all the common tools that are expected from a business intelligence system: large-scale data ingestion, visualization software, and a flexible user interface.Sameer Al-Sakran is the CEO of Metabase and he joins the show to talk about Metabase's design, engineering, and usage.
Simon Belak je "mad scientist" pri ameriškem podjetju Metabase, ki razvija istoimensko orodje za pregledovanje, analizo in vizualizacijo podatkov. Je digitalni nomad in nekdanji CTO pri podjetju GoOpti. Nepogrešljivo prispeva k spletnim skupnostim, kot sta Growth Hacking Slovenia in Slovenski developerji, v prostem času pa se ukvarja z gorskim kolesarstvom. V podkastu boste izvedeli: Kaj dela mad scientist na Metabaseu Kaj žene Simona, da prispeva k odprtokodnim rešitvam O urejenosti podatkov pri data-driven podjetjih O ciljih podatkovne strategije podjetij Katere metrike bi moralo spremljati prav vsako podjetje (pa jih ne)? Kako začeti kariero v podatkovni znanosti? O remotu delu, ki ga je Metabase gojil že pred pandemijo koronavirusa O avtomatizaciji dela za večjo produktivnost Zakaj ima na kolesarjenju ob sebi vedno beležko Povezave: Simon Belak na LinkedInu Simon Belak na Twitterju Simonove prezentacije na SlideShare Metabase Simonova bralna priporočila: Borges: Labyrinths in Aleph The Origin of Consciousness in the Breakdown of the Bicameral Mind Gödel, Escher, Bach: An Eternal Golden Braid
En este episodio te hacemos una pequeña introducción a cuales son las Virtudes de un buen Programador
stdout.fm 41번째 로그에서는 Slack 장애, GitHub 스타 어뷰징, Bose NCH 700 등에 대해서 이야기를 나눴습니다. 참가자: @seapy, @nacyo_t, @raccoonyy 개발자 팟캐스트 stdout.fm stdout.fm are creating 클라우드, 소프트웨어 개발, 전자 제품에 대해 이야기하는 프로그래머들의 팟캐스트 | Patreon When a rewrite isn’t: rebuilding Slack on the desktop 소프트웨어 환멸감 Slack vs. Productivity: Here’s what happened when Slack went down 오픈소스를 금지당한 사람들의 몸부림 - ChangJoo Park - Medium GNU Ethical Repository Criteria - GNU Project - Free Software Foundation github-do-not-ban-us/README-KO.md at master · 1995parham/github-do-not-ban-us Qiita metatron-app/metatron-discovery: Powerful & Easy way for big data discovery Stop abuse GitHub Star · Issue #2405 · metatron-app/metatron-discovery Drinks-for-stars promo on open-source GitHub project scrapped after disgusted devs shame it into oblivion • The Register kelseyhightower/nocode: The best way to write secure and reliable applications. Write nothing; deploy nowhere. sparklemotion/nokogiri: Nokogiri (鋸) is a Rubygem providing HTML, XML, SAX, and Reader parsers with XPath and CSS selector support. 공지사항(내용보기) < 정보광장 < 고객지원 < 기업 T world metatron-discovery security review speed run – 임준오의 블로그 Metabase Smart Noise Cancelling Headphones 700 | Bose QuietControl 30 (QC30) Wireless Noise Cancelling Earbuds | Bose QuietComfort 35 II Wireless Smart Headphones | Bose 무선 노이즈 캔슬링 헤드폰| WH-1000XM3 | Sony KR Amazon.com: Anova Culinary Sous Vide Precision Cooker | WI-FI + Bluetooth | 900W | Anova App Included: Gateway 어웨어 세컨드 에디션 - Awair Still prefer the QC35 II’s 대한항공 비즈니스 클래스 노이즈 캔슬링 해드폰 지급 : 네이버 블로그 Bose noise-masking sleepbuds™ Keychron K2 - A Sleek, Compact Wireless Mechanical Keyboard by Keychron — Kickstarter Keychron | Wireless Mechanical Keyboards for Mac, Windows and Android
Panel: Lucas Reis Charles Max Wood Justin Bennett Special Guest: Soumyajit Pathak In this episode, the panelists talk with Soumyajit Pathak (India) who is a full-stack developer and cybersecurity enthusiast. The panel and the guest talk about design patterns and designing simpler code for clarity and less confusion. Check out today’s episode! Show Topics: 0:00 – Kendo UI 0:31 – Chuck: Our panelists are and our guest is Soumyajit! Introduce yourself please! Are you doing React on the side? 1:02 – Guest: I am a master’s student and I am doing freelancing. 1:42 – Panel. 1:49 – Guest. 2:10 – Chuck: I am feeling very up-to-date. Woo! Universities are teaching this and that and they are focused on theory. The flipside is that they are going to write real code for real systems. 3:10 – Panel: I like your well-written blog posts. You talk about design patterns. 3:50 – Guest: The design patterns at the university had to do with real JavaScript applications. 4:09 – Chuck: I am curious you are talking about the design patterns – how can people from React find/use it? 4:45 – Panel: It depends on your definition of design patterns. 5:35 – Lucas: Maybe you are using one or two here and reading through the design patterns is like going through your toolbox. You only need a screwdriver but you bought the whole toolbox. Get familiar with it and from time to time solve problems and thing: what tool can help me here? It’s clear to me with this toolbox analogy. I understand now – that tool I saw 2 months ago could help me. 7:00 – Guest: I have an interesting story with this about design patterns. Let me share! 7:36 – Justin: It was a similar thing but I wasn’t in JavaScript at the time. I’ve used a lot of C++ code. Design patterns became very useful. I saw it the same way Lucas! 9:23 – Justin continues: How and why to use a certain tool. That’s important. 10:28 – Chuck: Okay this is the default pattern and that’s where we can go for the fallback. Here is the fallback if this doesn’t work here or there. 10:49 – Lucas: This is important to remember. It’s not how to use the tool but it’s why am I using this tool here or there? 11:57 – Justin: It’s so much information in general. People get information overload and they have to just start! One of the challenges we do is that we over-engineer things. Do what you need to know. Look it up but play with it. 12:40 – Lucas: It’s interesting by another blog post that you wrote Soumyajit – and you are using a render prop. You showed a problem and showed the solution. 13:30 – Guest: Yeah I’ve written a lot of blog posts about this topic. 13:48 – Panel: Often times – it’s hard for people just to dive-in. People need to see you solving a problem and it really helps with the learning process. 15:03 – Chuck: What patterns do you find most useful? 15:11 – Panel: Functional components have changed my world! 16:23 – Guest: Around these functional components... 17:17 – Panel: I will go with the patterns that are not useful. Don’t make your code pattern-oriented. This is my favorite pattern now and going back to basics. 18:53 – Panelists go back-and-forth. 19:01 – Lucas. 19:41 – Chuck: You talk about over-engineering things and that’s what I found myself doing sometimes with my new project. When I figure out how to make it simpler I get excited and it’s easy to follow. 20:15 – Panel: We celebrate the person who deleted the most lines of code. 20:28 – Panel: I am going to steal that idea. 21:04 – Guest: I have an interesting story of over-engineering something – let me share! 21:53 – FreshBooks! 22:59 – Panel: Building too much is b/c I don’t have a clear understanding of what I am doing. I get excited about problems. What’s the more simple way / most naïve way possible! 24:36 – Lucas: If you are going to change something you will be changing it in several different places. 25:50 – Chuck: When I heard the concept, all the codes that change together should be together. 26:08 – Lucas comments. 26:53 – Panel: Keeping things contained in one place. We have our presentational component and higher-level component, so you can see it all. 28:28 – Lucas: Different people working on different technologies. 29:15 – Panel: Can I break this down to smaller parts, which makes sense to me? 29:48 – Guest: Looking for keywords will cause a distraction. Finding a balance is good. 30:04 – Chuck: If you have a large rile there could be a smaller component that is there own concern. That feels like the real answer to me. It has a lot less than the length of the file versus... Chuck: If I cannot follow it then I need to keep the concept simple. 30:51 – Lucas: The quantity of lines and the line count – I think it’s better how many indentations you have. 32:43 – Guest. 32:48 – Lucas: Yes, so in the horizontal scrolling you have to keep things in your mind. 33:41 – Panel: There are so many different metrics that you can use and the different line count or different characters. There are more scientific terms that we could plugin here. If you have a lot of these abstract relations that can...write it 34:23 – Chuck: So true. 34:52 – Chuck: I want to move onto a different problem so it’s an attention thing for me too. 35:06 – Panel: We have to get okay with not always writing the best code in that it just needs to do what it needs to do. 35:30 – Chuck. 35:57 – Panel: We write it once – then it falls apart and then we write it again and learn from the process. Learning is the key here – you see where it works and where it doesn’t work well. 36:31 – Panel. 36:47 – Chuck mentions service-side rendering. Chuck: Should we schedule another episode? 37:11 – Panel: I think it’s own episode b/c it’s a complex problem overall. 39:33 – Lucas: Try to find memory leaks in the file components and server-side rendering. Where we have lost a lot of sleep and a higher level of complication. Sometimes it’s necessary. 41:42 – Chuck: Yeah let’s do another episode on this topic. Sounds like there is a lot to dive into this topic. Soumyajit, how do people find you? 42:10 – Guest: Twitter and GitHub! 42:28 – Picks! 42:30 – Advertisement – Get A Coder Job! End – Cache Fly Links: Ruby on Rails Angular JavaScript Elm Phoenix GitHub Get A Coder Job React Patterns on GitHub Calibre Book: Engineering a Safer World Designers’ Secret Source Monster Hunter Guest’s GitHub Guest’s Twitter Sponsors: Get a Coder Job Cache Fly Fresh Books Kendo UI Picks: Justin https://reactpatterns.com/ Calibre App Lucas Engineering a Safer World Soumyajit Blog Muzli - Chrome Extension Charles Monster Hunters International Series Metabase Stripe Work for DevChat TV
Panel: Lucas Reis Charles Max Wood Justin Bennett Special Guest: Soumyajit Pathak In this episode, the panelists talk with Soumyajit Pathak (India) who is a full-stack developer and cybersecurity enthusiast. The panel and the guest talk about design patterns and designing simpler code for clarity and less confusion. Check out today’s episode! Show Topics: 0:00 – Kendo UI 0:31 – Chuck: Our panelists are and our guest is Soumyajit! Introduce yourself please! Are you doing React on the side? 1:02 – Guest: I am a master’s student and I am doing freelancing. 1:42 – Panel. 1:49 – Guest. 2:10 – Chuck: I am feeling very up-to-date. Woo! Universities are teaching this and that and they are focused on theory. The flipside is that they are going to write real code for real systems. 3:10 – Panel: I like your well-written blog posts. You talk about design patterns. 3:50 – Guest: The design patterns at the university had to do with real JavaScript applications. 4:09 – Chuck: I am curious you are talking about the design patterns – how can people from React find/use it? 4:45 – Panel: It depends on your definition of design patterns. 5:35 – Lucas: Maybe you are using one or two here and reading through the design patterns is like going through your toolbox. You only need a screwdriver but you bought the whole toolbox. Get familiar with it and from time to time solve problems and thing: what tool can help me here? It’s clear to me with this toolbox analogy. I understand now – that tool I saw 2 months ago could help me. 7:00 – Guest: I have an interesting story with this about design patterns. Let me share! 7:36 – Justin: It was a similar thing but I wasn’t in JavaScript at the time. I’ve used a lot of C++ code. Design patterns became very useful. I saw it the same way Lucas! 9:23 – Justin continues: How and why to use a certain tool. That’s important. 10:28 – Chuck: Okay this is the default pattern and that’s where we can go for the fallback. Here is the fallback if this doesn’t work here or there. 10:49 – Lucas: This is important to remember. It’s not how to use the tool but it’s why am I using this tool here or there? 11:57 – Justin: It’s so much information in general. People get information overload and they have to just start! One of the challenges we do is that we over-engineer things. Do what you need to know. Look it up but play with it. 12:40 – Lucas: It’s interesting by another blog post that you wrote Soumyajit – and you are using a render prop. You showed a problem and showed the solution. 13:30 – Guest: Yeah I’ve written a lot of blog posts about this topic. 13:48 – Panel: Often times – it’s hard for people just to dive-in. People need to see you solving a problem and it really helps with the learning process. 15:03 – Chuck: What patterns do you find most useful? 15:11 – Panel: Functional components have changed my world! 16:23 – Guest: Around these functional components... 17:17 – Panel: I will go with the patterns that are not useful. Don’t make your code pattern-oriented. This is my favorite pattern now and going back to basics. 18:53 – Panelists go back-and-forth. 19:01 – Lucas. 19:41 – Chuck: You talk about over-engineering things and that’s what I found myself doing sometimes with my new project. When I figure out how to make it simpler I get excited and it’s easy to follow. 20:15 – Panel: We celebrate the person who deleted the most lines of code. 20:28 – Panel: I am going to steal that idea. 21:04 – Guest: I have an interesting story of over-engineering something – let me share! 21:53 – FreshBooks! 22:59 – Panel: Building too much is b/c I don’t have a clear understanding of what I am doing. I get excited about problems. What’s the more simple way / most naïve way possible! 24:36 – Lucas: If you are going to change something you will be changing it in several different places. 25:50 – Chuck: When I heard the concept, all the codes that change together should be together. 26:08 – Lucas comments. 26:53 – Panel: Keeping things contained in one place. We have our presentational component and higher-level component, so you can see it all. 28:28 – Lucas: Different people working on different technologies. 29:15 – Panel: Can I break this down to smaller parts, which makes sense to me? 29:48 – Guest: Looking for keywords will cause a distraction. Finding a balance is good. 30:04 – Chuck: If you have a large rile there could be a smaller component that is there own concern. That feels like the real answer to me. It has a lot less than the length of the file versus... Chuck: If I cannot follow it then I need to keep the concept simple. 30:51 – Lucas: The quantity of lines and the line count – I think it’s better how many indentations you have. 32:43 – Guest. 32:48 – Lucas: Yes, so in the horizontal scrolling you have to keep things in your mind. 33:41 – Panel: There are so many different metrics that you can use and the different line count or different characters. There are more scientific terms that we could plugin here. If you have a lot of these abstract relations that can...write it 34:23 – Chuck: So true. 34:52 – Chuck: I want to move onto a different problem so it’s an attention thing for me too. 35:06 – Panel: We have to get okay with not always writing the best code in that it just needs to do what it needs to do. 35:30 – Chuck. 35:57 – Panel: We write it once – then it falls apart and then we write it again and learn from the process. Learning is the key here – you see where it works and where it doesn’t work well. 36:31 – Panel. 36:47 – Chuck mentions service-side rendering. Chuck: Should we schedule another episode? 37:11 – Panel: I think it’s own episode b/c it’s a complex problem overall. 39:33 – Lucas: Try to find memory leaks in the file components and server-side rendering. Where we have lost a lot of sleep and a higher level of complication. Sometimes it’s necessary. 41:42 – Chuck: Yeah let’s do another episode on this topic. Sounds like there is a lot to dive into this topic. Soumyajit, how do people find you? 42:10 – Guest: Twitter and GitHub! 42:28 – Picks! 42:30 – Advertisement – Get A Coder Job! End – Cache Fly Links: Ruby on Rails Angular JavaScript Elm Phoenix GitHub Get A Coder Job React Patterns on GitHub Calibre Book: Engineering a Safer World Designers’ Secret Source Monster Hunter Guest’s GitHub Guest’s Twitter Sponsors: Get a Coder Job Cache Fly Fresh Books Kendo UI Picks: Justin https://reactpatterns.com/ Calibre App Lucas Engineering a Safer World Soumyajit Blog Muzli - Chrome Extension Charles Monster Hunters International Series Metabase Stripe Work for DevChat TV
Panel: Aimee Knight AJ O’Neal Charles Max Wood Special Guest: Gil Tayar In this episode, the panel talks with Gil Tayar who is currently residing in Tel Aviv and is a software engineer. He is currently the Senior Architect at Applitools in Israel. The panel and the guest talk about the different types of tests and when/how one is to use a certain test in a particular situation. They also mention Node, React, Selenium, Puppeteer, and much more! Show Topics: 0:00 – Advertisement: KENDO UI 0:35 – Chuck: Our panel is AJ, Aimee, myself – and our special guest is Gil Tayar. Tell us why you are famous! 1:13 – Gil talks about where he resides and his background. 2:27 – Chuck: What is the landscape like now with testing and testing tools now? 2:39 – Guest: There is a huge renaissance with the JavaScript community. Testing has moved forward in the frontend and backend. Today we have lots of testing tools. We can do frontend testing that wasn’t possible 5 years ago. The major change was React. The guest talks about Node, React, tools, and more! 4:17 – Aimee: I advocate for tests and testing. There is a grey area though...how do you treat that? If you have to get something into production, but it’s not THE thing to get into production, does that fall into product or...what? 5:02 – Guest: We decided to test everything in the beginning. We actually cam through and did that and since then I don’t think I can use the right code without testing. There are a lot of different situations, though, to consider. The guest gives hypothetical situations that people could face. 6:27 – Aimee. 6:32 – Guest: The horror to changing code without tests, I don’t know, I haven’t done that for a while. You write with fear in your heart. Your design is driven by fear, and not what you think is right. In the beginning don’t write those tests, but... 7:22 – Aimee: I totally agree and I could go on and on and on. 7:42 – Panel: I want to do tests when I know they will create value. I don’t want to do it b/c it’s a mundane thing. Secondly, I find that some times I am in a situation where I cannot write the test b/c I would have to know the business logic is correct. I am in this discovery mode of what is the business logic? I am not just building your app. I guess I just need advice in this area, I guess. 8:55 – Guest gives advice to panelist’s question. He mentions how there are two schools of thought. 10:20 – Guest: Don’t mock too much. 10:54 – Panel: Are unit tests the easiest? I just reach for unit testing b/c it helps me code faster. But 90% of my code is NOT that. 11:18 – Guest: Exactly! Most of our test is glue – gluing together a bunch of different stuff! Those are best tested as a medium-sized integration suite. 12:39 – Panel: That seems like a lot of work, though! I loathe the database stuff b/c they don’t map cleanly. I hate this database stuff. 13:06 – Guest: I agree, but don’t knock the database, but knock the level above the database. 13:49 – Guest: Yes, it takes time! Building the script and the testing tools, but when you have it then adding to it is zero time. Once you are in the air it’s smooth sailing. 14:17 – Panel: I guess I can see that. I like to do the dumb-way the first time. I am not clear on the transition. 14:47 – Guest: Write the code, and then write the tests. The guest gives a hypothetical situation on how/when to test in a certain situation. 16:25 – Panel: Can you talk about that more, please? 16:50 – Guest: Don’t have the same unit – do browser and business logic stuff separated. The real business logic stuff needs to be above that level. First principle is separation of concerns. 18:04 – Panel talks about dependency interjection and asks a question. 18:27 – Guest: What I am talking about very, very light inter-dependency interjection. 19:19 – Panel: You have a main function and you are doing requires in the main function. You are passing the pieces of that into the components that need it. 19:44 – Guest: I only do it when it’s necessary; it’s not a religion for me. I do it only for those layers that I know will need to be mocked; like database layers, etc. 20:09 – Panel. 20:19 – Guest: It’s taken me 80 years to figure out, but I have made plenty of mistakes a long the way. A test should run for 2-5 minutes max for package. 20:53 – Panel: What if you have a really messy legacy system? How do you recommend going into that? Do you write tests for things that you think needs to get tested? 21:39 – Guest answers the question and mentions Selenium! 24:27 – Panel: I like that approach. 24:35 – Chuck: When you say integration test what do you mean? 24:44 – Guest: Integration tests aren’t usually talked about. For most people it’s tests that test the database level against the database. For me, the integration tests are taking a set of classes as they are in the application and testing them together w/o the...so they can run in millisecond time. 26:54 – Advertisement – Sentry.io 27:52 – Chuck: How much do the tools matter? 28:01 – Guest: The revolutions matter. Whether you use Jasmine or Mocha or whatever I don’t think it matters. The tests matter not the tools. 28:39 – Aimee: Yes and no. I think some tools are outdated. 28:50 – Guest: I got a lot of flack about my blog where I talk about Cypress versus Selenium. I will never use Jasmine. In the end it’s the 29:29 – Aimee: I am curious would you be willing to expand on what the Selenium folks were saying about Puppeteer and others may not provide? 29:54 – Guest: Cypress was built for frontend developers. They don’t care about cross browser, and they tested in Chrome. Most browsers are typically the same. Selenium was built with the QA mindset – end to end tests that we need to do cross browser. The guest continues with this topic. 30:54 – Aimee mentions Cypress. 31:08 – Guest: My guessing is that their priority is not there. I kind of agree with them. 31:21 – Aimee: I think they are focusing on mobile more. 31:24 – Guest: I think cross browser testing is less of an issue now. There is one area that is important it’s the visual area! It’s important to test visually across these different browsers. 32:32 – Guest: Selenium is a Swiss knife – it can do everything. 33:32 – Chuck: I am thinking about different topics to talk about. I haven’t used Puppeteer. What’s that about? 33:49 – Guest: Puppeteer is much more like Selenium. The reason why it’s great is b/c Puppeteer will always be Google Chrome. 35:42 – Chuck: When should you be running your tests? I like to use some unit tests when I am doing my development but how do you break that down? 36:06 – Guest. 38:30 – Chuck: You run tests against production? 38:45 – Guest: Don’t run tests against production...let me clarify! 39:14 – Chuck. 39:21 – Guest: When I am talking about integration testing in the backend... 40:37 – Chuck asks a question. 40:47 – Guest: I am constantly running between frontend and backend. I didn’t know how to run tests for frontend. I had to invent a new thing and I “invented” the package JS DONG. It’s an implementation of Dong in Node. I found out that I wasn’t the only one and that there were others out there, too. 43:14 – Chuck: Nice! You talked in the prep docs that you urged a new frontend developer to not run the app in the browser for 2 months? 43:25 – Guest: Yeah, I found out that she was running the application...she said she knew how to write tests. I wanted her to see it my way and it probably was a radical train-of-thought, and that was this... 44:40 – Guest: Frontend is so visual. 45:12 – Chuck: What are you working on now? 45:16 – Guest: I am working with Applitools and I was impressed with what they were doing. The guest goes into further detail. 46:08 – Guest: Those screenshots are never the same. 48:36 – Panel: It’s...comparing the output to the static site to the... 48:50 – Guest: Yes, that static site – if you have 30 pages in your app – most of those are the same. We have this trick where we don’t upload it again and again. Uploading the whole static site is usually very quick. The second thing is we don’t wait for the results. We don’t wait for the whole rendering and we continue with the tests. 50:28 – Guest: I am working mostly (right now) in backend. 50:40 – Chuck: Anything else? Picks! 50:57 – Advertisement: Get A Coder Job! END – Advertisement: CacheFly! Links: JavaScript React Elixir Node.js Puppeteer Cypress SeleniumHQ Article – Ideas.Ted.Com Book: Never Split the Difference Applitools Guest’s Blog Article about Cypress vs. Selenium Gil’s Twitter Gil’s Medium Gil’s LinkedIn Sponsors: Kendo UI Sentry CacheFly Picks: Aimee How Showing Vulnerability Helps Build a Stronger Team AJ Never Split the Difference Project - TeleBit Charles Monster Hunter International Metabase Gil Cat Zero The Origin of Consciousness in the Breakdown of the Bicameral Mind
Panel: Aimee Knight AJ O’Neal Charles Max Wood Special Guest: Gil Tayar In this episode, the panel talks with Gil Tayar who is currently residing in Tel Aviv and is a software engineer. He is currently the Senior Architect at Applitools in Israel. The panel and the guest talk about the different types of tests and when/how one is to use a certain test in a particular situation. They also mention Node, React, Selenium, Puppeteer, and much more! Show Topics: 0:00 – Advertisement: KENDO UI 0:35 – Chuck: Our panel is AJ, Aimee, myself – and our special guest is Gil Tayar. Tell us why you are famous! 1:13 – Gil talks about where he resides and his background. 2:27 – Chuck: What is the landscape like now with testing and testing tools now? 2:39 – Guest: There is a huge renaissance with the JavaScript community. Testing has moved forward in the frontend and backend. Today we have lots of testing tools. We can do frontend testing that wasn’t possible 5 years ago. The major change was React. The guest talks about Node, React, tools, and more! 4:17 – Aimee: I advocate for tests and testing. There is a grey area though...how do you treat that? If you have to get something into production, but it’s not THE thing to get into production, does that fall into product or...what? 5:02 – Guest: We decided to test everything in the beginning. We actually cam through and did that and since then I don’t think I can use the right code without testing. There are a lot of different situations, though, to consider. The guest gives hypothetical situations that people could face. 6:27 – Aimee. 6:32 – Guest: The horror to changing code without tests, I don’t know, I haven’t done that for a while. You write with fear in your heart. Your design is driven by fear, and not what you think is right. In the beginning don’t write those tests, but... 7:22 – Aimee: I totally agree and I could go on and on and on. 7:42 – Panel: I want to do tests when I know they will create value. I don’t want to do it b/c it’s a mundane thing. Secondly, I find that some times I am in a situation where I cannot write the test b/c I would have to know the business logic is correct. I am in this discovery mode of what is the business logic? I am not just building your app. I guess I just need advice in this area, I guess. 8:55 – Guest gives advice to panelist’s question. He mentions how there are two schools of thought. 10:20 – Guest: Don’t mock too much. 10:54 – Panel: Are unit tests the easiest? I just reach for unit testing b/c it helps me code faster. But 90% of my code is NOT that. 11:18 – Guest: Exactly! Most of our test is glue – gluing together a bunch of different stuff! Those are best tested as a medium-sized integration suite. 12:39 – Panel: That seems like a lot of work, though! I loathe the database stuff b/c they don’t map cleanly. I hate this database stuff. 13:06 – Guest: I agree, but don’t knock the database, but knock the level above the database. 13:49 – Guest: Yes, it takes time! Building the script and the testing tools, but when you have it then adding to it is zero time. Once you are in the air it’s smooth sailing. 14:17 – Panel: I guess I can see that. I like to do the dumb-way the first time. I am not clear on the transition. 14:47 – Guest: Write the code, and then write the tests. The guest gives a hypothetical situation on how/when to test in a certain situation. 16:25 – Panel: Can you talk about that more, please? 16:50 – Guest: Don’t have the same unit – do browser and business logic stuff separated. The real business logic stuff needs to be above that level. First principle is separation of concerns. 18:04 – Panel talks about dependency interjection and asks a question. 18:27 – Guest: What I am talking about very, very light inter-dependency interjection. 19:19 – Panel: You have a main function and you are doing requires in the main function. You are passing the pieces of that into the components that need it. 19:44 – Guest: I only do it when it’s necessary; it’s not a religion for me. I do it only for those layers that I know will need to be mocked; like database layers, etc. 20:09 – Panel. 20:19 – Guest: It’s taken me 80 years to figure out, but I have made plenty of mistakes a long the way. A test should run for 2-5 minutes max for package. 20:53 – Panel: What if you have a really messy legacy system? How do you recommend going into that? Do you write tests for things that you think needs to get tested? 21:39 – Guest answers the question and mentions Selenium! 24:27 – Panel: I like that approach. 24:35 – Chuck: When you say integration test what do you mean? 24:44 – Guest: Integration tests aren’t usually talked about. For most people it’s tests that test the database level against the database. For me, the integration tests are taking a set of classes as they are in the application and testing them together w/o the...so they can run in millisecond time. 26:54 – Advertisement – Sentry.io 27:52 – Chuck: How much do the tools matter? 28:01 – Guest: The revolutions matter. Whether you use Jasmine or Mocha or whatever I don’t think it matters. The tests matter not the tools. 28:39 – Aimee: Yes and no. I think some tools are outdated. 28:50 – Guest: I got a lot of flack about my blog where I talk about Cypress versus Selenium. I will never use Jasmine. In the end it’s the 29:29 – Aimee: I am curious would you be willing to expand on what the Selenium folks were saying about Puppeteer and others may not provide? 29:54 – Guest: Cypress was built for frontend developers. They don’t care about cross browser, and they tested in Chrome. Most browsers are typically the same. Selenium was built with the QA mindset – end to end tests that we need to do cross browser. The guest continues with this topic. 30:54 – Aimee mentions Cypress. 31:08 – Guest: My guessing is that their priority is not there. I kind of agree with them. 31:21 – Aimee: I think they are focusing on mobile more. 31:24 – Guest: I think cross browser testing is less of an issue now. There is one area that is important it’s the visual area! It’s important to test visually across these different browsers. 32:32 – Guest: Selenium is a Swiss knife – it can do everything. 33:32 – Chuck: I am thinking about different topics to talk about. I haven’t used Puppeteer. What’s that about? 33:49 – Guest: Puppeteer is much more like Selenium. The reason why it’s great is b/c Puppeteer will always be Google Chrome. 35:42 – Chuck: When should you be running your tests? I like to use some unit tests when I am doing my development but how do you break that down? 36:06 – Guest. 38:30 – Chuck: You run tests against production? 38:45 – Guest: Don’t run tests against production...let me clarify! 39:14 – Chuck. 39:21 – Guest: When I am talking about integration testing in the backend... 40:37 – Chuck asks a question. 40:47 – Guest: I am constantly running between frontend and backend. I didn’t know how to run tests for frontend. I had to invent a new thing and I “invented” the package JS DONG. It’s an implementation of Dong in Node. I found out that I wasn’t the only one and that there were others out there, too. 43:14 – Chuck: Nice! You talked in the prep docs that you urged a new frontend developer to not run the app in the browser for 2 months? 43:25 – Guest: Yeah, I found out that she was running the application...she said she knew how to write tests. I wanted her to see it my way and it probably was a radical train-of-thought, and that was this... 44:40 – Guest: Frontend is so visual. 45:12 – Chuck: What are you working on now? 45:16 – Guest: I am working with Applitools and I was impressed with what they were doing. The guest goes into further detail. 46:08 – Guest: Those screenshots are never the same. 48:36 – Panel: It’s...comparing the output to the static site to the... 48:50 – Guest: Yes, that static site – if you have 30 pages in your app – most of those are the same. We have this trick where we don’t upload it again and again. Uploading the whole static site is usually very quick. The second thing is we don’t wait for the results. We don’t wait for the whole rendering and we continue with the tests. 50:28 – Guest: I am working mostly (right now) in backend. 50:40 – Chuck: Anything else? Picks! 50:57 – Advertisement: Get A Coder Job! END – Advertisement: CacheFly! Links: JavaScript React Elixir Node.js Puppeteer Cypress SeleniumHQ Article – Ideas.Ted.Com Book: Never Split the Difference Applitools Guest’s Blog Article about Cypress vs. Selenium Gil’s Twitter Gil’s Medium Gil’s LinkedIn Sponsors: Kendo UI Sentry CacheFly Picks: Aimee How Showing Vulnerability Helps Build a Stronger Team AJ Never Split the Difference Project - TeleBit Charles Monster Hunter International Metabase Gil Cat Zero The Origin of Consciousness in the Breakdown of the Bicameral Mind
Panel: Aimee Knight AJ O’Neal Charles Max Wood Special Guest: Gil Tayar In this episode, the panel talks with Gil Tayar who is currently residing in Tel Aviv and is a software engineer. He is currently the Senior Architect at Applitools in Israel. The panel and the guest talk about the different types of tests and when/how one is to use a certain test in a particular situation. They also mention Node, React, Selenium, Puppeteer, and much more! Show Topics: 0:00 – Advertisement: KENDO UI 0:35 – Chuck: Our panel is AJ, Aimee, myself – and our special guest is Gil Tayar. Tell us why you are famous! 1:13 – Gil talks about where he resides and his background. 2:27 – Chuck: What is the landscape like now with testing and testing tools now? 2:39 – Guest: There is a huge renaissance with the JavaScript community. Testing has moved forward in the frontend and backend. Today we have lots of testing tools. We can do frontend testing that wasn’t possible 5 years ago. The major change was React. The guest talks about Node, React, tools, and more! 4:17 – Aimee: I advocate for tests and testing. There is a grey area though...how do you treat that? If you have to get something into production, but it’s not THE thing to get into production, does that fall into product or...what? 5:02 – Guest: We decided to test everything in the beginning. We actually cam through and did that and since then I don’t think I can use the right code without testing. There are a lot of different situations, though, to consider. The guest gives hypothetical situations that people could face. 6:27 – Aimee. 6:32 – Guest: The horror to changing code without tests, I don’t know, I haven’t done that for a while. You write with fear in your heart. Your design is driven by fear, and not what you think is right. In the beginning don’t write those tests, but... 7:22 – Aimee: I totally agree and I could go on and on and on. 7:42 – Panel: I want to do tests when I know they will create value. I don’t want to do it b/c it’s a mundane thing. Secondly, I find that some times I am in a situation where I cannot write the test b/c I would have to know the business logic is correct. I am in this discovery mode of what is the business logic? I am not just building your app. I guess I just need advice in this area, I guess. 8:55 – Guest gives advice to panelist’s question. He mentions how there are two schools of thought. 10:20 – Guest: Don’t mock too much. 10:54 – Panel: Are unit tests the easiest? I just reach for unit testing b/c it helps me code faster. But 90% of my code is NOT that. 11:18 – Guest: Exactly! Most of our test is glue – gluing together a bunch of different stuff! Those are best tested as a medium-sized integration suite. 12:39 – Panel: That seems like a lot of work, though! I loathe the database stuff b/c they don’t map cleanly. I hate this database stuff. 13:06 – Guest: I agree, but don’t knock the database, but knock the level above the database. 13:49 – Guest: Yes, it takes time! Building the script and the testing tools, but when you have it then adding to it is zero time. Once you are in the air it’s smooth sailing. 14:17 – Panel: I guess I can see that. I like to do the dumb-way the first time. I am not clear on the transition. 14:47 – Guest: Write the code, and then write the tests. The guest gives a hypothetical situation on how/when to test in a certain situation. 16:25 – Panel: Can you talk about that more, please? 16:50 – Guest: Don’t have the same unit – do browser and business logic stuff separated. The real business logic stuff needs to be above that level. First principle is separation of concerns. 18:04 – Panel talks about dependency interjection and asks a question. 18:27 – Guest: What I am talking about very, very light inter-dependency interjection. 19:19 – Panel: You have a main function and you are doing requires in the main function. You are passing the pieces of that into the components that need it. 19:44 – Guest: I only do it when it’s necessary; it’s not a religion for me. I do it only for those layers that I know will need to be mocked; like database layers, etc. 20:09 – Panel. 20:19 – Guest: It’s taken me 80 years to figure out, but I have made plenty of mistakes a long the way. A test should run for 2-5 minutes max for package. 20:53 – Panel: What if you have a really messy legacy system? How do you recommend going into that? Do you write tests for things that you think needs to get tested? 21:39 – Guest answers the question and mentions Selenium! 24:27 – Panel: I like that approach. 24:35 – Chuck: When you say integration test what do you mean? 24:44 – Guest: Integration tests aren’t usually talked about. For most people it’s tests that test the database level against the database. For me, the integration tests are taking a set of classes as they are in the application and testing them together w/o the...so they can run in millisecond time. 26:54 – Advertisement – Sentry.io 27:52 – Chuck: How much do the tools matter? 28:01 – Guest: The revolutions matter. Whether you use Jasmine or Mocha or whatever I don’t think it matters. The tests matter not the tools. 28:39 – Aimee: Yes and no. I think some tools are outdated. 28:50 – Guest: I got a lot of flack about my blog where I talk about Cypress versus Selenium. I will never use Jasmine. In the end it’s the 29:29 – Aimee: I am curious would you be willing to expand on what the Selenium folks were saying about Puppeteer and others may not provide? 29:54 – Guest: Cypress was built for frontend developers. They don’t care about cross browser, and they tested in Chrome. Most browsers are typically the same. Selenium was built with the QA mindset – end to end tests that we need to do cross browser. The guest continues with this topic. 30:54 – Aimee mentions Cypress. 31:08 – Guest: My guessing is that their priority is not there. I kind of agree with them. 31:21 – Aimee: I think they are focusing on mobile more. 31:24 – Guest: I think cross browser testing is less of an issue now. There is one area that is important it’s the visual area! It’s important to test visually across these different browsers. 32:32 – Guest: Selenium is a Swiss knife – it can do everything. 33:32 – Chuck: I am thinking about different topics to talk about. I haven’t used Puppeteer. What’s that about? 33:49 – Guest: Puppeteer is much more like Selenium. The reason why it’s great is b/c Puppeteer will always be Google Chrome. 35:42 – Chuck: When should you be running your tests? I like to use some unit tests when I am doing my development but how do you break that down? 36:06 – Guest. 38:30 – Chuck: You run tests against production? 38:45 – Guest: Don’t run tests against production...let me clarify! 39:14 – Chuck. 39:21 – Guest: When I am talking about integration testing in the backend... 40:37 – Chuck asks a question. 40:47 – Guest: I am constantly running between frontend and backend. I didn’t know how to run tests for frontend. I had to invent a new thing and I “invented” the package JS DONG. It’s an implementation of Dong in Node. I found out that I wasn’t the only one and that there were others out there, too. 43:14 – Chuck: Nice! You talked in the prep docs that you urged a new frontend developer to not run the app in the browser for 2 months? 43:25 – Guest: Yeah, I found out that she was running the application...she said she knew how to write tests. I wanted her to see it my way and it probably was a radical train-of-thought, and that was this... 44:40 – Guest: Frontend is so visual. 45:12 – Chuck: What are you working on now? 45:16 – Guest: I am working with Applitools and I was impressed with what they were doing. The guest goes into further detail. 46:08 – Guest: Those screenshots are never the same. 48:36 – Panel: It’s...comparing the output to the static site to the... 48:50 – Guest: Yes, that static site – if you have 30 pages in your app – most of those are the same. We have this trick where we don’t upload it again and again. Uploading the whole static site is usually very quick. The second thing is we don’t wait for the results. We don’t wait for the whole rendering and we continue with the tests. 50:28 – Guest: I am working mostly (right now) in backend. 50:40 – Chuck: Anything else? Picks! 50:57 – Advertisement: Get A Coder Job! END – Advertisement: CacheFly! Links: JavaScript React Elixir Node.js Puppeteer Cypress SeleniumHQ Article – Ideas.Ted.Com Book: Never Split the Difference Applitools Guest’s Blog Article about Cypress vs. Selenium Gil’s Twitter Gil’s Medium Gil’s LinkedIn Sponsors: Kendo UI Sentry CacheFly Picks: Aimee How Showing Vulnerability Helps Build a Stronger Team AJ Never Split the Difference Project - TeleBit Charles Monster Hunter International Metabase Gil Cat Zero The Origin of Consciousness in the Breakdown of the Bicameral Mind
Panel: Mark Ericksen Josh Adams Nate Hopkins Charles Max Wood Special Guest: Eric Oestrich In this episode of Elixir Mix, the panel talks with Eric Oestrich who is a web developer who resides in Indianapolis, Indiana. He and the panel talk about ExVenture, Gossip, Cowboy, Raisin, Grapevine, and much more! Listen to today’s episode to hear all about it! Finally, check out Eric’s ElixirConf talk and his blog, too! Show Topics: 0:00 – Advertisement: Get A Coder Job! 0:51 – Charles introduces the panel. 1:14 – Nate talks about his background. 1:27 – Chuck: My first programming job I worked with Nate. Nate also works now with Eric Berry. We have a special guest and that is Eric Oestrich. Tell us who you are, please! 1:55 – Eric: I work for Smart Logic, LLC. We are a consultancy who has moved to Elixir for the last 2 years. 2:14 – Chuck: Tell us what ExVenture is? 2:46 – Eric: Late 80’s to mid-90’s it’s like a MUD tech space game. Eric goes into detail of what ExVenture is. 3:28 – Panel: Familiar with MUDS. 3:36 – Panel: Audience can’t tell that Eric isn’t an old guy. Eric – you aren’t an old gentleman – how did you get into it?! 4:02 – Eric: The concept has fascinated me. It’s pure game mechanics. In school I wrote things in Python and try to make it threaded. Never got it going. After that I wanted to do a MUD but not good enough in C and couldn’t get it working in Ruby neither. But one faithful day (a year ago) I got an echo and chat server and now we have a MUD. 5:02 – Panel: Why should you be interested? I will tell you why. ExVenture is an open source... I encourage everyone to dig into and play with it! It is a game (so that makes it more fun) but you are dealing with game mechanics. I am also curious where you wanted this to go? What made you say: I want to create this and make it open source? 6:37 – Eric: I like it and work has mostly played for it. It’s MIT because of that. Early in the project (between client work) it was a common thread and that’s why it’s open source. 7:27 – Panel: I ran into you at the conference and you were showing me... Talk about getting metrics out of your system, please? 8:20 – Eric answers the question. 9:09 – Panel: When people are trying to get metrics out of their system – what EVEN makes a good metric? 9:21- Eric: I am trying to figure that out myself, actually. I want to know how long it takes for someone to login? Is that someone trying to hack into my system? If you speak at a global channel or something else... Eric goes into more detail. Eric also mentions Prometheus. 10:31 – Panel: You mentioned: What would you want to see on a dashboard? 11:01 – Eric answers the question and mentions Prometheus EX. 12:19 – Panel: As you starting building this you were pulling libraries out of it and making them separate libraries. Are you pretty proud of GOSSIP? 12:37 – Eric: Yes! Gossip is based on web sockets and it’s a cowboy socket. Eric talks about Gossip. 13:10 – Panel: What other clients are you trying to support? 13:15 – Eric: There is a JavaScript client and Node-based game called... There is a bundle system for that. There is also a Python option. The one thing we haven’t done yet is a C client. That is important b/c most of the games that you could connect to are 25-30 years old. 14:26 – Panel asks a question. 14:34 – Eric: That is the C client we are waiting for. 14:43 – Panel: You talked at the conference (see the show notes) you talked about things you learned along the way. Can you talk about your process? What kind of bottlenecks and how did you resolve those issues? 15:10 – Eric answers the question. 16:44 – Panel: Did you run out of processes? 16:47 – Eric: The VM shut-off – it was just done. That was the first go-around. 19:27 – Eric: After the ElixirConf, I wanted to see how far I could push it. Eric continues. 19:51 – Panel: I want to identify some of these principles you just talked about. First, the major block was the gen server is a single process. 20:21 – Panel. 20:24 – Panel: I think that is a common mistake when people come to Elixir in the beginning stages. How did you solve it? 20:50 – Panelist answers the above question. 21:30 – Panel: That’s one of the big things. It’s an architectural issue. Second, you mentioned really LARGE messages. You were sending around really large messages. 22:20 – Eric: For every 100 players was a gigabyte of ram – it was a lot. And that was mostly b/c every copy...when a new character enters the room then that message gets sent out then it gets copied again, and... 23:08 – Panel. 23:24 – Panel: The third one you mentioned was around data base blocking or...? Can you talk about this one a little more, please? 23:33 – Eric answers the question. 24:02 – Panel. 24:30 – Eric: It was always saving...I tricked Echo into saving...There is a lot of things that could be better to save specifically faster. 24:52 – Panel: I think people would hit those 3 points eventually – there is a lot of value to that. 25:09 –Eric: Yes that was near the end of my ElixirConf talk and my blog. 25:23 – Panel. 25:33 – Eric: It came out in May and I figured out that I needed to learn how to cluster in Elixir. That’s what the ElixirConf was a bout from single node to multiple nodes. Eric continues. 28:38 – Panel: When you have a cluster – and I join – when I transfer from one room to another room, I could be passed off to another server or node? 29:01 – Eric: Whatever you mean by “being passed off.” Whatever server you land on that’s the one you will be on. The magic is that... 30:08 – Advertisement: Fresh Books! 31:15 – Panel: I am going through the code base now and I am excited. It’s going to help me get better at Elixir. 31:32 – Eric: That’s the point of ExVenture. 31:48 – Panel: You host a server so people can see what it’s about – and that’s Mid Mud, right? 32:09 – Eric: Yep, the first hour of you playing. There is a town crier, you request, and then combat monsters. Also, it is plugged into Gossip and you can talk to them. 32:44 – Eric: Yep, there you go: player logged-in! 32:55 – Panel: Maybe not b/c it will turn into a new podcast soon. 33:07 – Panel: What if I want to use Gossip, what is involved there? 33:16 – Eric: Gossip.Haus/docs – Go there! Set it up and start sending and receiving events. 34:40 – Panel: When I was trying to understand the Prometheus metrics it helped. And then in downloading it (as a tip), for me, it was easy to use the DOCKER instructions. 35:32 – Eric: Yep, that was done by a community member. 35:40 – Panel: Are you looking for people to contribute? 35:50 – Eric: Yep, I have a public Trello board. There are 2 tags. 36:12 – Panel: Sounds like you have people involved? 36:22 – Eric: Bunch of people came on after the ElixirConf. 36:33 – Panel: If people download it (another tip) in the SEEDS file you will find out the admin username and password. I guess that’s something you can add. Login: ADMIN and Password: PASSWORD. What I thought was fun (playing with it) in the admin screen I got a sense that it’s generic enough that I could create a space game. Like playing with sectors of space. Does that make sense? 37:42 – Eric: I don’t want it to be tied JUST to fantasy b/c that’s what MUD is. Everything should be good for historical/ fantasy/ etc. any genre that you want to do! 38:13 – Panel: I could see a HackFest and the company could create one for their business. You could have a lot of fun with it. 38:38 – Panel. 38:44 – Panel: Hidden things on their websites. 38:50 – Eric: Search TEXT ADVENTURE in Google Search. See show notes below. 39:24 – Panel: There is a whole subculture that people are interested in and I didn’t know that these people existed. I think that is interesting. 39:45 – Eric: There are tons of games out there that are 20+ years old! 39:55 – Panel: What is your favorite old school MUD game? 40:02 – Eric lists his favorite old school games! One of them is Achaea! 40:51 – Panel: I like the status bars are really cool. If you haven’t played it you have a health bar. Also you have these expiring times and it’s very cool – modern MUD. 41:22 – Eric. 42:00 – Panel: You came from a Ruby background – what was your transition to Elixir like for you? How did you come to Elixir? What was that like for you? 42:15 – Eric: Yeah some of my friends were into Elixir from a functional standpoint about 2 years ago. They were reading about Phoenix and such. They wanted to see how it was going to go. 43:06 – Panel: Try by fire. Coming from Ruby to Elixir – what some advice would you give the same person? 43:37 – Eric: It was less of a culture shock b/c Phoenix was still kind of “Railsy.” 44:35 – Panel: When I was first learning ERLANG, and telling them that it was a standard library. 44:59 – Eric: It’s using Cowboys Ranch. 45:19 – Eric: There are a number of people out there that they want people to run to SSH b/c it’s more secure. 45:46 – Eric: I guess if we are on this topic about secure... 46:40 – Chuck. 46:51 – Panel: I think there is a lot of value, Eric, and the lessons you’ve learned and the path you’ve gone down. If you are new to Elixir going to ExVenture is a great way to start. 47:20 – Eric. 47:35 – Panel: Just run the format and we can do it that way. I encourage people to download it and see what it’s like as a user, and play with it as an admin. We have a Meetup coming up this Thursday. Eric is coming in virtually into our Meetup group. 48:29 – Eric: Gossip is open source. Grapevine and Raisin – check these out, too, b/c they are open source, too. 48:58 – Panel: Where can people contact you? 49:05 – Eric: Twitter! GitHub! Mudcoders.com. 49:39 – Picks! 49:44 – Ad: Lootcrate.com Links: Ruby Elixir Elm Atom.io Flutter.io JavaScript Visual Studio Code React Erlang ExVenture Ex_Venture ExVenture’s Trello Board Prometheus Prometheus EX Gossip GitHub: Gossip 2018 – Conference Talk @ Elixir Conf with Eric Oestrich Eric’s Blog Libcluster Raft – GitHub.io – The Raft Consensus Algorithm pg2 MidMUD Gossip/Haus/Docs ExVenture: Docker Environment Google: Text Adventure Achaea Cowboy SSH Grapevine Raisin ASDF Plugins Eric’s GitHub Eric’s Twitter Brooklyn Nine-Nine Elm Packages MetaBase Sponsors: Loot Crate Get a Coder Job! Fresh Books Cache Fly Picks: Eric MUD Coders Elixir LS Mark ASDF Library Josh Brooklyn Nine-Nine Elm UI Nate Mentoring and Paired Programming Metabase Charles Monster Hunters International
Panel: Mark Ericksen Josh Adams Nate Hopkins Charles Max Wood Special Guest: Eric Oestrich In this episode of Elixir Mix, the panel talks with Eric Oestrich who is a web developer who resides in Indianapolis, Indiana. He and the panel talk about ExVenture, Gossip, Cowboy, Raisin, Grapevine, and much more! Listen to today’s episode to hear all about it! Finally, check out Eric’s ElixirConf talk and his blog, too! Show Topics: 0:00 – Advertisement: Get A Coder Job! 0:51 – Charles introduces the panel. 1:14 – Nate talks about his background. 1:27 – Chuck: My first programming job I worked with Nate. Nate also works now with Eric Berry. We have a special guest and that is Eric Oestrich. Tell us who you are, please! 1:55 – Eric: I work for Smart Logic, LLC. We are a consultancy who has moved to Elixir for the last 2 years. 2:14 – Chuck: Tell us what ExVenture is? 2:46 – Eric: Late 80’s to mid-90’s it’s like a MUD tech space game. Eric goes into detail of what ExVenture is. 3:28 – Panel: Familiar with MUDS. 3:36 – Panel: Audience can’t tell that Eric isn’t an old guy. Eric – you aren’t an old gentleman – how did you get into it?! 4:02 – Eric: The concept has fascinated me. It’s pure game mechanics. In school I wrote things in Python and try to make it threaded. Never got it going. After that I wanted to do a MUD but not good enough in C and couldn’t get it working in Ruby neither. But one faithful day (a year ago) I got an echo and chat server and now we have a MUD. 5:02 – Panel: Why should you be interested? I will tell you why. ExVenture is an open source... I encourage everyone to dig into and play with it! It is a game (so that makes it more fun) but you are dealing with game mechanics. I am also curious where you wanted this to go? What made you say: I want to create this and make it open source? 6:37 – Eric: I like it and work has mostly played for it. It’s MIT because of that. Early in the project (between client work) it was a common thread and that’s why it’s open source. 7:27 – Panel: I ran into you at the conference and you were showing me... Talk about getting metrics out of your system, please? 8:20 – Eric answers the question. 9:09 – Panel: When people are trying to get metrics out of their system – what EVEN makes a good metric? 9:21- Eric: I am trying to figure that out myself, actually. I want to know how long it takes for someone to login? Is that someone trying to hack into my system? If you speak at a global channel or something else... Eric goes into more detail. Eric also mentions Prometheus. 10:31 – Panel: You mentioned: What would you want to see on a dashboard? 11:01 – Eric answers the question and mentions Prometheus EX. 12:19 – Panel: As you starting building this you were pulling libraries out of it and making them separate libraries. Are you pretty proud of GOSSIP? 12:37 – Eric: Yes! Gossip is based on web sockets and it’s a cowboy socket. Eric talks about Gossip. 13:10 – Panel: What other clients are you trying to support? 13:15 – Eric: There is a JavaScript client and Node-based game called... There is a bundle system for that. There is also a Python option. The one thing we haven’t done yet is a C client. That is important b/c most of the games that you could connect to are 25-30 years old. 14:26 – Panel asks a question. 14:34 – Eric: That is the C client we are waiting for. 14:43 – Panel: You talked at the conference (see the show notes) you talked about things you learned along the way. Can you talk about your process? What kind of bottlenecks and how did you resolve those issues? 15:10 – Eric answers the question. 16:44 – Panel: Did you run out of processes? 16:47 – Eric: The VM shut-off – it was just done. That was the first go-around. 19:27 – Eric: After the ElixirConf, I wanted to see how far I could push it. Eric continues. 19:51 – Panel: I want to identify some of these principles you just talked about. First, the major block was the gen server is a single process. 20:21 – Panel. 20:24 – Panel: I think that is a common mistake when people come to Elixir in the beginning stages. How did you solve it? 20:50 – Panelist answers the above question. 21:30 – Panel: That’s one of the big things. It’s an architectural issue. Second, you mentioned really LARGE messages. You were sending around really large messages. 22:20 – Eric: For every 100 players was a gigabyte of ram – it was a lot. And that was mostly b/c every copy...when a new character enters the room then that message gets sent out then it gets copied again, and... 23:08 – Panel. 23:24 – Panel: The third one you mentioned was around data base blocking or...? Can you talk about this one a little more, please? 23:33 – Eric answers the question. 24:02 – Panel. 24:30 – Eric: It was always saving...I tricked Echo into saving...There is a lot of things that could be better to save specifically faster. 24:52 – Panel: I think people would hit those 3 points eventually – there is a lot of value to that. 25:09 –Eric: Yes that was near the end of my ElixirConf talk and my blog. 25:23 – Panel. 25:33 – Eric: It came out in May and I figured out that I needed to learn how to cluster in Elixir. That’s what the ElixirConf was a bout from single node to multiple nodes. Eric continues. 28:38 – Panel: When you have a cluster – and I join – when I transfer from one room to another room, I could be passed off to another server or node? 29:01 – Eric: Whatever you mean by “being passed off.” Whatever server you land on that’s the one you will be on. The magic is that... 30:08 – Advertisement: Fresh Books! 31:15 – Panel: I am going through the code base now and I am excited. It’s going to help me get better at Elixir. 31:32 – Eric: That’s the point of ExVenture. 31:48 – Panel: You host a server so people can see what it’s about – and that’s Mid Mud, right? 32:09 – Eric: Yep, the first hour of you playing. There is a town crier, you request, and then combat monsters. Also, it is plugged into Gossip and you can talk to them. 32:44 – Eric: Yep, there you go: player logged-in! 32:55 – Panel: Maybe not b/c it will turn into a new podcast soon. 33:07 – Panel: What if I want to use Gossip, what is involved there? 33:16 – Eric: Gossip.Haus/docs – Go there! Set it up and start sending and receiving events. 34:40 – Panel: When I was trying to understand the Prometheus metrics it helped. And then in downloading it (as a tip), for me, it was easy to use the DOCKER instructions. 35:32 – Eric: Yep, that was done by a community member. 35:40 – Panel: Are you looking for people to contribute? 35:50 – Eric: Yep, I have a public Trello board. There are 2 tags. 36:12 – Panel: Sounds like you have people involved? 36:22 – Eric: Bunch of people came on after the ElixirConf. 36:33 – Panel: If people download it (another tip) in the SEEDS file you will find out the admin username and password. I guess that’s something you can add. Login: ADMIN and Password: PASSWORD. What I thought was fun (playing with it) in the admin screen I got a sense that it’s generic enough that I could create a space game. Like playing with sectors of space. Does that make sense? 37:42 – Eric: I don’t want it to be tied JUST to fantasy b/c that’s what MUD is. Everything should be good for historical/ fantasy/ etc. any genre that you want to do! 38:13 – Panel: I could see a HackFest and the company could create one for their business. You could have a lot of fun with it. 38:38 – Panel. 38:44 – Panel: Hidden things on their websites. 38:50 – Eric: Search TEXT ADVENTURE in Google Search. See show notes below. 39:24 – Panel: There is a whole subculture that people are interested in and I didn’t know that these people existed. I think that is interesting. 39:45 – Eric: There are tons of games out there that are 20+ years old! 39:55 – Panel: What is your favorite old school MUD game? 40:02 – Eric lists his favorite old school games! One of them is Achaea! 40:51 – Panel: I like the status bars are really cool. If you haven’t played it you have a health bar. Also you have these expiring times and it’s very cool – modern MUD. 41:22 – Eric. 42:00 – Panel: You came from a Ruby background – what was your transition to Elixir like for you? How did you come to Elixir? What was that like for you? 42:15 – Eric: Yeah some of my friends were into Elixir from a functional standpoint about 2 years ago. They were reading about Phoenix and such. They wanted to see how it was going to go. 43:06 – Panel: Try by fire. Coming from Ruby to Elixir – what some advice would you give the same person? 43:37 – Eric: It was less of a culture shock b/c Phoenix was still kind of “Railsy.” 44:35 – Panel: When I was first learning ERLANG, and telling them that it was a standard library. 44:59 – Eric: It’s using Cowboys Ranch. 45:19 – Eric: There are a number of people out there that they want people to run to SSH b/c it’s more secure. 45:46 – Eric: I guess if we are on this topic about secure... 46:40 – Chuck. 46:51 – Panel: I think there is a lot of value, Eric, and the lessons you’ve learned and the path you’ve gone down. If you are new to Elixir going to ExVenture is a great way to start. 47:20 – Eric. 47:35 – Panel: Just run the format and we can do it that way. I encourage people to download it and see what it’s like as a user, and play with it as an admin. We have a Meetup coming up this Thursday. Eric is coming in virtually into our Meetup group. 48:29 – Eric: Gossip is open source. Grapevine and Raisin – check these out, too, b/c they are open source, too. 48:58 – Panel: Where can people contact you? 49:05 – Eric: Twitter! GitHub! Mudcoders.com. 49:39 – Picks! 49:44 – Ad: Lootcrate.com Links: Ruby Elixir Elm Atom.io Flutter.io JavaScript Visual Studio Code React Erlang ExVenture Ex_Venture ExVenture’s Trello Board Prometheus Prometheus EX Gossip GitHub: Gossip 2018 – Conference Talk @ Elixir Conf with Eric Oestrich Eric’s Blog Libcluster Raft – GitHub.io – The Raft Consensus Algorithm pg2 MidMUD Gossip/Haus/Docs ExVenture: Docker Environment Google: Text Adventure Achaea Cowboy SSH Grapevine Raisin ASDF Plugins Eric’s GitHub Eric’s Twitter Brooklyn Nine-Nine Elm Packages MetaBase Sponsors: Loot Crate Get a Coder Job! Fresh Books Cache Fly Picks: Eric MUD Coders Elixir LS Mark ASDF Library Josh Brooklyn Nine-Nine Elm UI Nate Mentoring and Paired Programming Metabase Charles Monster Hunters International
Panel: Mark Ericksen Eric Berry Josh Adams Nathan Hopkins Special Guest: Andrew Dryga In this episode of Elixir Mix, the panel talks with Andrew Dryga who is a software engineer (full-stack), entrepreneur, blockchain architect, and consultant. He currently works for Hammer and previous employers include Contractbook, Nebo #15, BEST Money Transfers among others. He studied at the National Technical University of Ukraine. Check out today’s episode where the panel and guest talk about Sagas and Sage. Show Topics: 1:52 – Our guest today is Andrew Dryga. Why are you into Elixir? 2:04 – Andrew: I have worked in Elixir for a few years. I worked on one of the biggest opensource projects for a while now. 2:42 – Let’s talk about Sage! 2:49 – Andrew: I felt like I was doing the same thing over, and over again. Andrew talks about how he was on a mission to solve a problem that he was having. 3:48 – Panelist: I have run into this problem before, and I am looking forward We have distribution systems and anything that is external for us (Stripe), and one of the solutions was to create a multi. Let’s create a user, register theses different pieces, and then... Then we realized that this request was taking too long. Our transaction is timing out. The other connection went to the other server. We had database records removed from the other side. People aren’t aware that they have these distribution problems. I think Stripe is a good example of that. I started with my multi... 5:24 – Andrew: I am trying to be very programmatic. I don’t want to do that, so write now the project is multi. It’s doable if you know what you are doing. If you are dealing with just one it’s simple. But if you can monitor them (Sage Read Me)... 56:16 – Let’s talk about Sagas! 6:19 – Andrew talks about what Sagas are. 8:20 – You are right it is a new mental model. That’s why I love the Sage library because it is simple. It gives structure to that mental model. The idea that I will take step one and create a user, step two another entry, step three now an external entry. It can fail for any reason. Then these compensating functions are saying: what is the undo for this? It could be just delete this specific entry. But do I have that right? 9:53 – Andrew gives his comments on those comments. 10:26 – Andrew continues his ideas. 11:09 – When you start with a new team, you don’t bring Sage right off the back? What is your strategy to figure out that pain? 11:32 – Andrew: I don’t have a plan – how do I feel about THAT coder. After about 2 services and 1 call it’s time to use Sage or it will be too complex. Integration is the case. So if you try to integrate substitution then... 12:29 – Question to Andrew. 12:35 – Andrew: Figure it out by judgment and it varies by situation. I enjoy working with them but I’m not like them. I use my best judgment. 12:59 – You talked at Code Beam and talked about Sagas and Sage. I think that’s a good resource to defend you case. To talk about the sequence of events, something goes wrong, and then rollback the changes. What feedback have you received? 13:46 – Andrew: Yes, good feedback. There some people will say that there are problems, but I know there are companies that are actively using it. People say that it simplifies their projects. I think the presentation slides can definitely help. 14:39 – Yes, check out the show notes links. 14:45 – Are you a consultant or are you fulltime? 14:53 – Andrew: I used to be fulltime and do large projects for companies. Andrew talks about those projects in detail. Andrew: Those projects we used Elixir (see above). I do a lot of opensource, too. Last time I check it was... 16:04 – That’s a good number. 16:08 – Andrew: I am trying to participate in conversations, but if I had more times I would work more in Sage and opensource; to have a persistent nature behind Sage. I think it can be done a much better way. 16:55 – How do you envision doing that? Configuring it to a repo or something else? 17:07 – Andrew: I want to solve the problem of... 17:56 – That’s cool. 18:03 – Andrew: Yeah, everything I find a new application built in. 18:17 – Andrew and panelist go back-and-forth. 18:32 – Andrew continues talking about Sage and models. 18:43 – Proxy channel – I think I want to do a Mud. Anyway... 18:59 – Question. 19:11 – There is a WX library that is built into Erlang which was talked about at the conference. That one looked interesting. How they built the debugger and the widgets. It looked that there was more there than I thought. 19:47 – Great to have out of the box. 19:56 – Andrew comments. Andrew: I saw the talk from Canada and... 20:08 – It’s early to work with. Someone tweeted about it and now I’m rambling. 20:08 – Andrew: Someone made the keyboard while on the plane. 21:04 – I hope we are going that route eventually. 21:12 – Panel and Andrew go back-and-forth. 21:39 – What other applications have you found that Saga would work for? 21:50 – Stripe. 21:56 – Panelist: When I make an authorization request, capture the funds. Even when I am dealing with one of their services there are multi-interactions. 22:03 – Andrew comments. 23:32 – I have an app that I would prefer using Saga because of the... 23:44 – Loot Crate! Check out their deal! 24:37 – Andrew talks about the core team, Elixir and Sage. 26:03 – Panelist: To solve a problem with SAGA let’s talk about the pros and cons. I had an umbrella application and one of the applications was supposed to be the interface to that service. It could be like a payment service and other payment gateways. I am going to make my request to this app, and it’s going to track the app. The main thing continues and talks to the bank and/or Stripe. Depending on the problems but you still have THAT problem because maybe the account wasn’t set up properly. Now we’ve talked to the bank, medium intervention, and let’s run this. I like SAGE and SAGAS because I don’t’ have to go to that level to break out the proxies. I just need to talk with the sales force or something. I need a reliable system when it can recover when something goes wrong. It might be over engineered but I don’t know. 28:17 – Andrew comments about that particular example (see above). 29:03 – With Sagas you can loose them... 29:09 – I haven’t played with Rabbit, yet. The one that is built into AWS? There’s Simple Q and there is something else. Rabbit is built with Erlang. What’s that like for you? 29:40 – Andrew: It’s pretty painful. Andrew mentions MPP. 30:37 – Interesting; I haven’t gotten that far, yet. 30:45 – My first Elixir application had...behind it. That was the worst part. I feel those pains. 31:00 – Andrew: That’s the case. 31:51 – The other service I was thinking of was... 31:56 – Question for Andrew. 31:59 – Andrew answers. 32:39 – That is the problem we are having at work because of older code. How can we resend them out? That probably will be a good fit for us. 33:18 – Andrew. 34:31 – Andrew: Once you’ve found the bug... 35:16 – When you are coming to a new language, it could be React or...the first few things will be pretty awful. What has this path been like for you, Nathan? 35:40 – Nathan: Yeah I am very early days. Yesterday, I had a set of code that I was creating to try just to function and it was really ugly. But I was okay with that because I was just trying to solve the issue. 36:05 – You have to be okay with that. The idea that: You are trying to just make it work. When you come to Elixir and being fresh and thinking I don’t even know what to do. 36:32 – I have a buddy with that now saying: How do I even start with this?! 36:40 – Andrew: It takes time to break your head and a different way to rethink the code. Once I have the basic concepts then it makes me feel super efficient. 37:24 – I am curious what languages have you had experience with? 37:38 – Andrew: I started commercial projects in my teenage years. I built websites for them. I have some JavaScript knowledge and that was good going to Elixir. 39:04 – I favor that side, too. It’s not hard to build solutions with the things that are in the box (Erlang). I don’t like to bring in all of these libraries that people are creating. It’s great but, at the same time, I have been burned by Rails and JavaScript where you bring in all of these different libraries, and it becomes really nasty. I could have solved it more natively. 39:55 – Andrew: In Elixir you can... 40:28 – Oh, that’s all I needed – those 2 lines. 40:40 – Andrew. 40:46 – That’s an interesting dynamic. 41:09 – Andrew comments talks about Elixir and Hex. 41:23 – Andrew: I think it’s a good thing. I think there needs to be work in Hex because it’s underdeveloped. To name a few... 43:08 – Part of the keynote this year that it won’t be merged, or they aren’t promising to merge it. 43:29 – Andrew. 44:08 – I haven’t used 3, yet. 44:10 – Andrew. 44:55 – They are talking about the Read Me. I didn’t know there was an Ecto Mnesia? 45:20 – Andrew: Yeah I helped build it and the plan was... 45:50 – Yeah I can see the issue there, do I maintain it or...? 46:02 – Andrew comments and talks about the community and different codes. 46:36 – Andrew, anything else that you want to talk about? 46:48 – There are tons of notes in our chat, which the listeners can’t see. 46:58 – Advertisement – Fresh Books’ Advertisement! 30-Day Trial! Links: Ruby Elixir JavaScript React Erlang – Disk Log Erlang WX Railway Oriented Programming Nebo 15 GitHub – Scenic Kafka Rabbit MQ AWS AWS – Kinesis GitHub – Firenest XHTTP GitHub – Ecto GitHub – Ecto Mnesia Saga and Medium Introducing Sage Andrew Dryga’s Website Andrew Dryga’s Medium Andrew Dryga’s GitHub Andrew Dryga’s LinkedIn Andrew Dryga’s Twitter Andrew Dryga’s FB Andrew’s YouTube Channel Andrew’s Sagas of Elixir Video Sponsors: Loot Crate Fresh Books Cache Fly Picks: Mark Mark of the Ninja Josh A Sneak Peek at Ecto 3.0: Breaking Changes Nate Pragmatic Studio Eric Looking of Elixir Developers Metabase.com Polymail Andrew Tide of History
Panel: Mark Ericksen Eric Berry Josh Adams Nathan Hopkins Special Guest: Andrew Dryga In this episode of Elixir Mix, the panel talks with Andrew Dryga who is a software engineer (full-stack), entrepreneur, blockchain architect, and consultant. He currently works for Hammer and previous employers include Contractbook, Nebo #15, BEST Money Transfers among others. He studied at the National Technical University of Ukraine. Check out today’s episode where the panel and guest talk about Sagas and Sage. Show Topics: 1:52 – Our guest today is Andrew Dryga. Why are you into Elixir? 2:04 – Andrew: I have worked in Elixir for a few years. I worked on one of the biggest opensource projects for a while now. 2:42 – Let’s talk about Sage! 2:49 – Andrew: I felt like I was doing the same thing over, and over again. Andrew talks about how he was on a mission to solve a problem that he was having. 3:48 – Panelist: I have run into this problem before, and I am looking forward We have distribution systems and anything that is external for us (Stripe), and one of the solutions was to create a multi. Let’s create a user, register theses different pieces, and then... Then we realized that this request was taking too long. Our transaction is timing out. The other connection went to the other server. We had database records removed from the other side. People aren’t aware that they have these distribution problems. I think Stripe is a good example of that. I started with my multi... 5:24 – Andrew: I am trying to be very programmatic. I don’t want to do that, so write now the project is multi. It’s doable if you know what you are doing. If you are dealing with just one it’s simple. But if you can monitor them (Sage Read Me)... 56:16 – Let’s talk about Sagas! 6:19 – Andrew talks about what Sagas are. 8:20 – You are right it is a new mental model. That’s why I love the Sage library because it is simple. It gives structure to that mental model. The idea that I will take step one and create a user, step two another entry, step three now an external entry. It can fail for any reason. Then these compensating functions are saying: what is the undo for this? It could be just delete this specific entry. But do I have that right? 9:53 – Andrew gives his comments on those comments. 10:26 – Andrew continues his ideas. 11:09 – When you start with a new team, you don’t bring Sage right off the back? What is your strategy to figure out that pain? 11:32 – Andrew: I don’t have a plan – how do I feel about THAT coder. After about 2 services and 1 call it’s time to use Sage or it will be too complex. Integration is the case. So if you try to integrate substitution then... 12:29 – Question to Andrew. 12:35 – Andrew: Figure it out by judgment and it varies by situation. I enjoy working with them but I’m not like them. I use my best judgment. 12:59 – You talked at Code Beam and talked about Sagas and Sage. I think that’s a good resource to defend you case. To talk about the sequence of events, something goes wrong, and then rollback the changes. What feedback have you received? 13:46 – Andrew: Yes, good feedback. There some people will say that there are problems, but I know there are companies that are actively using it. People say that it simplifies their projects. I think the presentation slides can definitely help. 14:39 – Yes, check out the show notes links. 14:45 – Are you a consultant or are you fulltime? 14:53 – Andrew: I used to be fulltime and do large projects for companies. Andrew talks about those projects in detail. Andrew: Those projects we used Elixir (see above). I do a lot of opensource, too. Last time I check it was... 16:04 – That’s a good number. 16:08 – Andrew: I am trying to participate in conversations, but if I had more times I would work more in Sage and opensource; to have a persistent nature behind Sage. I think it can be done a much better way. 16:55 – How do you envision doing that? Configuring it to a repo or something else? 17:07 – Andrew: I want to solve the problem of... 17:56 – That’s cool. 18:03 – Andrew: Yeah, everything I find a new application built in. 18:17 – Andrew and panelist go back-and-forth. 18:32 – Andrew continues talking about Sage and models. 18:43 – Proxy channel – I think I want to do a Mud. Anyway... 18:59 – Question. 19:11 – There is a WX library that is built into Erlang which was talked about at the conference. That one looked interesting. How they built the debugger and the widgets. It looked that there was more there than I thought. 19:47 – Great to have out of the box. 19:56 – Andrew comments. Andrew: I saw the talk from Canada and... 20:08 – It’s early to work with. Someone tweeted about it and now I’m rambling. 20:08 – Andrew: Someone made the keyboard while on the plane. 21:04 – I hope we are going that route eventually. 21:12 – Panel and Andrew go back-and-forth. 21:39 – What other applications have you found that Saga would work for? 21:50 – Stripe. 21:56 – Panelist: When I make an authorization request, capture the funds. Even when I am dealing with one of their services there are multi-interactions. 22:03 – Andrew comments. 23:32 – I have an app that I would prefer using Saga because of the... 23:44 – Loot Crate! Check out their deal! 24:37 – Andrew talks about the core team, Elixir and Sage. 26:03 – Panelist: To solve a problem with SAGA let’s talk about the pros and cons. I had an umbrella application and one of the applications was supposed to be the interface to that service. It could be like a payment service and other payment gateways. I am going to make my request to this app, and it’s going to track the app. The main thing continues and talks to the bank and/or Stripe. Depending on the problems but you still have THAT problem because maybe the account wasn’t set up properly. Now we’ve talked to the bank, medium intervention, and let’s run this. I like SAGE and SAGAS because I don’t’ have to go to that level to break out the proxies. I just need to talk with the sales force or something. I need a reliable system when it can recover when something goes wrong. It might be over engineered but I don’t know. 28:17 – Andrew comments about that particular example (see above). 29:03 – With Sagas you can loose them... 29:09 – I haven’t played with Rabbit, yet. The one that is built into AWS? There’s Simple Q and there is something else. Rabbit is built with Erlang. What’s that like for you? 29:40 – Andrew: It’s pretty painful. Andrew mentions MPP. 30:37 – Interesting; I haven’t gotten that far, yet. 30:45 – My first Elixir application had...behind it. That was the worst part. I feel those pains. 31:00 – Andrew: That’s the case. 31:51 – The other service I was thinking of was... 31:56 – Question for Andrew. 31:59 – Andrew answers. 32:39 – That is the problem we are having at work because of older code. How can we resend them out? That probably will be a good fit for us. 33:18 – Andrew. 34:31 – Andrew: Once you’ve found the bug... 35:16 – When you are coming to a new language, it could be React or...the first few things will be pretty awful. What has this path been like for you, Nathan? 35:40 – Nathan: Yeah I am very early days. Yesterday, I had a set of code that I was creating to try just to function and it was really ugly. But I was okay with that because I was just trying to solve the issue. 36:05 – You have to be okay with that. The idea that: You are trying to just make it work. When you come to Elixir and being fresh and thinking I don’t even know what to do. 36:32 – I have a buddy with that now saying: How do I even start with this?! 36:40 – Andrew: It takes time to break your head and a different way to rethink the code. Once I have the basic concepts then it makes me feel super efficient. 37:24 – I am curious what languages have you had experience with? 37:38 – Andrew: I started commercial projects in my teenage years. I built websites for them. I have some JavaScript knowledge and that was good going to Elixir. 39:04 – I favor that side, too. It’s not hard to build solutions with the things that are in the box (Erlang). I don’t like to bring in all of these libraries that people are creating. It’s great but, at the same time, I have been burned by Rails and JavaScript where you bring in all of these different libraries, and it becomes really nasty. I could have solved it more natively. 39:55 – Andrew: In Elixir you can... 40:28 – Oh, that’s all I needed – those 2 lines. 40:40 – Andrew. 40:46 – That’s an interesting dynamic. 41:09 – Andrew comments talks about Elixir and Hex. 41:23 – Andrew: I think it’s a good thing. I think there needs to be work in Hex because it’s underdeveloped. To name a few... 43:08 – Part of the keynote this year that it won’t be merged, or they aren’t promising to merge it. 43:29 – Andrew. 44:08 – I haven’t used 3, yet. 44:10 – Andrew. 44:55 – They are talking about the Read Me. I didn’t know there was an Ecto Mnesia? 45:20 – Andrew: Yeah I helped build it and the plan was... 45:50 – Yeah I can see the issue there, do I maintain it or...? 46:02 – Andrew comments and talks about the community and different codes. 46:36 – Andrew, anything else that you want to talk about? 46:48 – There are tons of notes in our chat, which the listeners can’t see. 46:58 – Advertisement – Fresh Books’ Advertisement! 30-Day Trial! Links: Ruby Elixir JavaScript React Erlang – Disk Log Erlang WX Railway Oriented Programming Nebo 15 GitHub – Scenic Kafka Rabbit MQ AWS AWS – Kinesis GitHub – Firenest XHTTP GitHub – Ecto GitHub – Ecto Mnesia Saga and Medium Introducing Sage Andrew Dryga’s Website Andrew Dryga’s Medium Andrew Dryga’s GitHub Andrew Dryga’s LinkedIn Andrew Dryga’s Twitter Andrew Dryga’s FB Andrew’s YouTube Channel Andrew’s Sagas of Elixir Video Sponsors: Loot Crate Fresh Books Cache Fly Picks: Mark Mark of the Ninja Josh A Sneak Peek at Ecto 3.0: Breaking Changes Nate Pragmatic Studio Eric Looking of Elixir Developers Metabase.com Polymail Andrew Tide of History
Panel: Charles Max Wood Mark Ericksen Josh Adams Eric Berry Special Guest: Brooklyn Zelenka In this episode of Elixir Mix, the panel talks to Brooklyn Zelenka who lives in Vancouver, Canada. Listen to the panel and the guest talk about various topics, such as: different Elixir libraries, Quark, Witchcraft, Exceptional, ConsenSys, Meetup, among others. Show Topics: 1:33 – Let’s talk about Exceptional for that library? 1:40 – Brooklyn: Sure, it helps with flow. 3:33 – You are making Exceptional more accessible? 3:35 – Brooklyn: Yes, more conceptual. 3:49 – Panelist: What’s the adaptation like? 4:09 – Brooklyn: People seem to like it. 4:33 – Panelist: What were you doing before that? 4:42 – Brooklyn: First language was JavaScript. There is a huge Ruby community. Tons of Ruby refugees looking for help. 5:27 – There seems to be a large migration from Ruby to Elixir. Have you played with Ruby at all? 5:40 – Brooklyn: Yes, I have used Ruby for a couple of years. There is such an interest in Elixir from the Ruby community. They are such different languages. The aesthetic is similar, and the way the languages are set-up is completely different. 6:41 – Panelist: So not having three or four different alien methods? I have been developing Elixr for a while now, but Ruby doesn’t solve modern-day problems. The fact that you have been working with Elixir since 2014 is amazing. 7:24 – Brooklyn: The first library I wrote was Quark. Then that led into Witchcraft. 10:49 – Panelist adds in his comments. 11:06 – Brooklyn: There are a lot of different things I would love to see in the libraries. At what point do we say that this is the default style in Elixir? My keynote was exactly about this at a conference this year. Elixir hits a nice spot in the program place. It’s very accessible. I’ve brought into these concepts because of Elixir. 12:37 – Let’s talk Exceptions. Will it become apart of core? 13:14 – Brooklyn: I wouldn’t mind that it would become apart of core. 15:10 – Any other questions around Exceptional or Exception or other libraries? 15:25 – Panelist: Let’s change topics. 15:30 – Brooklyn has her own company now. 15:52 – Panelist: Good job on Roberts Overload! 16:00 – Panelist: Where does block chain and Elixir meet? 16:08 – Brooklyn answers this question. 17:16 – Brooklyn: Not all block chains are... 19:02 – Brooklyn: Another good fit would be... 19:33 – Panelist: My company is apart of ConsenSys. I hear a lot about the block chain and others. How can Elixir help the block chain? (20:15) You mentioned earlier that Elixir could solve a lot of the issues that bock chain is having. Can you elaborate on this? 20:21 – Brooklyn answers this question – here – check it out! 21:21 – Brooklyn: By bringing in these concepts... 22:16 – Brooklyn makes a huge podcast announcement!! Breaking News! 22:37 – What does that mean – messages on a... 24:06 – Advertisement – Digital Ocean! 24:43 – The mail messages contents does that sit on the ledger or... 25:01 – Brooklyn talks about this topic in detail. 26:00 – Brooklyn: There is a distribution of control. I am going to have to run a program to check when a message comes in – I would like that to be hooked up to my UI, ideally. 26:35 – Panelist: You are a fascinating person! 26:45 – Chuck: You also do Elixir training for people? 26:56 – Yes! We help companies and go to conferences. This is for zero experience with Elixir. Over the course of a couple of days to give people confidence production in Elixir. It won’t give you all of the knowledge, but it helps. This also gives people access to me, and my business partner, to use us for questions and so on. 28:56 – You live in Vancouver. What is the Elixir community – through Meetup – what is the temperature like there for Elixir or Ruby, etc.? What are the trends looking like? 29:31 – Brooklyn: Yes, check us out at Meetup. 35:18 – Panelist: I think that is interesting on your opinions on GO with your background. 35:35 – Brooklyn continues her ideas on this topic. It’s not to say that GO is the worse language ever, but from what I have seen that it’s a nice experience in Elixir that things work. All the libraries integrate nicely. There is a style and flavor that is friendly. You get the friendliness with all of this power. You can scale up very nicely from a single node. 37:47 – Where can Elixir “should” go and could go? 38:21 – Brooklyn answers this question and others. 39:21 – Dialyxir / Elixir. 41:27 – Dialyxir overall is pretty nice and it gets the job done with what Elixir needs it to do. Type system. 42:09 – The pre-existing eco-system isn’t built for it. You don’t know if it’s safe to run? There is no way to know about this. The overhead for the programmer tends to be really high. Why don’t we add things like – adding property checks – to ensure that you know how this thing will behave when it run. Using some other techniques – not just in tests – but integrate it into the core workflow. This is really important 44:22 – Advertisement! 45:03 – Panelist chimes in. 45:21 – Brooklyn: Have you seen Alpaca? I am sure it’s 1.0 now. It runs on the beam. 46:15 – Panelist adds comments. 46:25 – Brooklyn: This is why I brought up RChain earlier in the conversation. 47:01 – Block Chain. 48:17 – Panelist talks. 48:53 – Brooklyn: At the application level – one of my projects is having a language that will run... 51:17 – Chuck: I am still learning Elixir. So this is way beyond from where I am at. Let’s do some picks! Links: Coder Job eBook by Charles Max Wood Elixir Rails GO Quark Witchcraft Type Class Algae Exceptional Phoenix Exceptional Robot Overload Raft Consensus Algorithm Ethereum Status Codes Dialyxir Expede Type Class Alpaca Kaizen Matt Diep House ConsenSys / Ethql Metabase TerraGenesis TerraGenesis – Space Colony Wabi-Sabi RChain Brooklyn’s Medium Brooklyn’s Meetup in Vancouver Brooklyn’s GitHub Brooklyn’s LinkedIn Brooklyn – Lambda Conference 2018 Sponsors: Get a Coder Job Digital Ocean Code Badges Cache Fly Picks: Charles Make some incremental step forward – adding onto Mark’s pick - Kaizen. TerraGenesis TerraGenesis – Space Colony Honest feedback! What can I change? Phoenix Mark Workspace Environment: Kaizen – Change for the Better = Improvement. Josh Article – Value-Oriented Programming Eric Library – ConsenSys / Ethql Metabase Brooklyn Wabi-Sabi – seeing the beauty in things that imperfect.
Panel: Charles Max Wood Mark Ericksen Josh Adams Eric Berry Special Guest: Brooklyn Zelenka In this episode of Elixir Mix, the panel talks to Brooklyn Zelenka who lives in Vancouver, Canada. Listen to the panel and the guest talk about various topics, such as: different Elixir libraries, Quark, Witchcraft, Exceptional, ConsenSys, Meetup, among others. Show Topics: 1:33 – Let’s talk about Exceptional for that library? 1:40 – Brooklyn: Sure, it helps with flow. 3:33 – You are making Exceptional more accessible? 3:35 – Brooklyn: Yes, more conceptual. 3:49 – Panelist: What’s the adaptation like? 4:09 – Brooklyn: People seem to like it. 4:33 – Panelist: What were you doing before that? 4:42 – Brooklyn: First language was JavaScript. There is a huge Ruby community. Tons of Ruby refugees looking for help. 5:27 – There seems to be a large migration from Ruby to Elixir. Have you played with Ruby at all? 5:40 – Brooklyn: Yes, I have used Ruby for a couple of years. There is such an interest in Elixir from the Ruby community. They are such different languages. The aesthetic is similar, and the way the languages are set-up is completely different. 6:41 – Panelist: So not having three or four different alien methods? I have been developing Elixr for a while now, but Ruby doesn’t solve modern-day problems. The fact that you have been working with Elixir since 2014 is amazing. 7:24 – Brooklyn: The first library I wrote was Quark. Then that led into Witchcraft. 10:49 – Panelist adds in his comments. 11:06 – Brooklyn: There are a lot of different things I would love to see in the libraries. At what point do we say that this is the default style in Elixir? My keynote was exactly about this at a conference this year. Elixir hits a nice spot in the program place. It’s very accessible. I’ve brought into these concepts because of Elixir. 12:37 – Let’s talk Exceptions. Will it become apart of core? 13:14 – Brooklyn: I wouldn’t mind that it would become apart of core. 15:10 – Any other questions around Exceptional or Exception or other libraries? 15:25 – Panelist: Let’s change topics. 15:30 – Brooklyn has her own company now. 15:52 – Panelist: Good job on Roberts Overload! 16:00 – Panelist: Where does block chain and Elixir meet? 16:08 – Brooklyn answers this question. 17:16 – Brooklyn: Not all block chains are... 19:02 – Brooklyn: Another good fit would be... 19:33 – Panelist: My company is apart of ConsenSys. I hear a lot about the block chain and others. How can Elixir help the block chain? (20:15) You mentioned earlier that Elixir could solve a lot of the issues that bock chain is having. Can you elaborate on this? 20:21 – Brooklyn answers this question – here – check it out! 21:21 – Brooklyn: By bringing in these concepts... 22:16 – Brooklyn makes a huge podcast announcement!! Breaking News! 22:37 – What does that mean – messages on a... 24:06 – Advertisement – Digital Ocean! 24:43 – The mail messages contents does that sit on the ledger or... 25:01 – Brooklyn talks about this topic in detail. 26:00 – Brooklyn: There is a distribution of control. I am going to have to run a program to check when a message comes in – I would like that to be hooked up to my UI, ideally. 26:35 – Panelist: You are a fascinating person! 26:45 – Chuck: You also do Elixir training for people? 26:56 – Yes! We help companies and go to conferences. This is for zero experience with Elixir. Over the course of a couple of days to give people confidence production in Elixir. It won’t give you all of the knowledge, but it helps. This also gives people access to me, and my business partner, to use us for questions and so on. 28:56 – You live in Vancouver. What is the Elixir community – through Meetup – what is the temperature like there for Elixir or Ruby, etc.? What are the trends looking like? 29:31 – Brooklyn: Yes, check us out at Meetup. 35:18 – Panelist: I think that is interesting on your opinions on GO with your background. 35:35 – Brooklyn continues her ideas on this topic. It’s not to say that GO is the worse language ever, but from what I have seen that it’s a nice experience in Elixir that things work. All the libraries integrate nicely. There is a style and flavor that is friendly. You get the friendliness with all of this power. You can scale up very nicely from a single node. 37:47 – Where can Elixir “should” go and could go? 38:21 – Brooklyn answers this question and others. 39:21 – Dialyxir / Elixir. 41:27 – Dialyxir overall is pretty nice and it gets the job done with what Elixir needs it to do. Type system. 42:09 – The pre-existing eco-system isn’t built for it. You don’t know if it’s safe to run? There is no way to know about this. The overhead for the programmer tends to be really high. Why don’t we add things like – adding property checks – to ensure that you know how this thing will behave when it run. Using some other techniques – not just in tests – but integrate it into the core workflow. This is really important 44:22 – Advertisement! 45:03 – Panelist chimes in. 45:21 – Brooklyn: Have you seen Alpaca? I am sure it’s 1.0 now. It runs on the beam. 46:15 – Panelist adds comments. 46:25 – Brooklyn: This is why I brought up RChain earlier in the conversation. 47:01 – Block Chain. 48:17 – Panelist talks. 48:53 – Brooklyn: At the application level – one of my projects is having a language that will run... 51:17 – Chuck: I am still learning Elixir. So this is way beyond from where I am at. Let’s do some picks! Links: Coder Job eBook by Charles Max Wood Elixir Rails GO Quark Witchcraft Type Class Algae Exceptional Phoenix Exceptional Robot Overload Raft Consensus Algorithm Ethereum Status Codes Dialyxir Expede Type Class Alpaca Kaizen Matt Diep House ConsenSys / Ethql Metabase TerraGenesis TerraGenesis – Space Colony Wabi-Sabi RChain Brooklyn’s Medium Brooklyn’s Meetup in Vancouver Brooklyn’s GitHub Brooklyn’s LinkedIn Brooklyn – Lambda Conference 2018 Sponsors: Get a Coder Job Digital Ocean Code Badges Cache Fly Picks: Charles Make some incremental step forward – adding onto Mark’s pick - Kaizen. TerraGenesis TerraGenesis – Space Colony Honest feedback! What can I change? Phoenix Mark Workspace Environment: Kaizen – Change for the Better = Improvement. Josh Article – Value-Oriented Programming Eric Library – ConsenSys / Ethql Metabase Brooklyn Wabi-Sabi – seeing the beauty in things that imperfect.
Panel: Eric Berry Josh Adams Justin Bean Special Guests: Chris Keathley In this episode of Elixir Mix, the panel talks to Chris Keathley. Chris has been in the Elixir community for a number of years and has been trying to contribute more to the community recently. He created libraries such as Wallaby and has been working on distributed systems tooling more recently. They talk about his various projects that he is working on, such as Raft, Toniq, and Maestro, and much more! In particular, we dive pretty deep on: Chris intro Elixir Wallaby What are you doing with distributed systems now? Raft and Raft for Elixir People like to attack problems with consistent solutions Global process registries What are AP Semantics? What are CP Semantics? Available systems Eventual consistency Clustering inside of VPN Encapsulating state Warehouse kiosks The world fights against state machines Alternatives based on rules or events What projects are you working on now? CAP Theorum Toniq GitHub ecto_hlclock Event sourcing Stems around message ordering Maestro The Little Elixir & OTP Guidebook by Benjamin Tan Wei Hao And much, much more! Links: Wallaby Elixir Raft Raft for Elixir CAP Theorem Toniq ecto_hlclock Maestro Elixir Outlaws The Little Elixir & OTP Guidebook by Benjamin Tan Wei Hao Beam Community Chris’s GitHub Keathley.io @ChrisKeathley Picks: Eric Bob’s Burgers Metabase Justin Phantom Thread Dialyzer Josh Elm Game Jam Chris Wild Wild Country Hammocks Start a garden
Panel: Eric Berry Josh Adams Justin Bean Special Guests: Chris Keathley In this episode of Elixir Mix, the panel talks to Chris Keathley. Chris has been in the Elixir community for a number of years and has been trying to contribute more to the community recently. He created libraries such as Wallaby and has been working on distributed systems tooling more recently. They talk about his various projects that he is working on, such as Raft, Toniq, and Maestro, and much more! In particular, we dive pretty deep on: Chris intro Elixir Wallaby What are you doing with distributed systems now? Raft and Raft for Elixir People like to attack problems with consistent solutions Global process registries What are AP Semantics? What are CP Semantics? Available systems Eventual consistency Clustering inside of VPN Encapsulating state Warehouse kiosks The world fights against state machines Alternatives based on rules or events What projects are you working on now? CAP Theorum Toniq GitHub ecto_hlclock Event sourcing Stems around message ordering Maestro The Little Elixir & OTP Guidebook by Benjamin Tan Wei Hao And much, much more! Links: Wallaby Elixir Raft Raft for Elixir CAP Theorem Toniq ecto_hlclock Maestro Elixir Outlaws The Little Elixir & OTP Guidebook by Benjamin Tan Wei Hao Beam Community Chris’s GitHub Keathley.io @ChrisKeathley Picks: Eric Bob’s Burgers Metabase Justin Phantom Thread Dialyzer Josh Elm Game Jam Chris Wild Wild Country Hammocks Start a garden
Business Intelligence software is often cumbersome and requires specialized knowledge of the tools and data to be able to ask and answer questions about the state of the organization. Metabase is a tool built with the goal of making the act of discovering information and asking questions of an organizations data easy and self-service for non-technical users. In this episode the CEO of Metabase, Sameer Al-Sakran, discusses how and why the project got started, the ways that it can be used to build and share useful reports, some of the useful features planned for future releases, and how to get it set up to start using it in your environment.
Panel: Dave Kimura Eric Berry David Richards In this episode, the Ruby Rogues panel discuss the typical day of a developer. Eric, David, and Dave speak about their daily routines as far as preparation, favorite task management tools, workflows, meetings, coding and testing, home life, working remote, commuting, health/mental healthy choices, and scheduling your projects to stay on course. Importantly, the panel discusses how to handle burnout and keeping up the inspiration to work, and build side businesses. This is a great episode to learn tips and tricks from successful developers and staying the course for further success and longevity in the industry. In particular, we dive pretty deep on: First, how Eric Berry handles day to day Preparation for the day Clubhouse task management Calendly Handling burnout! Organization with your tasks list Passion Recharging or resetting/resting Doing what matters to you - Validation Second, how Dave Kimura handle day to day Healthy choices - eating in or out for lunch Working from home after hours Scheduling your tasks Priority is with the family Third, how David handles day to day Mediation and clarity How much time do you spend learning something new Hiring What is the ideal day? Delivering a product No meetings Learning something new What does a bad day look like Production issues Disorganization and much much more. Links: Clubhouse Calendly Sapiens - Book Writing Great Sentences - Book trello.com Picks: Eric Calendly Clubhouse MetaBase Dave AWS BeanStalk David Tower - Bill Henderson Building Great Sentences
Panel: Dave Kimura Eric Berry David Richards In this episode, the Ruby Rogues panel discuss the typical day of a developer. Eric, David, and Dave speak about their daily routines as far as preparation, favorite task management tools, workflows, meetings, coding and testing, home life, working remote, commuting, health/mental healthy choices, and scheduling your projects to stay on course. Importantly, the panel discusses how to handle burnout and keeping up the inspiration to work, and build side businesses. This is a great episode to learn tips and tricks from successful developers and staying the course for further success and longevity in the industry. In particular, we dive pretty deep on: First, how Eric Berry handles day to day Preparation for the day Clubhouse task management Calendly Handling burnout! Organization with your tasks list Passion Recharging or resetting/resting Doing what matters to you - Validation Second, how Dave Kimura handle day to day Healthy choices - eating in or out for lunch Working from home after hours Scheduling your tasks Priority is with the family Third, how David handles day to day Mediation and clarity How much time do you spend learning something new Hiring What is the ideal day? Delivering a product No meetings Learning something new What does a bad day look like Production issues Disorganization and much much more. Links: Clubhouse Calendly Sapiens - Book Writing Great Sentences - Book trello.com Picks: Eric Calendly Clubhouse MetaBase Dave AWS BeanStalk David Tower - Bill Henderson Building Great Sentences
Panel: Dave Kimura Eric Berry David Richards In this episode, the Ruby Rogues panel discuss the typical day of a developer. Eric, David, and Dave speak about their daily routines as far as preparation, favorite task management tools, workflows, meetings, coding and testing, home life, working remote, commuting, health/mental healthy choices, and scheduling your projects to stay on course. Importantly, the panel discusses how to handle burnout and keeping up the inspiration to work, and build side businesses. This is a great episode to learn tips and tricks from successful developers and staying the course for further success and longevity in the industry. In particular, we dive pretty deep on: First, how Eric Berry handles day to day Preparation for the day Clubhouse task management Calendly Handling burnout! Organization with your tasks list Passion Recharging or resetting/resting Doing what matters to you - Validation Second, how Dave Kimura handle day to day Healthy choices - eating in or out for lunch Working from home after hours Scheduling your tasks Priority is with the family Third, how David handles day to day Mediation and clarity How much time do you spend learning something new Hiring What is the ideal day? Delivering a product No meetings Learning something new What does a bad day look like Production issues Disorganization and much much more. Links: Clubhouse Calendly Sapiens - Book Writing Great Sentences - Book trello.com Picks: Eric Calendly Clubhouse MetaBase Dave AWS BeanStalk David Tower - Bill Henderson Building Great Sentences
Panel: Charles Max Wood Dave Kimura Eric Berry David Richards Special Guest: David Richards In this episode, the Ruby Rogues speak with a return guest, Ben Orenstein. Ben gives an update on leaving the company he worked for ThoughtBot, to pursue entrepreneurial aspirations. He most recent work is a call Refactoring Rails. Ben speaks about the work that went into creating this course and working with Rail on this type of platform. Ben dives into the course features such as testing practices, coding practices, code quality, and much more. In particular, we dive pretty deep on: What makes Rail development slow to a crawl? Active record callbacks Slow tests Testing best practices Who will this course benefit? Coding practices As an advance dev. It is still good to get another perspective Keeping the configuration up to date. Working in teams - Code quality and quantity Leaving ThoughtBot Surrendering relationship after leaving the job Solo entrepreneurship - is this work? Working in confidence Working on Elm Refactoring old version of rails Refactoring code Dev. Ops team Technical debt 30 Day Code Quality Challenge and much much more. Links: Refactoring Rails ThoughtBot Podcast - The Art Product 30 Day Code Quality Challenge @r00k benorenstein.com Picks: David What Makes Us Feel Great About Our Work? Dave Sentury Chuck Course - How To Find A Job NeuYear Battery Powered Soldering Iron Eric MetaBase Ben Gem - Adder Extras Book - DeskBound
Panel: Charles Max Wood Dave Kimura Eric Berry David Richards Special Guest: David Richards In this episode, the Ruby Rogues speak with a return guest, Ben Orenstein. Ben gives an update on leaving the company he worked for ThoughtBot, to pursue entrepreneurial aspirations. He most recent work is a call Refactoring Rails. Ben speaks about the work that went into creating this course and working with Rail on this type of platform. Ben dives into the course features such as testing practices, coding practices, code quality, and much more. In particular, we dive pretty deep on: What makes Rail development slow to a crawl? Active record callbacks Slow tests Testing best practices Who will this course benefit? Coding practices As an advance dev. It is still good to get another perspective Keeping the configuration up to date. Working in teams - Code quality and quantity Leaving ThoughtBot Surrendering relationship after leaving the job Solo entrepreneurship - is this work? Working in confidence Working on Elm Refactoring old version of rails Refactoring code Dev. Ops team Technical debt 30 Day Code Quality Challenge and much much more. Links: Refactoring Rails ThoughtBot Podcast - The Art Product 30 Day Code Quality Challenge @r00k benorenstein.com Picks: David What Makes Us Feel Great About Our Work? Dave Sentury Chuck Course - How To Find A Job NeuYear Battery Powered Soldering Iron Eric MetaBase Ben Gem - Adder Extras Book - DeskBound
Panel: Charles Max Wood Dave Kimura Eric Berry David Richards Special Guest: David Richards In this episode, the Ruby Rogues speak with a return guest, Ben Orenstein. Ben gives an update on leaving the company he worked for ThoughtBot, to pursue entrepreneurial aspirations. He most recent work is a call Refactoring Rails. Ben speaks about the work that went into creating this course and working with Rail on this type of platform. Ben dives into the course features such as testing practices, coding practices, code quality, and much more. In particular, we dive pretty deep on: What makes Rail development slow to a crawl? Active record callbacks Slow tests Testing best practices Who will this course benefit? Coding practices As an advance dev. It is still good to get another perspective Keeping the configuration up to date. Working in teams - Code quality and quantity Leaving ThoughtBot Surrendering relationship after leaving the job Solo entrepreneurship - is this work? Working in confidence Working on Elm Refactoring old version of rails Refactoring code Dev. Ops team Technical debt 30 Day Code Quality Challenge and much much more. Links: Refactoring Rails ThoughtBot Podcast - The Art Product 30 Day Code Quality Challenge @r00k benorenstein.com Picks: David What Makes Us Feel Great About Our Work? Dave Sentury Chuck Course - How To Find A Job NeuYear Battery Powered Soldering Iron Eric MetaBase Ben Gem - Adder Extras Book - DeskBound
Tweet this Episode Allison is a developer in the Washington DC area. She is a non-profit executive turned developer. She helps organize the RubyConf and RailsConf Scholar Program. She organizes a local meetup call Silver Spring Ruby. She works at Collective Idea. The Rogues talk to Allison about being a mom in coding and work-life balance. They also talk about transitioning from non-profits to coding. This episode goes into depth on: Prioritizing your family and still having a great career Goal setting, focus, and growth Team collaboration Contributing to open source and much, much more... Links: Delayed Job Allison's Blog Baby Driven Development talk Rails Girls Ruby Dev Summit RSpec Minitest RailsCasts Interactor Gem Leah Silber from Tilde tweet Tilde article on Baby at Work Mother Coders RailsBridge Allison on Twitter Picks: Eric: Gallup Strengths Test Metabase Allison: Sticky Note Game by TableXI WriteSpeakCode Ruby Jewel Crystal DISC Assessment Dave Rails Guides
Tweet this Episode Allison is a developer in the Washington DC area. She is a non-profit executive turned developer. She helps organize the RubyConf and RailsConf Scholar Program. She organizes a local meetup call Silver Spring Ruby. She works at Collective Idea. The Rogues talk to Allison about being a mom in coding and work-life balance. They also talk about transitioning from non-profits to coding. This episode goes into depth on: Prioritizing your family and still having a great career Goal setting, focus, and growth Team collaboration Contributing to open source and much, much more... Links: Delayed Job Allison's Blog Baby Driven Development talk Rails Girls Ruby Dev Summit RSpec Minitest RailsCasts Interactor Gem Leah Silber from Tilde tweet Tilde article on Baby at Work Mother Coders RailsBridge Allison on Twitter Picks: Eric: Gallup Strengths Test Metabase Allison: Sticky Note Game by TableXI WriteSpeakCode Ruby Jewel Crystal DISC Assessment Dave Rails Guides
Tweet this Episode Allison is a developer in the Washington DC area. She is a non-profit executive turned developer. She helps organize the RubyConf and RailsConf Scholar Program. She organizes a local meetup call Silver Spring Ruby. She works at Collective Idea. The Rogues talk to Allison about being a mom in coding and work-life balance. They also talk about transitioning from non-profits to coding. This episode goes into depth on: Prioritizing your family and still having a great career Goal setting, focus, and growth Team collaboration Contributing to open source and much, much more... Links: Delayed Job Allison's Blog Baby Driven Development talk Rails Girls Ruby Dev Summit RSpec Minitest RailsCasts Interactor Gem Leah Silber from Tilde tweet Tilde article on Baby at Work Mother Coders RailsBridge Allison on Twitter Picks: Eric: Gallup Strengths Test Metabase Allison: Sticky Note Game by TableXI WriteSpeakCode Ruby Jewel Crystal DISC Assessment Dave Rails Guides
Sameer Al-Sakran and Tom Robinson from Metabase joined the show to discuss Metabase - their open source tool that’s laying the foundation of their goals for open source business intelligence.
Sameer Al-Sakran and Tom Robinson from Metabase joined the show to discuss Metabase - their open source tool that’s laying the foundation of their goals for open source business intelligence.