Logo
    Search

    Potluck EP × Is Redux Dead × Learning Quickly × Developing Solo × Specialist vs Generalist × Funnest Projects × Wes’ BBQ Course

    enMay 09, 2018

    Podcast Summary

    • Processing large data sets from third-party APIs in Node.js without paginationUsing streams instead of buffers is more memory-efficient and effective for handling large data sets from third-party APIs in Node.js without pagination.

      When dealing with large data sets from third-party APIs in Node.js without pagination, it's more efficient to use streams instead of buffers. This was discussed during a potluck episode of the Syntax podcast, where the hosts answered a question from a listener named Sarah. Sarah asked about processing huge data (over 740 megabytes) from a third-party API without pagination in Node.js. The hosts, Scott Talinski and Wes Boss, shared their experiences with handling large data sets in the past and explained how they learned the importance of using streams instead of buffers. They gave an example of a Facebook application for a vitamin company that required importing over a million pin codes and their associated data into MongoDB. When they tried to read all the data into memory at once, their computer couldn't handle it, and the process crashed. To avoid this issue, they suggested using streams, which allow data to be processed in smaller chunks. This approach reduces the memory requirements and makes it possible to handle large data sets more efficiently. The hosts encouraged listeners to submit their questions for the podcast, and they provided a link in the show notes for doing so. The episode was sponsored by Fluent Conf and FreshBooks.

    • Streaming large files in Node.jsStreaming large files in Node.js is more efficient than buffering the entire file into memory. GraphQL, a new querying technology, is gaining popularity and may replace REST APIs in some applications.

      When dealing with large files in Node.js, it's more efficient to use streaming instead of buffering. This approach allows you to process data in smaller chunks as it comes in, rather than loading the entire file into memory at once. This is particularly useful when dealing with comically large files that wouldn't fit into memory all at once. Another new and shiny thing in web development that's gaining popularity is GraphQL, with Apollo being a popular library for implementing it. GraphQL offers a more efficient and pleasant querying experience compared to traditional REST APIs. Once developers use it, they often find it hard to go back to REST. In fact, GraphQL is expected to become more common in the next few years and may even replace REST in some applications. Additionally, GraphQL servers can consume existing REST APIs and add additional functionality on top. This flexibility makes GraphQL a powerful tool for developers, as it can be used in any programming language.

    • Exploring the Power of GraphQL with GraphQL PlaygroundGraphQL offers a significant improvement in data querying and fetching with its client-defined data structure, and GraphQL Playground is a valuable tool for testing queries, visualizing data, and debugging slow queries.

      GraphQL is an emerging technology that is gaining popularity and is expected to continue growing in the next 5 years. It offers a significant improvement in data querying and fetching by allowing clients to define the structure of the data they need, making it a joy to use. GraphQL Playground is an excellent tool that comes with GraphQL servers, providing a graphical interface for testing queries, visualizing data, and even debugging slow queries. The tool offers features like automatic schema reloading, query history, and tracing to help developers optimize their applications. Additionally, the speakers expressed the importance of having hobbies outside of work to promote personal growth and prevent burnout. They also shared their desire to create a cooking series, showcasing their passion for cooking and learning new things. When it comes to learning a new language or framework, the speakers suggested trying a combination of resources, such as books, documentation, and videos, to find the learning style that works best for each individual.

    • Approaching projects as a team of oneKeep code clean, organized, well-documented, make good tech choices, and attend conferences for continuous learning.

      When you're the only developer on a team, it's essential to approach your projects as if you were working on a team and passing it off to someone else. This means keeping your code clean, organized, and well-documented with clear commit messages. Additionally, making good decisions about the technology you use and considering its longevity is crucial. The speaker, who has experience being the only developer on various projects, emphasized the importance of leaving a project in excellent condition for potential future team members or yourself if you ever need to return to it. A well-documented project not only benefits the next developer but also reflects positively on you as a developer. The speaker also mentioned the importance of attending conferences like Fluent Conf to continue learning and growing in your career.

    • Context API in React offers an alternative to ReduxThe Context API simplifies data passing between components without Redux, but Redux still offers additional benefits for complex apps

      The new Context API in React offers an alternative solution to passing data across multiple levels of components without the need for Redux. The Context API allows developers to create a context in a file, hold data and functions in it, and use a render prop to pass these down to components that are deeper in the component tree. This can help simplify the process of moving data around an application and reduce the need for prop drilling. However, Redux still offers additional benefits such as taking data and its updating logic outside of components, making it easier to test and providing more advanced tooling. While the Context API may replace the need for Redux for some use cases, Redux still offers unique features that make it a valuable tool for more complex applications. The React conference in San Jose in June offers workshops on React, Angular, WebAssembly, GraphQL, and debugging front end performance, among others, which attendees can benefit from to gain hands-on experience and deepen their knowledge in these areas.

    • Enjoying Control and Experimentation in ProjectsRiley shared his experience of enjoying projects where he has full control, experimenting with new tech, and building scraping projects for the unique problem-solving opportunities they present.

      The Context API has simplified the need for Redux in certain situations, allowing developers to manage state more easily without having to learn an additional platform. Riley shared his experience of enjoying working on projects where he has full control and can use them as a creative playground for experimenting with new tech. He mentioned his level tutorial site and a b-boy tools app as examples. Another intriguing project he mentioned was building scraping projects, where he enjoyed the challenge of figuring out how to extract data from websites without any rules or documentation. While he has enjoyed working on his own platform, the most fun he's had was in the past when he built scraping projects, which presented unique problem-solving opportunities and allowed him to create something that improved his skills as a developer. A fun follow-up question was posed about a project he didn't get to work on that would have been exciting, but he didn't share any details about it. Overall, the discussion highlighted the importance of having control and the ability to experiment in projects, leading to a more enjoyable development experience.

    • Sharing experiences of missed opportunities and learning from themGrowth and learning are essential for seizing opportunities. While it's natural to feel discouraged by projects beyond our abilities, expanding our knowledge and skills can help us prepare for future chances. JWT is a valuable tool for simplifying authentication processes and enhancing application security.

      Both individuals in this discussion had opportunities to work on exciting projects that were ultimately out of their skill level at the time. The first person shared their experience with creating a webcam project that gained significant attention, but they missed out on taking it to the next level due to lack of expertise in 3D technology. The second person recounted the chance to build the Insane Clown Posse website, but the team decided against it due to unfamiliarity with the client's niche culture. JWT (JSON Web Token) was discussed as an alternative to session cookies for managing user authentication. It allows users to store tokens in local storage or cookies and send them along with every request, eliminating the need to maintain sessions on the server. The discussion highlighted the benefits of JWT, such as stateless authentication and ease of implementation in JavaScript applications. Reflecting on these stories, it's essential to acknowledge that growth and learning are crucial for seizing opportunities. While it's natural to feel discouraged when faced with projects that seem beyond our abilities, we can always strive to expand our knowledge and skills to prepare for future opportunities. In the context of JWT, it's an excellent tool for developers looking to simplify authentication processes and improve application security. By understanding its benefits and capabilities, developers can make informed decisions about implementing JWT in their projects.

    • Mastering a technology leads to expertise and employabilityConsider use case and personal preferences for authentication methods, focus on mastering a few technologies for expertise and employability.

      Focusing on mastering a particular technology can lead to greater confidence, employability, and expertise in related areas. During the discussion, the importance of JWT (JSON Web Tokens) as an authentication method was highlighted, offering the ability to store additional user data. However, the speaker emphasized that it's essential to consider the specific use case and personal preferences when choosing between various authentication methods like JWT, cookies, or sessions. Another topic touched upon was the importance of focusing on mastering a few technologies rather than trying to be proficient in many. The speaker shared their personal experience of being a generalist and the advice they received to narrow their focus and deepen their knowledge in specific areas. By focusing on one technology, individuals can become experts, improving their employability and confidence in their skills. In conclusion, the key takeaway is to consider the specific use case and personal preferences when choosing authentication methods and focus on mastering a few technologies to deepen expertise and improve employability.

    • Consistency is key to mastering a craftChoose the right tools and dedicate time to master a craft for success in software development or any field.

      Developing a deep skill or mastering a craft requires consistent practice and dedication. The speaker shares his personal experience of becoming an expert in smoking, which came naturally after years of practice. He emphasizes that it's not about putting in a lot of time and effort all at once but rather making it a part of your life. This concept can be applied to any area of expertise, including software development. Another topic discussed was the popularity of Ruby on Rails for building SaaS (Software as a Service) due to its efficiency and ease of use. The framework comes with built-in features for interacting with databases, user accounts, and other common application functions, making it an attractive choice for startups looking to move quickly. Other frameworks like Laravel and Laravel Spark offer similar benefits in different programming languages. Overall, the conversation highlights the importance of choosing the right tools and dedicating time and effort to mastering a craft or building a successful business.

    • Discussion on web development tools and techniquesRuby on Rails scaffolding tools save time and help set up projects quickly. SSR offers benefits like initial loading times, SEO support, and ease of development, but can be complex. Next.js simplifies SSR implementation.

      There's a ongoing debate in web development about the use of boilerplates, starter files, and scaffolding tools versus building everything from scratch. The speakers in this discussion mentioned their experiences with Ruby on Rails and its scaffolding tools, which they found very helpful in saving time and setting up projects quickly. They expressed a wish for similar tools in other platforms, such as Meteor, but acknowledged that the specialized nature of these platforms might require custom solutions instead. Another topic discussed was the comparison between single page applications (SPA) and server side rendered (SSR) applications. The speakers recommended SSR for larger projects due to benefits like initial loading times, SEO support, and ease of development. However, they acknowledged that SSR can be more complex and time-consuming than SPAs. They recommended Next.js for its simplicity in implementing SSR. For those looking to build an online learning platform, the speakers suggested considering the benefits of SSR and using platforms like Next.js for its ease of implementation. They also recommended checking out resources like learn node and hackathon starter for quick starts in Node.js web development.

    • Building a custom learning platform for unique featuresWes built a custom learning platform to differentiate and offer new features, such as country code discounts, but won't implement a library for calculating fair prices due to a long list of tasks.

      Both Wes and Scott have custom-built their own learning platforms using JavaScript stacks due to their unique needs and competitive edge. While there are several learning management systems (LMS) available like Teachable and Moodle, Wes chose to build his own to offer new features and differentiate himself in the market. He shares an example of implementing country code discounts, which was unique at the time and brought success. However, deciding which country gets what discount is Wes's private information, and he doesn't want to deal with potential controversies or becoming an economist. For those interested in calculating fair prices, there's a library available using an API. Wes acknowledges the interest but has a long list of tasks and won't be implementing it right away. He also mentions that some countries, like India, have a culture of bargaining, which results in entertaining unusual emails but not engaging in lengthy negotiations.

    • App Recommendations: Parcel and NeboListeners can submit questions for future episodes and the hosts shared two useful apps: Parcel for tracking online orders and Nebo for note-taking and journaling

      The hosts of the show encourage listeners to submit their questions for future episodes, as they often receive the same questions multiple times and use them to create new shows on popular topics. The hosts also shared their "sick picks" of the day, which were apps that make everyday tasks easier. The first app, Parcel, helps users track all their online orders in one place and receive notifications when delivery status changes. The second app, Nebo for iPad, is a note-taking app that converts handwriting into text, making it an excellent tool for taking notes and journaling. The hosts did not discuss webpack or bundling during this segment.

    • Experience the best of handwritten notes and digital tools with Notebook appNotebook app lets users write, draw, resize, move, and delete content, offering a versatile and engaging notetaking solution that combines the feel of handwritten notes with digital functionality.

      Notebook, an app mentioned in the discussion, offers a unique experience by combining the feel of handwritten notes with the functionality of digital tools. Users can write, draw, resize, move, and delete content, making it a versatile and engaging notetaking solution. The app also caters to those who enjoy traditional notebooks but seek the benefits of digital tools. Additionally, the speaker introduced a new course, Headless WordPress, available on leveluptutorials.com, which covers various aspects of using WordPress in a headless manner, including working with APIs, components, and different frameworks like Next JS and Gatsby. The speaker also encouraged following him on Instagram (@wesboss) for a mix of personal and web development content.

    Recent Episodes from Syntax - Tasty Web Development Treats

    790: State of JS 2023 Reactions

    790: State of JS 2023 Reactions

    Scott and Wes dive into the 2023 State of JavaScript survey, breaking down the latest trends and pain points in front-end frameworks, build tools, and JavaScript runtimes. Tune in for their hot takes and insights on what’s shaping the JavaScript landscape this year!

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    789: Do More With AI - LLMs With Big Token Counts

    789: Do More With AI - LLMs With Big Token Counts

    Join Scott and CJ as they dive into the fascinating world of AI, exploring topics from LLM token sizes and context windows to understanding input length. They discuss practical use cases and share insights on how web developers can leverage larger token counts to maximize the potential of AI and LLMs.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    Scott and CJ chat with Paul Copplestone, CEO and co-founder of Supabase, about the journey of building an open source alternative to Firebase. Learn about the tech stack, the story behind their excellent documentation, and how Supabase balances business goals with open-source values.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 Who is Paul Copplestone?
    • 01:17 Why ‘Supa’ and not ‘Super’?
    • 02:26 How did Supabase start?
    • 08:42 Simplicity in design.
    • 10:32 How do you take Supabase one step beyond the competition?
    • 12:35 How do you decide which libraries are officially supported vs community maintained?
      • 15:17 You don’t need a client library!
    • 16:48 Edge functions for server-side functionality.
    • 18:51 The genesis of pgvector.
    • 20:59 The product strategy.
    • 22:25 What’s the story behind Supabase’s awesome docs?
    • 25:26 The tech behind Supabase.
    • 35:46 How do you balance business goals with open source?
    • 42:01 What’s next for Supabase?
    • 44:15 Supabase’s GA + new features.
    • 48:24 Who runs the X account?
    • 50:39 Sick Picks + Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    787: You Should Try Vue.js

    787: You Should Try Vue.js

    Scott and CJ dive deep into the world of Vue.js, exploring what makes this frontend framework unique and why it stands out from React and Svelte. CJ gives a comprehensive tour, covering everything from getting started to advanced features like state management and Vue’s built-in styles.

    Show Notes

    Vue.js: The Documentary.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    786: What Open Source license should you use?

    786: What Open Source license should you use?

    Scott and CJ dive into the world of open source, breaking down its meaning, benefits, and the various types of licenses you’ll encounter. From permissive licenses like MIT and Apache 2.0 to copy-left licenses such as GNU GPLv3, they’ll help you choose and apply the right license for your project.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    785: What’s Next for NextJS with Tim Neutkens

    785: What’s Next for NextJS with Tim Neutkens

    Scott and Wes dive into the world of Next.js with special guest Tim Neutkens from Vercel. They explore the latest updates, including the React Compiler and React Server Components, discussing their impact on developer workflows and the future of Next.js development.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 What does the React Compiler do?
    • 05:04 Will React Compiler help with managing Context?
    • 06:39 What happens if you’re not using a React Compiler?
    • 09:30 Will this work on any NextJS version?
    • 12:18 What are React Server Components?
    • 16:28 Shipping all the data inside an encapsulated component.
    • 20:17 Clearing up the frustrations around retrofitting server components.
    • 23:13 Handing migration.
    • 28:30 Is this just a fetch request with props?
    • 36:41 How closely are the NextJS and React teams working?
    • 41:53 Will we ever get Async Client Components?
    • 43:52 Async Local Storage API.
    • 45:31 Turbopack.
    • 57:51 Sick Picks & Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    784: Logging × Blogging × Testing × Freelancing

    784: Logging × Blogging × Testing × Freelancing

    In this Potluck episode, Scott and Wes tackle listener questions on modern blogging, website environmental impact, and using LangChain with LLMs. They also cover CSS hyphens, unit vs. integration testing, and balancing web development with new parenthood.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    Scott and Wes dive into the world of browser caching for audio files, exploring the File System API and the Cache API. They discuss size restrictions across different browsers, how tools like Riverside.fm leverage IndexedDB, and walk through code examples for creating, retrieving, and managing cached audio data.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    782: The Developer’s Guide To Fonts with Stephen Nixon

    782: The Developer’s Guide To Fonts with Stephen Nixon

    Scott and CJ are joined by Stephen Nixon of ArrowType to delve into the world of fonts and type for developers. They explore the intricacies of font creation, the utility of variable fonts, and offer tips for making visually appealing typography on the web.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    In this potluck episode of Syntax, Scott and CJ serve up a variety of community questions, from the nuances of beginner vs. advanced TypeScript to the pros and cons of SvelteKit. They also discuss falling out of love with React, shipping private packages via NPM, and the eternal struggle of always starting but never finishing projects.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    Related Episodes

    Supper Club × Open Table LIVE SHOW

    Supper Club × Open Table LIVE SHOW

    In this supper club episode of Syntax, Wes and Scott recorded a live open table episode with guests calling in to talk about Wasm, building Riverside.fm, home networking, getting a job at Microsoft, Svelte and Sveltekit, htmx, and more!

    Auth0 - Sponsor

    Auth0 is the easiest way for developers to add authentication and secure their applications. They provides features like user management, multi-factor authentication, and you can even enable users to login with device biometrics with something like their fingerprint. Not to mention, Auth0 has SDKs for your favorite frameworks like React, Next.js, and Node/Express. Make sure to sign up for a free account and give Auth0 a try with the link below. https://a0.to/syntax

    Appwrite - Sponsor

    Appwrite is a self-hosted backend-as-a-service platform that provides developers with all the core APIs required to build any application. Get free cloud credits by signing up for early access to the Appwrite Cloud launch!

    Show Notes

    Tweet us your tasty treats

    Our Stacks Explained

    Our Stacks Explained

    In this episode of Syntax, Wes and Scott talk through the tech stack they use to manage their course websites.

    Kontent by Kentico - Sponsor

    Kontent by Kentico is a headless CMS that provides live editing experience to non-technical users and hands you the technical tools to build websites, mobile apps, voice assistants, or anything else where you need content. Use REST API or GraphQL and get your content via the global Fastly CDN. Designed to unify all your content and operations, in compliance with ISO27001 and SOC2Type2 certifications.Spin up a new project today and discover Kontent.

    LogRocket - Sponsor

    LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

    .TECH Domains - Sponsor

    Dot Tech domains has launched a new game with wicked prizes. It’s a windows 98 inspired game where you need to find and solve puzzles in each of the drives. This is unreal and you need to see it to believe it - good luck and start the game March 25th at go.tech/syntaxbtc.

    Show Notes

    ××× SIIIIICK ××× PIIIICKS ×××

    Shameless Plugs

    Tweet us your tasty treats

    How to Implement Authentication in Your BFF Architecture in Minutes

    How to Implement Authentication in Your BFF Architecture in Minutes

    This story was originally published on HackerNoon at: https://hackernoon.com/how-to-implement-authentication-in-your-bff-architecture-in-minutes.
    In the web development field, auth (authentication + authorization) plays a vital role in securing user access and protecting sensitive data.
    Check more stories related to cybersecurity at: https://hackernoon.com/c/cybersecurity. You can also check exclusive content about #authentication, #clerk, #programming, #web-development, #typescript, #webdev, #graphql, #frontend-development, and more.

    This story was written by: @wunderstef. Learn more about this writer by checking @wunderstef's about page, and for more stories, please visit hackernoon.com.

    Auth (authentication + authorization) plays a vital role in securing user access and protecting sensitive data. Implementing auth solely in the frontend is easy, but is usually a terrible idea. Even when done in the backend, it can have its drawbacks. This article explores these limitations and presents a compelling third alternative: the Backends-for-Frontends pattern.

    5 Essential Values in Extreme Programming

    5 Essential Values in Extreme Programming

    Season 7 Epsiode 2
    A weekly podcast about programming, development, and design through the lens of amazing books, chapter-by-chapter

    5 Essential Values in Extreme Programing
    Extreme Programing By Kent Beck - Chapters 2,3 and 4

    Chapter 2 - Learning to Drive
    frequent, small corrections
    don't wait to find out if you are going in the wrong direction
    Chapter 3 - Values, Principles, and Practices
    values are the roots of things we like and don't like in a situation.
    Making values explicit is important because without values, practices quickly become rote (habitual repetition), activities performed for their own sake buck lacking any purpose or direction.

    practices are evidence of values
    Practices are clear. Everyone knows if I've attended the morning standup meetings. Whether I really valuecommunication is fuzzy. Whether I maintain practices that enhance communication is concrete.

    principles bridge the gap between values and practices
    START HERE
    Chapter 4 - Values
    Chapters 2 and 3 are small introductory sections, here is the TLDR:

    Software, teams, and requirements change. We need to be able to adapt
    to such change. The next 3 sections will be about values, practices,
    and principles of Extreme Programming
    Chapter 4 is about values

    Everyone who touches software has a sense of what matters. One person might think what really matters is carefully thinking through all conceivable design decisions before implementing. Another might think what really matters is not having any restrictions on his own personal freedom.

    What actually matters is not how any given person behaves as much as how the individuals behave as part of a team and as part of an organization.

    Sometimes it's easy to bikeshed over things like code style. Arrow functions vs function declaration, inline functions vs methods, etc
    XP embraces 5 values to guide development

    1. Communication
    2. Simplicity
    3. Feedback
    4. Courage
    5. Respect
    6. Communication
      When you encounter a problem, ask yourselves if the problem was caused by a lack of communication. What communication do you need now to address the problem? What communication do you need to keep yourself out of this trouble in the future?

    JP: Retro feedback and postmortem feedback often includes communication - both good and bad
    2. Simplicity
    To make a system simple enough to gracefully solve only today's problems is hard work.

    "What is the simplest thing that could possible work?"

    JP: Emphasis on "today's problems" - how can we provide value to the customer without compromising on theirexperience and without overengineering a solution?

    JS: Stakeholder communicatinon, actively work to include everyone in at the key touchpoints, initial concept, mokcup, prototype, final review.

    JS: Have something to look at / talk about. Somebody make a mockup, somebody write some pseudocode

    1. Feedback
      Being satisfied with improvement rather than expecting instant perfection, we use feedback to get closer and closer to our goals. Feedback comes in many forms.

    opinions about an idea, yours or your teammates

    how the code looks when you implement the idea

    whether the tests were easy to write

    whether the tests run

    how the idea works once it has been deployed

    JP: Be agile! Look to build an MVP. Get analytics on things and make decisions from there. It's hard to invest in an idea entirely and then end up ditching the whole thing. Everyone feels burned.

    JS: Again, think through key touchpoints, (99%, 50%, 1%)[https://medium.com/the-mission/how-to-scale-yourself-the-99-50-1-framework-7798518f36e1]

    1. Courage
      Courage as a primary value without counterbalancing values is dangerous. Doing something without regard for the consequences is not effective teamwork. [...] The courage to speak truths, pleasant or unpleasant, fosters communication and trust. The courage to discard failing solutions and seek new ones encourages simplicity. The courage to seak real, concrete answers creates feedback.

    JP: Being able to speak up when you disagree with people's ideas and being able to listen and exercising patience.
    JS: Being honest with yourslef and stakeholders about timelines, replytimes, scope.
    JS: Having the courage to set boundries. - "I need this by tomorrow" - I'm sorry, I can't make that happen for you.
    5. Respect
    If members of a team don't care about each other and what they're doing, XP won't work. If members of a team don't care about a project, nothing can save it. Every person whose life is touched by software development has equal value as a human being. No one is intrinsically worth more than anyone else.

    JP: It's much easier when everyone respects each other.
    JS: Reconize there's rarely a "wrong" approach, avoid letting pesonal preference becoming the "right" way.
    JS: Reconize positives, "what I like about this is... however" Try to keep things in a positive context.
    6. Other
    This list isn't exhaustive. The important thing is that your team should align on core values.
    Other Values: safety, security, predictability, and quality-of-life <- I feel like these need an episode!
    Chapter conclusion:
    Values don't provide concrete advice about what to do in software development. Because of the distance between values and practices, we need a way to bridge the gap between them. Principles are the tool we need.

    Picks
    JP: Pair code review sessions
    JS: the (99/50/1 framework)[https://medium.com/the-mission/how-to-scale-yourself-the-99-50-1-framework-7798518f36e1]
    JS: Basecamp's new book - (Shape Up)[https://basecamp.com/shapeup]

    OCI Identity and Access Management

    OCI Identity and Access Management

    Data breaches occur more often than we’d like them to. As businesses embrace remote work practices, IT resources are more at risk than ever before. Oracle Identity and Access Management (IAM) is an essential tool for protecting enterprise resources against cybersecurity threats. Join Lois Houston and Nikita Abraham, along with special guest Rohit Rahi, as they examine IAM and the key aspects of this service, and discuss how you can control who has access to your resources.

    Oracle MyLearn: https://mylearn.oracle.com/
    Oracle University Learning Community: https://education.oracle.com/ou-community

    Twitter: https://twitter.com/Oracle_Edu
    LinkedIn: https://www.linkedin.com/showcase/oracle-university/

    Special thanks to Arijit Ghosh, Kiran BR, Rashmi Panda, David Wright, the OU Podcast Team, and the OU Studio Team for helping us create this episode.