Kent C. Dodds chats with developers.
The podcast Chats with Kent C. Dodds is created by Kent C. Dodds. The podcast and the artwork on this page are embedded on this page using the public podcast feed (RSS).
In this final episode of season five, Kent C. Dodds recaps the enriching conversations with the speakers of Epic WebConf 2024, expressing gratitude and excitement for the upcoming event in April. He encourages listeners, whether planning to attend the conference or not, to revisit the season's episodes for timeless web development advice. While season six remains unplanned, Kent thanks his audience for their continued support and hints at future engagements, urging them to stay tuned.
Meet Kent at Epic Web Conf.
In this episode, Kent C. Dodds interviews Dan Farrelly, the CTO and co-founder of Jest, about his journey from front-end engineer to CTO, the challenges of scaling a tech company, and the importance of staying small to maintain agility and innovation. Farrelly shares insights into the evolving challenges of a tech team, from infrastructure to front-end development, and emphasizes the value of a generalist approach in a small, dynamic team. The conversation also delves into Farrelly's upcoming conference talk on improving long-standing APIs and his enthusiasm for learning from and contributing to the developer community.
Meet Dan at Epic Web Conf.
In this podcast, Zeno Rocha, open-source advocate and founder of Resend, joins host Kent to discuss the dynamic world of web development and the shift towards SDK-first strategies. They reflect on the evolution of developer tools and the significance of user experience in product development. Rocha and Kent stress the necessity of high standards to stand out in web development, and they also touch upon the value of developer conferences for fostering relationships and collaborations. They look forward to engaging with peers at an upcoming event in Park City, Utah, and consider potential topics like the tech industry comparison between Brazil and the US, initiating open-source projects, and strategies for growing a user-base.
Meet Zeno at Epic Web Conf.
In the podcast, Simon, an advocate for Tailwind CSS, shares his insights on its impact on web development and design. Tailwind CSS serves as a facilitator between design and development teams, streamlining collaborations and enabling quick translation of design concepts into code. He highlights how it enhances learning, boosts efficiency, and, despite some tradeoffs, provides significant workflow benefits by integrating design tool shortcuts. Simon also teases an upcoming conference where the potential of Tailwind CSS will be further explored.
Meet Simon at Epic Web Conf.
In this episode, host Kent and Madison Kanna, the upcoming MC for Epic WebConf, discuss the benefits of attending conferences like Epic WebConf beyond just the informational content. They delve into how conferences can be a goldmine for networking, transforming online contacts into real-world connections. Madison explains her path and how initiatives such as her Sunday book club can cultivate community and continuous learning. Kent offers advice to introverts on navigating networking at these events, and together, they highlight their excitement for the Epic WebConf, underscoring the professional and personal growth opportunities it promises, further amplified by Madison's promotional efforts for the conference.
Meet at Epic Web Conf.
In this episode, Tyler Benfield, a staff software engineer at Prisma, joins Kent to explore the world of databases and their critical role in full-stack development. Tyler shares insights from his journey from front-end development to mastering database performance and optimization, while also touching on the trend of front-end developers upskilling to become full-stack, leveraging languages like JavaScript and TypeScript. The conversation concludes with a preview of Tyler's session at the upcoming Epic Web Conference where he will cover topics such as SQLite, varying database types, performance tuning, and share personal anecdotes, offering an engaging learning opportunity for web developers.
Meet Tyler at Epic Web Conf.
In the podcast episode featuring Sunil Pai, a former member of the React.js core team and developer at Cloudflare, the focus is on PartyKit, his new project set to transform real-time application development. PartyKit introduces features like real-time updates and server-rendering, aimed at facilitating the creation of dynamic, chat-GPT-like AI experiences. Sunil intends to showcase real-time apps and PartyKit at Epic WebConf, emphasizing the event's value in fostering networking and the exchange of industry insights for enhancing user experiences.
Meet Sunil at Epic Web Conf.
In a conversation with Kent, Una, an expert in UI and a presenter at the upcoming EpicWebConf, delves into the dynamic world of modern web development. She underscores the importance of keeping up with the advances in UI capabilities and CSS, the shift towards more declarative techniques, and the necessity of adapting to new web standards. Una champions the vital role of community input in shaping web development and looks forward to the invaluable exchanges that come from in-person interactions, especially as the industry anticipates returning to face-to-face events post-pandemic. Her discussion calls on developers to remain adaptive, engage actively with their peers, and embrace the continual evolution of the web.
Meet Una at Epic Web Conf.
In the latest podcast, Glauber Costa, CEO of Turso and an ex-Red Hat contributor, speaks with Kent about the often overlooked yet robust SQLite database technology. Sharing their personal experiences with SQLite, they discuss its functionality, suitability in production, and the importance of version control in document evolution. Costa encourages developers to recognize SQLite's potential and looks forward to learning more about real-world challenges at the upcoming web development conference, promising insights into effectively utilizing databases in technology projects.
Meet Glauber at Epic Web Conf.
In the podcast hosted by Kent C. Dodds, Michael Chan, celebrated as Chantastic, shares his insights on the evolution of web development and the critical role of design systems. He discusses how design systems should evolve with product development, the importance of documentation, and the dynamic nature of design systems contrary to the belief that they are static. Michael advocates for the empowering aspect of creating personal software and looks forward to the future where emerging tools will not only prevent breaks but also enhance development workflows. The conversation ends with a positive outlook on the web’s future and the excitement for the Epic WebConf, seen as a springboard for new ideas and community engagement.
Meet Michael at Epic Web Conf.
In a conversation with Kent, Ryan Florence, co-creator of Remix and React Router, discusses how web development and user experience intersect, and the impact of personal interaction at events like the upcoming Epic WebConf. He updates listeners on the Remix singles project, which integrates extensive open-source work with his business ventures, and tackles the complexities developers face when merging existing React applications with new frameworks. Ryan also addresses the double-edged nature of bundlers in web development, providing performance benefits while obscuring the underlying API. The episode concludes with a call for web applications to prioritize reliability, speed, and intentional design, as Ryan emphasizes the consequences of misleading UX design, highlighting the overarching goal of enhanced user experiences in the web development sphere.
Meet Ryan at Epic Web Conf.
In a thought-provoking dialogue, Front-end Engineer Sandrina Pereira explores the importance of web accessibility and how remote work is shaping the future of the tech industry. She discusses her role in crafting server-side validations for forms and her company's initiative to formalize a web accessibility statement, underscoring Remote.com's commitment to standards and improvement. Pereira also teases her upcoming presentation at Epic WebConf, aiming to demystify web accessibility with real-world examples and advocate for the consideration of diverse user abilities. Additionally, she reflects on the positive impact of remote work on inclusive hiring practices and the democratization of the tech field, as well as the significance of personal interactions at tech conferences.
Meet Sandrina at Epic Web Conf.
In this episode, Kent and Mark Techson, from Google's Angular team, traverse the expansive terrain of web development, drawing parallels between coding and music. Mark, blending his industry wisdom with musical passion, provides an intriguing perspective on the structural similarities between the two. He also explores the vital role of an MC in enriching event experiences and fostering engagement. Throughout the conversation, Mark’s candidness about his personal journey as a developer and parent adds a relatable dimension, painting a rich, holistic picture of life in tech.
Meet Mark at Epic Web Conf.
Developer and freelancer Jacob Paris delves into his personal evolution from game to web development, noting the core similarities like database interactions that tie different development fields together. He spotlights the efficacy of Remix in streamlining web development, particularly in UI and database interactivity, which he will explore further at Epic WebConf. Paris reflects on the critical nature of understanding the historical context of technology choices and advocates for well-justified selections in tech stacks. His upcoming conference presentation will dissect CRUD operations for effective application development, underlining the necessity of anticipating application demands for a more deliberate architectural approach. Paris looks forward to Epic WebConf both as a platform for sharing knowledge and fostering valuable community connections within the Remix sphere.
Meet Jacob at Epic Web Conf.
In this enlightening conversation, Kent C. Dodds shares his transition from a full-stack web developer to a renowned educator and community influencer within the web development sphere. He recounts his initial steps into public speaking, his experiences with rejection and eventual success in the conference circuit, and the pivotal role these platforms have played in his career.
Kent also delves into his work on creating and promoting quality web development education through platforms like testingjavascript.com, epicreact.dev, and his involvement with the Remix community. The discussion further touches on his anticipation for the upcoming Epic Web Comp, his thoughts on the evolution of web technologies like React server components, and his commitment to fostering a supportive and collaborative community through in-person events.
Kent's story is not just about technical achievements but also about the power of community engagement and the impact of sharing knowledge and opportunities within the tech ecosystem.
Meet Kent at Epic Web Conf.
In the podcast, Michelle Bakels, a seasoned software developer and the Program Director for Developer Health at G2i, joins Kent to explore the necessity of balancing a tech career with personal life to ensure overall well-being. Drawing on her experience with health challenges stemming from work stress, Michelle underscores the importance of the Developer Health Operating System initiative, which aims to promote healthier working habits in the tech world. They discuss the pitfalls of self-imposed stress, the need for effective resource management, and the role of communication in navigating the ever-evolving realm of software development, with a particular nod to the complexities of React. The session wraps up with a commitment to further discuss the crucial topic of developer health in future talks.
Meet Michelle at Epic Web Conf.
In a thought-provoking podcast with Kent, Barry McGee from Shopify shares insights on the integration of AI in web development and the evolving landscape of remote work. Having transitioned to remote working in 2016, Barry brings a wealth of experience from significant tech companies and discusses the future of web performance, AI's role in enhancing user experiences like the context-aware search in Shopify's Shop App, and the strategies for maintaining application performance at scale, including the importance of caching. As web development continues to evolve, Barry's perspectives offer a glimpse into the symbiotic relationship between AI advancements and efficient remote work practices.
Meet Barry at Epic Web Conf.
In this illuminating episode, Scott Hanselman, with over 30 years in the tech industry, including a significant tenure at Microsoft, delves into the impact of AI on web development. He reflects on his technological journey from the early days of the internet and explores AI's potential in automating routine development tasks. Scott advises on the ethical use of AI and stresses the importance of understanding technology's fundamentals for mastery. He also touches on the personal side of tech work, advocating for empowerment, authenticity, and emotional health in the field. The podcast wraps with a call to highlight positive narratives that contribute to a supportive tech community.
Meet Scott at Epic Web Conf.
In the podcast, Saron Yitbarek, the founder of Code Newbie, shares insights into empowering developers through enhanced learning resources, financial opportunities, and community building. With Code Newbie evolving into a comprehensive media company and her successful venture into designing The Story Graph, Saron highlights the importance of newsletters for personal engagement and the benefits of fostering a learning-centric community. Additionally, she underlines her commitment to financial empowerment for developers via the "Big Cash Money" community, paving the way for broader discussions at the Epic Web Dev conference.
Meet Saron at Epic Web Conf.
Lina Mahrouch, a software engineer, recounts her transition from professional gaming to web development and her subsequent mastery of Remix for full-stack applications. The podcast highlights Remix's strengths in data handling, caching, and SEO, while also pointing out common pitfalls in its use. Kent and Lina stress the importance of networking in career advancement, particularly through conferences like the upcoming Epic WebConf. Discussions also touch on the exciting potential of AI in web development and the enduring value of personal interactions in the tech industry.
Meet at Lina Epic Web Conf.
Kent C. Dodds welcomes Ben Ilegbodu to discuss his work with front-end platforms and the coined term "DivOps," focusing on non-UI aspects like configurations and optimizations that enhance app performance and developer workflows. Ben shares insights into why JavaScript's ecosystem fosters a unique need for DivOps, emphasizing its role as a legitimate discipline crucial for app optimization and improved user experiences. The conversation also touches on the diverse challenges and solutions within DivOps, expectations for the Epic WebConf in Utah, and the value of community and knowledge sharing in advancing the field. Additionally, Ben's personal goal to visit every NBA arena adds a personal touch to the discussion, illustrating the blend of professional and personal interests that enrich the tech community.
Meet Ben at Epic Web Conf.
Mandy Hartman, a front-end developer at Jenzabar, shares her insights on the importance of continuous learning in web development, drawing on her own transition from academia to tech. She discusses her hands-on learning experiences, including participation in the "#100DaysOfCode" challenge and creating personal projects for skill demonstration in job interviews. Hartman's readiness to utilize online communities for support, her application development inspired by her time in museums and archives all underscore her dedication to constant skill refinement and knowledge-sharing. Her story is a testament to the benefits of lifelong learning for both aspiring developers and those shifting careers.
Come to Epic Web Conf.
NOTE: Due to personal conflicts, Mandy will not be able to attend Epic Web Conf after all. Maybe next year!
In the podcast, Artem Zakharchenko, a software engineer specializing in APIs, delves into his journey shifting from his job to focus on open-source contributions, notably the Mock Service Worker library. He emphasizes the importance of efficient testing in software development and his commitment to enhancing his knowledge and the tools he develops, such as adding WebSocket support to MSW. His upcoming workshop at the Epic Web Conference will cover the essentials of automated testing and writing assertions, encouraging developer participation in a discussion on testing challenges to foster a collaborative learning environment.
Meet Artem at Epic Web Conf.
Web developer Alex Anderson speaks with Kent about his side project, Thorium, an open-source spaceship bridge simulator game designed for science education, which also encapsulates the principles of Local First architecture. Anderson elaborates on the advantages of Local First design in ensuring direct data access and enhancing web syncing, all while balancing privacy with user experience. A specific focus is given to integrating Local First architecture with a Remix app to enable seamless online and offline app functionality. Additionally, the conversation touches on the personal joys and communal aspects of baking, showcasing the human side of tech experts engaged in pioneering web development and community-driven projects.
Meet Alex at Epic Web Conf.
In this insightful conversation with Kent, Chrome team's CSS and UI expert Adam Argyle delves into the transformative power of CSS custom properties in web development. Likening them to a basil leaf that elevates a meal, Adam teases his upcoming talk at Epic WebConf, promising to elaborate further on the subject. He spotlights current innovations in Chrome and CSS that include color variants, automated designer interactions, and dynamic features such as view transitions and scroll-driven animations. These developments not only enrich web design but also advocate for progressive enhancement to ensure a captivating and interactive user experience. Adam's expertise offers a valuable resource for staying abreast of the evolving landscape of CSS and web design.
Meet Adam at Epic Web Conf.
Kent C. Dodds introduces Season 5 of "Chats with Kent," highlighting its unique focus on the speakers of the upcoming Epic WebConf 2024 on April 11th. This season aims to familiarize listeners with the conference speakers through 10-15 minute intros, offering insights into their backgrounds and what they'll be discussing. Kent encourages both attending the conference in person for a richer experience and utilizing the available live stream for those unable to attend. This season serves as a platform for listeners to engage with the content and speakers, whether they plan to participate in-person or online.
Meet at Epic Web Conf.
The path of teaching yourself to code isn't for the faint of heart. It takes consistency, discipline, and the ability to recognize you're actually making progress. Tutorials are an excellent tool, but they are also a trap.
If all you do are tutorials, retaining the skills you learn is going to be extremely difficult. Without applying those skills they aren't going to become ingrained, and you aren't going to see how they're used in context. You also won't make progress if you aren't being consistent. Without consistency, your skills will fade and when you start coding again you'll have to relearn things instead of advancing on to more advanced topics.
In this episode, Tiger Abrodi chats about how he uses projects, habits, and self-assessment to consistently advance his skills as a programmer.
It's easy to become entrenched in what you already know how to do. You might have a fun project idea that requires creating really awesome CSS animations, and it might seem out of reach if you haven't done anything like that before. But getting through that mental block is an extremely rewarding experience. You gain technical skills and improve your general problem-solving abilities.
If you've ever struggled with side-projects, check out this episode where you'll learn how Jhey Tompkins never seems to run out of things to build and get his expert advice on how he problem solves.
There is a diverse range of philosophies when it comes to CSS. Settling on something that fits the needs of your team and application can be a real challenge. Mark Dalgleish, the co-creator of CSS Modules, has been working on an option that might make that choice less of a challenge!
Vanilla Extract is kind of like "CSS-modules in TypeScript", allowing you to write CSS in your TypeScript, with locally scoped variables, and generate static CSS files on runtime. If you're interested in getting a deeper look, as well hear more about design systems, CSS in JS, and CSS Modules, check out this episode!
Scott Moss is a retired Navy Veteran who made the career change into software engineering after becoming a father. His journey wasn't an easy one, and as a dad, he had to learn many lessons in work-life balance.
For us developers who have kids, his struggle is one that almost all of us can relate to. This industry has an extremely high ceiling, and there is a culture of grinding every day after work in order to make it big. It's easy to fall into the trap of thinking "this is what is best for my family", you have to ask yourself is it worth the sacrifice of losing that time with your kids, and are you doing it for them or are you doing it for yourself?
Though it doesn't have to be all or nothing in either direction. There are strategies you can put into place that will allow you to reach your goals in both your work and family life. But it's going to require self-awareness, emotional availability, and good time management.
So check out this episode If you want to hear more about Scott's story and get advice on making family life work while still succeeding in your career!
Whether you know it or not, we all have a "personal brand". It's the summary of the part of yourself that you present to the public. And while there are negative connotations to the term, it doesn't have to be that way.
Building a personal brand for yourself is a very useful tool for cultivating a community of like-minded people. But it's not a quick process, and it's not something that you can hack if you want the real thing. In this episode, Josh Comeau chats about how he grew a community and reputation around CSS, and how the lessons he learned can apply to you.
Constantly learning is something that we all have to do as developers. If you're a JavaScript developer then chances are CSS is something that hasn't been easy to learn for you. It doesn't have the error messages JS does and when things go wrong you can have no idea what's even happening.
Well in this episode Josh Comeau gives us some effective strategies to not only learn CSS, but to learn any library, language, framework, etc that you might want to know!
Side projects are important in our line of work. They sharpen our skills and sometimes they can even take off and lead our career in a new direction. But seeing people create these amazing projects over a weekend can be demotivating as a junior developer. "How can they do that when I'm five days deep into a todo app? What do they have that I'm missing?"
The answer might be a disappointment to some, but often it is because they have 10+ years more experience than you do. But don't let this demotivate you! You don't lack intelligence, you just have more experience.
If you want more advice on side projects and dealing with the influence of others, then listen to this episode where Stephan Meijer chats about how he switched from an architecture career into tech, side projects, and how to be true to yourself and your goals.
We have to remember that we are all human beings with social and emotional needs. Our career suffers when we fall into a pit of negativity or when we put up mental barriers that prevent us from interacting with people we might've wanted to talk to.
In this episode, Tracy Lee chats about the importance of remembering that everyone, even the awesome people speaking at the conference are all human. When we idolize people it's easy to fall into the trap of thinking they're "better" than we are. We might miss out on opportunities to speak with them out of self-consciousness.
Tracy also addresses how general negativity can impact our careers. She cautions against doom scrolling on Twitter and gives us some great strategies on how to surround ourselves with positivity, without burying our heads in the sand to the problems in our world.
Building our apps to be accessible is absolutely necessary, but building a great a11y friendly experience is extremely challenging when we ourselves aren't in a situation that requires the use of a screenreader is keyboard-only navigation.
We can't fully rely on tools to audit the a11y score of our apps. With the challenge being distinctly human, computers aren't able to get a complete picture.
That's why it's necessary for you to use these alternative methods for web navigation yourself. Try navigating your app's pages blindfolded while using a screen reader, or trying to just use the keyboard. If you find your website is unusable, consider it a bug. Accessibility is not an enhancement.
So if you're curious about what you can do to make your apps more accessible, check out this episode where Sandrina chats about methods that you can start using today.
Everything that developers do is DX (Developer Experience). But, it can be hard to know when it is appropriate to spend the time to improve the DX at your workplace. You also might be curious about what you can do to enhance the DX.
Repetitive tasks are an easy one to look out for. If you find yourself doing something again and again it's probably worth automating. This could come in the form of tests, scripts, generators, and snippets! For example, if you find yourself having to test some state that takes multiple steps to reach on your website, try using Cypress to automate reaching that state!
If improving your DX sounds interesting to you, check out this episode where Ian Sutherland chats about a variety of practical things you could be doing to enhance it.
"I should really get more involved in open-source" is something that's always on the back of our minds. You are fully aware of how rewarding it could be but that perfect opportunity to contribute never comes up.
Ian Sutherland, a maintainer of Create React App and contributor to NodeJS, used to be in that position. He had always struggled with getting into open source, he wanted to do something substantial but nothing ever came up. One day, he noticed a tiny bug in create react app. Ian quickly fixed it and put in a PR. Once he was past the first PR barrier, making additional ones was so much easier.
Fear is a big barrier to entry. People are maybe afraid they're going to do something silly, make a silly mistake and look foolish, but you really have to get over that as well. To get over it try to start small. When you start small, what was once a mountain to climb is now a hill. The stakes are much lower and success is still extremely rewarding!
Sometimes, getting involved can happen organically through opportunities from people you meet. Ian got involved with Node randomly at the Vancouver Node Interactive Conference during a collaborator summit. And an open-source raid group was formed in Kent's discord where they collaborate on helping out with various open-source projects. So remember that you don't have to do it alone, and look out for opportunities with others.
Vlad Magdalin is the founder of Webflow, a powerful visual development tool that enables people to create professional websites without writing code. Webflow is on a much lower level of abstraction than something like Squarespace, and users still need to understand the core fundamentals of web development.
You might think that tools like these are going to take jobs away from developers, but it actually does the opposite! When innovative technologies allow more people to do work that was once restricted to experts, it benefits everybody. That's what the no-code movement is about. Removing barriers, and giving development power to non-experts.
As developers, we'll be able to collaborate better with designers and other team members. And with the increased output of surface-level webpages, there will be more demand for developers with a deeper skillset.
Teaching what you know is a great way to give back to your community, grow your reputation as an expert, and to even make some extra income. But, just because you're an expert doesn't automatically mean you'll be able to effectively transfer your knowledge and skills to others.
Taylor Bell works for egghead, and one of his main focuses is helping instructors plan courses through an academic discipline known as "instructional design". Specifically, the "Understanding by Design" methodology is used. This process ensures that instructors are able to effectively teach what they know and be confident in learners retaining the knowledge.
From a high level, it's a three stage process of determining the desired results, determining the evidence that proves the learner is achieving those results, and developing a plan that results in the learner being able to apply what they've learned to other scenarios.
So if you're interested in writing better instructional blog posts, recording better videos, and just becoming a more effective teacher in general, check out this episode!
TypeScript has been taking over, and for good reason. Have you ever had good end-to-end or integration tests that ended up being invaluable during some refactoring? You can think of TypeScript in the same way. It's amazing when it's done well, but when done poorly it's misleading and a huge headache.
Because of this, migrating to TypeScript is not a magic bullet. When converting large pieces of code from JavaScript to TypeScript you need to be cautious about typing things correctly, don't be afraid of using unknown
and moving on if you're unsure.
In this episode, you'll learn more about these realities of working with TypeScript and why it's all totally worth it!
Software development has always been a fast-paced sector. New and better technologies are constantly coming out and if companies don't keep up they'll soon be out of date.
Daria has experience with multiple teams who were upgrading their stack, and through that has discovered joy in being a generalist who is capable of working with a variety of technologies and able to see the big picture.
She has found having a generalist skillset both keeps her interested and gives her the ability to communicate with the front and backend teams in ways they both understand. With her ability to understand the different levels and keep everyone on the same page she is on the path to becoming an effective engineering manager in the coming years.
"Generalist" doesn't just mean full-stack developer, there are many more skill areas than front and back end. Maybe you could work on the CI pipeline, or maybe automated testing. There is a lot of value in choosing this path instead of building the deep knowledge of a specialist. They can't work in isolation, someone has to be able to coordinate and "be the glue" between the different parts of the stack.
Twitter and Instagram had a problem that would ordinarily be simple on smaller scales. They needed to be able to generate IDs on the order of millions per second. Twitter used a brute force method of having a triple-redundant service that generates the IDs. However, Instagram had the elegant solution of inserting a little script that could generate thousands of IDs per second but was sharded across 256 nodes.
This illustrates that with the right abstraction for the job, you'll be saved a ton of time and resources. This has been Remix's philosophy.
There was a lot of stuff that we have built in the current generation of web frameworks where the browser actually has a really good primitive already for that solution. In the same way that the spirit of React is "just use JavaScript", the spirit of Remix is just use the web. And in the process of using Remix, you are going to learn more about the web.
So give Remix a try! And see for yourself the power that the browser gives you.
The JavaScript ecosystem is vast and solves a wide array of problems. Because of this, it is key that you have a foundational understanding of JavaScript if you want to be able to work across the JS spectrum.
It is also helpful to know the layers of abstraction that are going on. Become familiar with what comes with the browser like the navigator API and what comes with Node like file system or assert. If you can understand these parts then it becomes easier to know how to use JavaScript in whatever context you are in.
Inspiration is the most important thing when learning to code. Do what excites you. Without that fire, you are going to burn out when things get difficult. Try to build whatever sounds fun to you, and see how you can incorporate what you're trying to learn into that. Afterward, you can learn a lot by trying to optimize your project!
Always strive to gain a deeper understanding of your tools beyond their applications. When you read specs and source code you'll become more familiar and be able to write much better code.
Titus Wormer does a lot of work with natural language processing. He is the creator of Retext, Remark, and many many more open-source projects.
In this episode Titus chats about his extensive open-source work, and goes a bit deeper into his ecosystem of natural language processing tools and plugins. You'll also learn about abstract state trees and their practical applications!
It's time to embrace ESM (ECMAScript Module). NodeJS is providing support for ESM out of the box. With ESM modules coming out of the experimental stage we're going to see a lot of packages begin to embrace it.
ESM provides superior organization of your code by allowing you to more easily create smaller, reusable chunks of code. ESM gives you a "module scope" where not only are functions and variables available to each other in the same module but also allows you to explicitly make them available to other modules. There is also the Loader API that is currently in its experimental stages.
In this episode, you'll also learn about more differences between ESM and CommonJS, and some of the challenges and potential problems of using native ESM today.
Will Johnson used to work for call centers and factories, but he managed to make the daunting career change into tech. This especially isn't easy when you're clocking in 12 hour days. To make time to grow Will was waking up early, staying up late, and doing stuff on weekends.
"It was very, very time consuming, but it was one of those things where like I knew if I got that one chance that all of this would be worth it."
In addition to building up technical skills, networking is absolutely critical for landing a roll.
"I knew that I had to network and meet people in the industry to advocate for me, because I knew that my resume wasn't going to have anyone beating out the door saying, 'Let's hire him.' Right? But as far as the process of building relationships was completely organic. There's not any strategy or networking books I've read. I just knew that taking people's advice, sharing things with them that they might find interesting, and following up with them was a good way to nurture a relationship with someone."
"Growth hacking" style networking is disingenuous and suboptimal. It's about building genuine trust and relationships with people. When you have real trust, there won't be fear when they take the risk of referring or hiring you. To build those relationships just help people out without an expectation of something in return. Chances are you might be the person they think of when they need a podcast guest, a role needs filling at their work, etc.
Modern web development has given us a cornucopia of powerful abstractions. But as we've moved to higher levels of abstraction Ryan has noticed that we are reinventing the wheel in places, especially with what the browser provides by default.
Remix aims to solve this problem. Remix is trying today's benefits of a highly dynamic page, but still have that same feeling of simplicity that we had with PHP.
The whole point of Remix is to emulate what the browser does so that you don't need those full page reloads, but programmers get to just develop with the same mental model as if there was no JavaScript on the page
As you use Remix what ends up happening is that you accidentally become a better web developer as become a lot more familiar with the browser's abilities.
Web development isn't as simple as it used to be. We can't view the source of any webpage and be able to recreate it anymore, it's all bundled and obfuscated. That increased complexity comes from the increasingly larger role that the internet is taking on in our society and the need for our websites to do more than display static information.
The growing role of software in our society has had its consequences. Addictive design, and biases being built into software waste people's time at best, but also have the devastating ability to ruin lives. In this episode, Cher Scarlett brings awareness to these issues and recommends some books that you can read to educate yourself further.
Landing your first developer job isn't easy. Companies don't want to take the risk of hiring a junior, they have no idea how competent you are. A traditional resume doesn't adequately prove your abilities.
Why would they just take your word for it? In order to standout you need to show those hard-earned skills off!
You need to publicly showcase your work. That doesn't just mean spinning up a fancy blog or linking your Github full of tutorial projects you followed along with. Tutorials are excellent for personal growth but they don't prove that you're capable of applying that knowledge elsewhere. It's all about proving your skills are valuable to a business.
This doesn't mean that your site has to be boring though! Showcasing your practical skills might be the most important thing but you should still make your site your own. You are more than the sum of your skills and you are also communicating your interests and personality through your website and portfolio
Almost everything we experience in the world we experience through metaphor. Even when we talk about abstract things that don't have physical form, we talk about them in terms of directionality and bodies.
Stock markets go up, our moods are low, and past years are behind us.
So what makes this useful to us on the internet? Strong visual metaphor is really key for people understanding things. Capturing someone's attention is critical, and you want people to immediately understand what you're trying to tell them before you lose their attention.
If communicating to your users more effectively is something you're interested in, in this episode, you'll also learn about Maggie's process for creating, illustrating, and effectively using visual metaphors on the web!
Kent's spent the last several months completely focused on rewriting his website, recording new episodes for Chats with Kent, and creating an all new podcast called the Call Kent Podcast.
Michael Chan joins Kent to ask him about the motivation to rewrite kentcdodds.com with Remix. Kent explains what technology he used to create the unique experience on the site and why Gatsby falls short of the needs of most apps. Michael also asks about the new teams feature of kentcdodds.com and how it helps you get more out of the content.
Kent also introduces the new Call Kent Podcast where people like you "call" in right in your browser and record a ~2 minute question or discussion topic. Then your recording and Kent's response is turned into a podcast episode. It's a fun new way to engage and participate in the greater KCD community.
Lots of exciting stuff to unpack in this first episode of Season 4 of Chats with Kent!
Tanner Linsley is the creator of react-table, react-charts, and react-query. Tanner also has a startup called nozzle.io where they track rankings in Google and do cool things around technical SEO.
A lot of Tanner's libraries were born out of necessity at nozzle. We often reach for abstractions that were built to solve problems that we don't have and that ends up creating awkward problems for us. We wind up with poor performance or a bigger bundle size than we need, so having a custom made solution can be a good thing.
Your UI state is not the same as your server state and they should be separate things. By keeping these types of state separated from each other you can simplify your app. Server state is different enough in structure, persistence strategy, consumption, and lifecycle to be managed in smarter systems that are configurable to an apps needs of data freshness.
Serene Yew runs Pixeltree, a software consultancy that focuses on sourcing junior talent and providing them with the mentorship that they need so they can bridge the experience gap and get a job.
What better way to incite change than to be that change? You can have a huge influence on someone by taking on a mentorship role. And, not only does mentorship benefit who you're mentoring, but it also benefits you. Serene finds that every single person that she's mentored has changed her in some way for the better. They all taught her something that she didn't even know she needed to learn.
A good mentor is going to listen to you, understand who you are as a person. They're going to guide but, more importantly, they're going to listen. A mentor is compassionate, empathetic, and personally invested in their mentee's success. They're humble and they recognize that they also have more to learn in this ever-changing world. Mentors are to be the cheerleader in the mentee's corner to support them and maybe provide a network connection or even just a good book recommendation.
Saron Yitbarek started a company called Code Newbie, which started as a Twitter community and grew into a couple of podcasts and a conference.
Saron first became interested in technology after she read the Steve Jobs book, it was the first time she got introduced to technology in a way that she could relate to, where tech was talked about through the eyes of design, art, and storytelling. So, she started calling CEOs of startups until she got an internship, which led to a job. Saron wanted to get into development, though, so she quit her job, started to learn to code, and joined a code boot camp.
Saron's path wasn't always financially secure. She realized that she needed to save and create a safety net. These days to help her budget, she uses a tool called You Need A Budget. The tool enables you to be more critical about where your money is going. Think of it as a digital envelope system.
What if you wanted to get into tech but don't know where to start? Saron's one piece of advice for you is go look up your dream job. What is the dream job you have, the dream company you want to work for? Write down five options for yourself. If you could have any job right now at the best company you could think of, what are those jobs? Find those job postings. Put them in a spreadsheet. Figure out the keywords and what the required skills are for each job. See what each job has in common, and then that's your list, that's your curriculum. That's the stuff that you need to learn. Out of that list, pick one technology, one tool, one language that you recognize that has been repeated across these job postings and start learning that one thing.
Software development isn't limited to "nerds." During her time at Andreessen Horowitz, Preethi met thousands of entrepreneurs. What she realized was that software engineering is what these entrepreneurs use to change the world. They're able to code the future they believe in using software engineering.
A lot of people were surprised that Preethi gave up a promising career in venture capital to become a developer. But, Preethi says that the greatest artists reinvented themselves often. There's something unique and special about the periods in our lives where we are working on improving ourselves. We kind of lose that after going through everyday life. And so we must continue to find new hobbies and interests that we enjoy and grow with.
The world is driven by logic and what is objectively measurable is what ends up being valued. The hedge fund manager making millions a year is doing something objectively measurable while the artist isn't. But, beyond a certain point, money doesn't make you happier. You have to look out for your happiness. Your happiness is your incentive for choosing to pursue your passion over choosing the option that makes you more money.
One of the things Michael loves about React is that it's a lot easier to make a black box of abstraction with iron-clad React components that don't leak.
Something that concerns Michael deeply about any technology is when we put too much inside of it. We saw this pretty early on in React, where everyone was taking all manner of state and putting it into Redux. We have to think about the principle of co-location and the fact that the closer you put related things together, the easier it will be to maintain in the longterm.
In React, we've got this excellent encapsulation model that allows us to do this thing for the first time. But, you have to be very strict about what you let in there. The encapsulation model is only as good as you are at encapsulating a single piece of information.
It was around 2008-2010 when Michael's family's business went under due to the recession. From that point, Michael spent every spare second he had reading whatever he could. He'd be reading Ruby and JavaScript documentation while he pushed his son on the swing.
In this episode, Michael talks about what it takes to break into the tech industry. He explains how interviews are a hackable skill and the importance of building relationships in the industry.
Most applications on the backend and the front end get built as a monolith, but you could improve your developer experience and performance if you broke your applications out into microservices.
The pros and cons are the same for monorepos and microservices. Microservices is a different paradigm. And so, there's a lot of training that goes involved for different people to understand the various deployment processes. The microservices system is slightly more complex in some ways, but on the pro side, you gain some performance benefits where you can scale up services by themselves.
A part of the improved developer experience is you get a better context of what you're working on. So say you need to fix a bug in the e-mail service. You don't have to dig through a mountain of code to find it. It's in the e-mail service.
What does it mean to test in production? Simply put, testing in production means testing your features in the environment where your features will live. So what if a feature works in staging, that's great, but you should care if the feature works in production, that's what matters.
An excellent tool for testing in production is feature flagging. Feature flagging allows you to separate your code deployment from your feature release. So, when you use a tool like future flagging, you're able to target specific users to see your feature, and you can test your feature and make sure it works and fix any bugs.
Dr. Michaela Greiler is focused on helping teams make code reviews their superpower!
During Dr. Michaela's time at Microsoft, they found that developers were spending six hours a week doing code reviews. You have to ask yourself if that time is really being well spent.
How do you ensure that code reviews are worth the time? There is a huge variety of experiences with code review. It can be really good, and it can be really, really horrible as well. There is not a lot of formal training around it.
Formal training would improve the consistency and value of code reviews, and it would be especially helpful for Junior Developers. It would give them such a self-esteem and confidence boost if they would know, "This is what we're actually looking for, this is how we give code review feedback"
The internet is one of those resources that we have available to us, and it's fantastic at what it does. However, there's a lot of content that isn't super curated and isn't in a format that makes it digestible. Courtney is interested in making the web accessible not only in the way we typically think of accessibility for people with disabilities who need screen readers and other assistive technologies but also for people with mental disabilities or difficulty learning.
We can help by improving the way we present the information, make it more accessible, and use words and phrases that are more inclusive. It enhances the experience for everybody, not just those who have learning disabilities.
Courtney is starting a Salt Lake City chapter for Devs with Disabilities. They are creating a support system for people with disabilities wanting to get into development and using the community around to assist those people.
In her free time, Amelia Wattenberger enjoys creating "code sketches." On the surface, they might just look like silly examples, but she's learned concepts or ways of doing things through these tiny code examples. You can learn a lot by playing with something in isolation and then trying to see how you can apply it to a production application later.
Amelia then goes on to share her process of creating a blog post. Step one is thinking of the main idea she wants to communicate. Step two is asking herself who she is trying to communicate with and what context are they in. Step three is sketching out her ideas.
People remember things better when they're flashier and more novel. We kind of ended up just porting newspapers into web format. But, the web is so much more powerful than it used to be, which gives us this fantastic opportunity to create unique experiences for people when communicating our ideas.
Thorium is the software that space centers use for the computer controls and the flight director controls of simulated space ship experiences!
The cool thing about Thorium is that it's entirely web-based. Alex is using React to build Thorium and a 3D universe. The 3D universe is being driven by react-three-fiber by Paul Henschel, which is a fantastic piece of software.
Alex says that if you are privileged enough to have the time and the energy and the resources to be able to do side projects, that you should go for it. He believes side projects give you a lot of benefits outside of just the enjoyment of doing them.
Work-life balance is essential, though. There was a time where Alex just completely stopped working on it for about a month and a half. And that was necessary for him to be able to recenter, refocus, and get in a good place where he could be motivated and energized about it again.
Laurie has a tough time saying no, and she ends up trying a lot of different things, but this isn't necessarily a bad thing. Attempting to learn something new gives you the fresh perspective of a beginner starting from nothing. We get comfortable and take for granted the pieces of knowledge we have on our skills.
You have to find a balance, though. It's demotivating to feel dumb all of the time. You need to use the thing you learned for some time, so you advance beyond the beginner phase of the skill. If you jump from skill to skill too fast, you'll feel like you're going nowhere. Try to figure out everything that is contributing to your success that you don't have any experience in, and these are the areas where you'll probably want to dig deeper.
A lot of times, when people are learning something new, they feel, "Oh, I have to learn this fast and my manager's counting on me to learn this," and everything's super stressful. As software engineers, we continually have to learn new things, and carrying that stress is tough on our mental health, so we must learn how to mitigate it.
Don't worry about being an expert. Try to be okay with being a beginner at something. You shouldn't expect more than that from yourself when you start learning something new.
It's essential to break your goal down into multiple steps so that it's not this vast, daunting leap that you have to take. Smaller steps of minor discomfort are a lot easier to cope with.
Almost every demo Ken has done at a conference was wildly out of his league technologically. The deadline for the conference pushes him to grow rapidly. Conference-driven development. Elon Musk says, "If it's physically possible, then we can make it happen." Take stock of the situation and ask yourself what the reality of it is, is it possible? If so, then you can accomplish it.
It's not possible to take the second step or even the last step unless you've taken that first step. Finding a simple way to take that first step and just going for it is critical to becoming the person that you want to be.
Even to this day, Ken still is anxious to get on stage, but it's always awesome afterward. Some talks go well, and others don't, but even if it didn't go well, you still went up there and did it. The audience is rooting for you, and despite what you might think, the majority of them don't know the subject of your talk, and the few that do still want you to succeed.
Erik built the Redux Form library to help manage form states in Redux. He decided to open-source Redux Form, and it exploded and became very, very popular.
People kept coming up to Erik with additional use cases, and the form library itself kept growing to the point where the bundle size got out of hand and saying yes to all the requests for features created a monster.
So Erik came up with his second form library "final-form." This time he created a plugin architecture to reduce the maintenance and make the library more capable of handling unconsidered use cases.
Erik talks about the key things that need to happen for a library to take off. First, it has to be documented well, and the motivation has to get explained clearly. Second, someone who has a following needs to love it and share it with people. Third, you've got to be there on the ground, ready to make quick fixes as people give them to you.
Visual testing is like snapshot testing with images. So when your application is in the state that you want it to be in, you verify this as a human being, and then utilize tools to take a picture of your application in that state.
Visual testing isn't a new concept, but the technology was previously flaky. But now, Applitools is using AI and machine learning to be able only to detect the things that we care about as human beings.
Visual testing catches issues that your scripts won't detect, and Applitools is especially powerful at it. The processing gets offloaded onto the Applitools servers, and snapshots of your app are tested on multiple platforms so you can be confident that no visual bugs get created anywhere!
How do you stay optimistic when being bombarded with negativity every day? Nader reminds us that, statistically, we are living in the safest and most prosperous period in human history. Nader went through a lot of hardship growing up, and it caused him to assume the entire world was that way, but in reality, it wasn't. Try to maintain perspective, and remember that your experiences aren't reflective of the world as a whole.
The voice in your head talks about yourself in a way that you'd never treat another person. Be mindful of yourself and treat yourself with kindness; the way you talk about yourself can make a significant impact on your happiness.
Kent shares his experience with seeing a therapist for the last year and explains how therapy isn't something not just for people who are experiencing trauma or mental illness. Everyone can benefit from having a neutral third party that helps you talk through the problems you are experiencing in life, no matter how big or small.
Reducing the amount of media you consume can improve your headspace as well. That doesn't mean to turn a blind eye to any negativity. Instead, you should learn about the bad things that are happening within your sphere of influence. It doesn't do the world any good to take on pain from something that you have no control over. Your energy is better spent taking an active part in improving the parts of the world that you can influence.
Kelly got into personal finance while she was struggling financially in grad school. Your very first step to getting your money under control should be to know where your money is going. Sit down and look at the last three months of your bank statements and categorize your purchases.
Being able to visualize and measure where your money is going is a fantastic first step for people wanting to at least see if you could make some changes to the way that you're spending your money.
After you figure out where your money is going, your second step is to make a budget. Kelly uses the envelope system. Each category of spending gets an "envelope" of money, and once there's no more money from the envelope, you can't spend any more on that category.
Jen puts knitting before the fact that she is a senior software engineer when she defines who she is; this doesn't make her a worse engineer than someone who eats, sleeps, and breathes code.
With each new thing you learn, whether you're good or bad at it, you'll tend to discover something about it that teaches you something new. With everything Jen learns, she tries to bring it back into the ways she interacts with the world, whether that's through some art medium or programming.
Technological progress has been an evolving process of standing on the shoulders of giants, one after another, learning how to take something they'd seen before and applied it to some new technology or new problem they were working on at the moment.
The short version is that you can find inspiration virtually anywhere, and not to close off those points of inspiration just because you're focusing on a computing problem.
TEDxBeaconStreet: Knitting is Coding; Lindiwe Matlali
TEDxRiga: Crocheting Hyperbolic Planes; Daina Taimina
TED: A delightful way to teach kids about computers; Linda Liukas
Henry Zhu's transition from a programing role to a more managerial role as Babel's maintainer has been hard. As programmers, we tend to value our work based on the number of commits or pushing features. When you are a manager, you're not writing much code anymore.
There's still an expectation that maintainers should be writing code. Still, maintainers also have to triage and merge things, release process, onboard, market, write documentation, test, make videos, and give talks. Because of all this, a maintainer's time is best spent figuring out how to get more people involved with a project.
To get people interested, the maintainer has to do the job of showing people what's possible. You have to be involved in the community, and you have to like it. At a fundamental level, open-source is about service, serving other people in the community, giving back, and not expecting anything in return.
Jenn has been working with React since 0.13. She has a background in creative writing, and it melded well with React.
One of her big early mistakes with React was focusing too hard on making components reusable. When you try to make your component one-hundred percent reusable, you end up with a massive stack of props. In our effort to make things reusable, we end up making it harder for ourselves and others.
Sometimes it even makes sense to duplicate the component, change its name, and add your changes to it instead of adding more props to the existing component. Too many props on your component not only makes it hard to refactor but also difficult to even use.
One of Jenn's rules for her codebase is that new engineers should be able to come in and get up to speed quickly. It is an overall rule that has to do with keeping the codebase consistent. Jenn puts rules in place like, "We consistently use this state management library." So if a person comes in, they aren't finding multiple ways of doing the same thing.
We're all really busy but we are also ambitious and have goals, but a lot of the time those goals aren't defined so well.
It's important that our goals are well defined and manageable, we're hard on ourselves when we aren't making progress towards them. You want to expend your energy on the things that are providing you with value, and when you expend your energy beating yourself up, it's worse than wasted energy because it's energy directed at making life worse for you.
Bianca started Code and Coffee to take people through the process of refining and focussing their goals and breaking them down into achievable bite-sized chunks that they work on for 15 minutes a day during morning coffee. You can do this yourself too!
When Lindsey started, she didn't know what accessibility even meant. She would see that there was an "accessibility error" and fix it, but she didn't understand why she was fixing it. A11y clicked for her when she realized that the point of accessibility was to make the web usable for people with disabilities.
Code, at its core, is about people, and it allows people to use and purchase products. Ultimately we code to make people's lives better, and if you aren't making your site accessible, then you are discriminating against the one in four people living with a disability. Accessibility is not an edge case.
Doing the following will take you far!
Shirley Wu has been freelancer since 2016, creating data visualizations for her clients. In this episode, Shirley talks about the four projects that had the most significant impact on her.
In 2017 Shirley created an interactive visualization of the musical, Hamilton. It blew up on the internet. It was the first time a project of her's had a significant response. It made her realize that code could be beautiful, colorful, and inspiring. The audience might not remember the figures or the writeup, but they will remember the emotional response they had.
Her next project was less fun and a lot more serious. She worked with The Guardian on an investigative journalism piece called Bussed Out. The project was meaningful to her. In the past, she shied away from more serious projects due to a fear of the backlash she'd receive if she didn't do it right. She got to work with a very talented team of journalists who taught her what she was capable of if she teamed up with the right people on important topics.
On a less serious note, Shirley had the privilege of having a visualization be commissioned by the San Francisco Museum of Modern Art. The project was to do something with the data from Send Me SFMOMA. This project caused her to reconnect with making art for its own sake.
The most recent influential project was Legends. It was a personal project on the fifty-one female Nobel Prize winners since 1901. With her other digital projects, she is lucky only to get a few minutes of someone's time, but she wanted more than that, she wanted people to linger and be present. So Shirley is now pushing herself to break the boundaries of digital and make moving her visualization into physical space a reality.
Suz started streaming because she wanted to show people that hardware coding is just like regular everyday coding, it's just for smaller, dumber computers. It's been two and a half years since she started streaming and her reasons have changed since then. Suz has a community of fourteen thousand that gathers around her stream now. Despite her now much busier schedule these days this community motivates her to keep coming back and getting open source work done.
Suz talks about how you need to be doing it for the right reasons if you want to actually stick with it. Don't expect to make a salary off of your live-coding stream. Make sure that you go into it with a sustainable schedule for you, don't try to push it only to burn out after a month or two. Don't invest a ton of money upfront either, it's okay to just have a headset and a webcam for your first streams while you are testing the waters.
Most of the people who watch you are interested in what you are doing and want you to succeed. The people who'd tell you how much you suck aren't going to spend the time to watch your live stream. We tend to be our own biggest critics, don't let the fear of criticism keep you from streaming!
You can learn in private, or you can learn in public. 99% of developers work and learn privately in the shadows, so why shouldn't you? Something magical happened when Shawn started creating resources and sharing what he learned in public. More advanced people began to help him by correcting him when he was wrong. By learning publically, he was able to both teach and learn at the same time!
"You can learn so much on the internet for the low, low price of your ego." If you keep your identity small, you can remain open to new ideas. If you make what you know a part of your identity, being receptive to new ideas and accepting that you were wrong becomes challenging.
Go beyond writing blog posts, they are educational, but their lifespan is limited. Write the resource that you wish existed while you are learning something. Write documentation, create cheat-sheets, these things not only provide immense value to people who are learning, but they also connect you to the authors of the technology who didn't have the time to create those resources. People start to perceive you as an authority on the subject when you make these things, which makes people also want to hire you for your expertise on the subject.
If you want to learn from professionals, then make it worth their time! Kent talks about how he'd record "tech chats" with developers and upload them to Youtube. Having an audience opens up the doors for opportunities!
Getting involved in the world of open-source isn't trivial, especially when we are new to this industry and don't a lot of technical experience. Those of us with the privilege of knowledge and expertise should lend it to others. Lift others, and one day they may do the same.
Scott Hanselman talks about how he isn't a "transactional networker," he doesn't keep score or expect something in return for helping others. Living this way is freeing and fulfilling, even if at times you get burned by someone.
It's hard to find fulfillment when we are always taking life as it comes and when you are always dealing with putting out the next fire. We play Tetris all week long trying to fit in time for meetings, catching up on email, spending time with family, and so on. Spend an hour to figure out your direction and figure out what needs to be fixed and let go of the things that can't be. Be intentional with your time.
The key takeaway of this episode is to be intentional with your time. Understand your boundaries. If you don't want to spend all your free-time on open source, or if you want to lurk on twitter without posting, then acknowledge it. Being left in undecided territory puts weight on yourself.
So you've intentionally decided what you want to do with your time, now what? The key is being consistent. Don't overreach with your goals, since it will just create a guilt system. Instead, schedule a small chunk of time each week where you'll spend time working towards your goal. It's a marathon, not a sprint!
Lastly, be kind to yourself. That voice in our head treats us in a way that we'd never treat others. If we aren't a total jerk to someone when they make a small mistake, then we shouldn't be one to ourself. We praise people when they do something good, even if it is small, so permit yourself to praise yourself!
When something is easy for us, it more than likely is just familiar to us. It's easy to forget how challenging it was to learn what we know. When we tell someone who is still learning that something is easy, it diminishes the accomplishment of learning something new.
People who are good at things put in the time and the practice to get where they are, there isn't a shortcut to experience. We can gain experience by building things. But what do you build?
In this episode, Sara Vieira talks about how to find ideas for your side projects, and what you can do to make them fun and sustainable.
Peggy Rayzis is the engineering manager at Apollo, where she leads the developer experience team.
Peggy talks about how Apollo touches every layer of development. There are a lot of ways that you can implement GraphQL in your application. It's incredibly flexible. You can even have GraphQL running entirely on the front-end! Peggy recommends that you implement it in your existing application by creating a GraphQL layer that sits between your front-end and underlying services.
Why would it be worth all of the effort to refactor your application from a REST architecture to a GraphQL one? There are performance benefits from switching to GraphQL, but the main draw is the developer experience. GraphQL is much nicer to work with than REST, no more firing up Postman or console logging to get a peek at what's going on.
To get started with GraphQL, Peggy recommends taking a single endpoint in your application and beginning with a schema, then move on to writing your resolvers, get your server running, and then connect your front-end. If you want to learn on something that isn't your product, then Apollo has excellent documentation that is linked bellow.
Lin Clark and Till Schneidereit from Mozilla discuss where WebAssembly came from and where it's going. WebAssembly was inspired by asm.js, a subset of JavaScript that could be compiled from a language such as C++. WebAssembly can take the idea further since it doesn't have the same limitations that JavaScript does.
Lin and Till talk about why even a front-end developer would use WebAssembly, which leads to a discussion on one of the primary use cases of WebAssembly, performance optimization. They also get into the nitty-gritty of WASI, or the WebAssembly System Interface, which allows WebAssembly to be used outside of the browser.
It's challenging to sustain open source projects, a lot of time and energy is poured in without any compensation in return. Eric Berry created CodeFund to give developers who are finding it difficult to justify putting their time into open source projects a means to get compensated.
Open source today is not the same as it was five years ago. Ninety-six percent of all web apps are using open source. The web relies on it. Sixty-five percent of all projects have only one or two maintainers, and their work is providing value to a lot of companies and people. Maintainers having the option to be compensated benefits not only the maintainer but also everyone who relies on the project.
Advertising is a scary word these days with big advertisers tracking people across the web and gathering their data. CodeFund doesn't use third-party trackers and doesn't collect data from the developer's audience. Advertising doesn't have to be evil, it can serve a good purpose if it's used correctly.
Emma Bostian launched codingcoach.io, a free, open-source project that connects mentees with mentors. Emma discusses how she launched Coding Coach before she had a real database. It's better to have your product out there than to sit on it until it's perfect, you can always iterate.
Mentoring doesn't just help others, you improve your teaching skills, and it also just looks good to be a mentor.
Mentees should respect a mentor's time since they are doing it for free. When asking someone to be your mentor briefly describe where you're currently at, and some tangible goals that you want to work towards.
Mentorship doesn't strictly have to be a one-on-one relationship with someone. You can mentor people through content creation as well. Blogging, recording videos, writing books, and giving talks all teach people.
Often people's goal with their mentor is to be ready for the technical interview. Many companies are wising up to the fact that someone's ability to write algorithms doesn't correlate with their expertise as a front-end developer.
In this episode, David Khourshid gives the rundown on how finite state machines can make your app more testable, more resilient to bugs, and easier to refactor.
David's initial interest in finite state machines stemmed from his background in music. With music, there is a universal notation that crosses genre boundaries. David thought what if there could be music notation for logic? Well, it ends up people have been trying to figure this out for the last thirty years.
A finite state machine can only be in exactly one state out of a limited number of possible states. The machine can transition to another state through explicitly defined events.
David also chats with Kent about extended finite state machines, how state machines can be used to simplify integration testing, the differences between xstate and redux.
What's next for React? In this second interview with Dan Abramov React's direction is discussed along with overviews of exciting new features.
Dan gives a great rundown these incoming features. React suspense is going to provide a baked-in solution for the problems that async data fetching causes with component rendering, and concurrent mode is bringing non-blocking rendering. Further insight is provided into what problems sparked the need for these new features and why they were the chosen implementations.
There's also discussion on React Fire modernizing React DOM, JSX v2, if React is a framework or a library, what React is intended for, and React's end-game.
In this episode, Kent and Dan talk about the ways in which you'll have to reconstruct your mental model of how React works in order to get the hang of hooks, and how hooks more closely align with React's intended model.
React has made multiple attempts at figuring out a way to share state between components. Mixins, higher-order components, render props, and now hooks. Dan Abramov walks through what went right and what went wrong with each of the implementations prior to hooks. None of these implementations lined up with React's model, they were too indirect, or too limiting.
Classes didn't properly fit in with React's component model either. Components don't use inheritance, they aren't ever instantiated, you don't call methods off of them. Dan explains how Components are more like a stateful function, and how Hooks are a closer approximation of this mental model.
Cassidy Williams is an engineer at Codepen. In the last five years, Cassidy has worked for five companies. She had left each on her terms as she learned through experience what she wanted and didn't want. Figuring out what you like and what you don't like is critical for ending up somewhere that you're happy with, Cassidy calls this establishing your personal brand. The term "personal brand" has negative connotations to it, it seems unauthentic, but really what it means is figuring out who you are and making that public, it's as authentic as you make it.
Kent challenges you to take five minutes and write down what you like and what you don't like. Afterward, reflect on that list and ask yourself if where you're at now lines up, if it doesn't dig deeper into figuring out how to make the necessary changes for your life to align more with your likes and dislikes.
In this episode, Ali Spittel, a software engineer and developer advocate at Dev.to, joins us to talk about how excellent teaching can be for not only the people who are learning from you but also for developing your skills and your career.
Teaching is one of the best ways we can teach ourselves something. It requires you to build an understanding of the subject matter strong enough to explain the material to other people and answer questions. "At some point, you tell a computer what to do, and it does it. It's really predictable. If you tell it to do the right thing, it's going to do the right thing without failure." As you may know, giving instructions to humans doesn't end up being so straightforward, even if you explain something perfectly, mistakes can still be made. It's a challenge to understand the material from multiple angles to accommodate different people, but it's excellent for solidifying your understanding.
Ali challenges you to write a blog post! It doesn't have to be long. Kent C. Dodds will write articles that are only a few paragraphs. Even if no one reads it, you still took the time to learn something and grow.
En liten tjänst av I'm With Friends. Finns även på engelska.