Share

cover art for Shruti Kapoor: How Slack is Built and Tested, How Patents are Filed

ConTejas Code

Shruti Kapoor: How Slack is Built and Tested, How Patents are Filed

Links


- Codecrafters (sponsor): https://tej.as/codecrafters

- Shruti on X: https://x.com/shrutikapoor08

- Slack Kit design system: https://slack.engineering/the-gradual-design-system-how-we-built-slack-kit/

- Tejas on X: https://x.com/tejaskumar_


Summary


Shruti Kapoor, a member of technical staff at Slack, discusses her role, the impact of Slack on users, and recent redesign efforts. She covers the patenting process, technical implementation of features like clips and huddles using Amazon S3 and Chime SDK, and front-end development practices at Slack.


Shruti also shares insights into Slack's interview process and compares it to Tejas' experience at Spotify, discussing the use of 'for' loops in interviews and her approach to code review. She concludes with thoughts on choosing between startups and big tech companies and the importance of diversity and inclusion in the industry.


Takeaways


1. Slack ships code frequently, even on Fridays, and rolls back quickly if issues arise.

2. The redesign aims to reduce cognitive overload and enhance user experience.

3. User feedback is crucial and actively gathered from social media, Zendesk tickets, and user research.

4. Slack's interview process includes breaks and at-home assignments, focusing on both technical skills and empathy.

5. Diversity and inclusion are vital, with efforts to ensure equal representation in technical discussions and panels.


Chapters


00:00 Shruti Kapoor

09:39 Working at Slack and Impact on Users

18:35 Redesigning Slack and User Feedback

33:00 Patenting and Inventing

42:39 Clips and Huddles

51:40 Design System and Front-end

56:02 Testing and Iteration

57:59 Career Journey and Joining Slack

01:00:38 Slack's Interview Process

01:01:38 At-Home Assignment

01:02:35 Comparison with Spotify's Interview Process

01:03:34 Technical Interview Experience at Spotify

01:05:02 Preference for Functional Programming

01:05:43 Using 'for' Loop Instead of 'reduce'

01:06:39 Approach to Code Review

01:08:35 Code Review as a Learning Experience

01:09:58 Testing Code during Code Review

01:11:10 Choosing Between Startups and Big Tech

01:11:39 Advantages and Trade-offs of Big Tech

01:16:57 Advantages and Trade-offs of Startups

01:18:47 Changing Teams in a Big Company

01:22:51 Navigating Conversations about Changing Teams

01:25:40 Role of Diversity and Inclusion in the Job

More episodes

View all episodes

  • Tracy Lee, CEO This Dot: How to be successful in DevRel with AI

    01:49:33|
    Links- Codecrafters (sponsor): https://tej.as/codecrafters- Wix (sponsor): https://tej.as/wix- SquiggleConf: https://squiggleconf.com/- Tracy Lee on X: https://twitter.com/ladyleet- This Dot Labs: https://www.thisdot.co/- RxJS: https://rxjs.dev/- GitHub Copilot: https://github.com/features/copilot- CascadiaJS Conference: https://2023.cascadiajs.com/- Render: https://render.com/- Vercel: https://vercel.com/- Netlify: https://www.netlify.com/- AWS Amplify: https://aws.amazon.com/amplify/- Michael Terrell Coaching: https://www.michaelwterrell.com/- Cal Newport's "Deep Work": https://www.calnewport.com/books/deep-work/- O'Reilly Media: https://www.oreilly.com/SummaryIn this episode, Tracy Lee, CEO and co-founder of [This Dot Labs](https://www.thisdot.co/) shares her inspiring journey from hosting JavaScript meetups to becoming a prominent figure in the tech industry. She explores the evolution of This Dot Labs, highlighting the crucial role of open source contributions and community building in its success.Tracy emphasizes the significance of Developer Relations (DevRel) in fostering long-term relationships and brand awareness. The discussion touches on current industry trends, including the increasing integration of AI technologies like GitHub Copilot in development workflows, and how This Dot Labs navigates client policies regarding AI usage.We also explore the challenges of scaling a consultancy, the importance of hiring autonomous and entrepreneurial-minded individuals, and strategies for effective team building. Tracy sheds light on the need for leaders to be coachable and receptive to feedback, sharing personal anecdotes about growth and learning. The conversation wraps up with insights into This Dot Labs' future directions, including expanding services in AI consulting and backend technologies.Chapters00:00:00 Introduction00:06:25 Building This Dot Labs00:10:40 The Role of Open Source00:14:15 Importance of DevRel00:22:45 Challenges in Consultancy00:27:00 AI Integration in Client Projects00:31:35 Hiring Autonomous Individuals00:36:20 DevRel's Value in the Current Economy00:40:55 Emotional Intelligence and Leadership00:45:15 Balancing Business and Personal Connections00:50:30 Expanding Services at This Dot Labs00:55:45 Future Directions and Vision01:00:00 Impact of AI on the Industry01:15:00 The Importance of Being Coachable01:20:30 Overcoming Personal Challenges01:25:40 Advice for Aspiring Tech CEOs and Founders01:35:15 Looking Ahead: This Dot's Next Steps01:40:00 Final Reflections and Closing Thoughts
  • Alex Moldovan, founder JS Heroes: How to Organize a Community-first JavaScript Conference

    01:37:38|
    Links- Codecrafters (sponsor): https://tej.as/codecrafters- Wix (sponsor): https://tej.as/wix- SquiggleConf (partner): https://squiggleconf.com/- JS Heroes: https://jsheroes.io/- Alex on X: https://x.com/alexnmoldovan- Tejas on X: https://x.com/tejaskumar_Summary:In this discussion, we talk to Alex Moldovan, a software engineer at CodeSandbox and event planner who co-founded JS Heroes—a non-profit, community-driven JavaScript (Programming Language) conference in Romania. Together, we cover the intricacies of project management, event planning, and the challenges of organizing a conference that prioritizes open source values and community engagement.Key topics include the benefits of a single-track format for presentations and talks, strategies for diversity and inclusion in the call for papers (CFP) process, and balancing a full-time role in technology with being a conference speaker and organizer. The discussion provides valuable insights for developers interested in community building, functional programming, and the evolving landscape of the tech industry.Chapters00:00:00 Alex Moldovan00:03:54 Introduction00:09:42 Origin of JS Heroes00:18:17 Non-Profit Conference Model00:25:15 Single-Track Conference Benefits00:36:16 Transparency in Event Planning00:43:13 Challenges with Sponsorship00:53:27 Scaling and Quality Focus01:04:54 Diversity in CFP Process01:13:08 Cultural Challenges in Tech01:23:26 Balancing Roles01:32:26 Future Goals for JS Heroes
  • Michelle Bakels: How to Optimize Developer Health

    01:29:57|
    Links- Codecrafters (sponsor): https://tej.as/codecrafters- Wix (sponsor): https://tej.as/wix- G2i: https://g2i.co- Developer Health OS: https://www.g2i.co/developer-health- Michelle on X: https://x.com/michellebakels- Tejas on X: https://x.com/tejaskumar_SummaryIn this episode, Michelle Bakels from G2i discusses the importance of developer health and wellbeing. She explains G2i's Developer Health Operating System, which focuses on burnout recovery, prevention, and optimizing performance. Michelle shares insights on work-life balance, the impact of remote work, and practical strategies for maintaining physical and mental health in the tech industry.Chapters00:00:00 Introduction00:06:13 Challenges developers face in the tech industry00:12:08 External and internal pressures on developers00:19:31 The importance of questioning and reevaluating work habits00:24:08 G2I's focus on developer health00:29:33 Overview of the Developer Health Operating System00:34:26 Burnout recovery strategies00:39:53 Workaholic tendencies and stress addiction00:46:38 Burnout prevention techniques00:51:58 Optimizing performance through sleep and brain health00:59:43 Remote work's impact on productivity and work-life balance01:09:12 Michelle's personal routine for maintaining health and productivity01:15:11 Measuring the effectiveness of health strategies01:20:18 G2I's four-day work week experiment01:24:50 The importance of transparency and vulnerability in leadership01:28:10 Conclusion and final thoughts
  • Gabe Greenberg, CEO G2i: How to Bootstrap a Healthy Tech Business

    01:35:26|
    Links- Codecrafters (sponsor): https://tej.as/codecrafters- Wix (sponsor): https://tej.as/wix- SquiggleConf (partner): https://2024.squiggleconf.com/- G2i: https://www.g2i.co/- Gabe on X: https://x.com/gabe_g2i- Tejas on X: https://x.com/tejaskumar_- Book: "Traction" by Gino Wickman https://www.amazon.de/-/en/Gino-Wickman/dp/1936661837- "Move Fast and Fix Things" book: https://www.amazon.de/-/en/Frances-Frei/dp/1647822874- Developer Health Operating System: https://www.devhealthos.com- fourdayworkweek.io: https://www.fourdayworkweek.io- Suno: https://suno.ai - Ro.am: https://ro.am- Loom: https://www.loom.com- Linear: https://linear.app- "Deep Work" book by Dr. Cal Newport: https://www.amazon.de/-/en/Cal-Newport/dp/1455586692- Dopamine Nation by Dr. Anna Lembke: https://www.amazon.de/-/en/Dr-Anna-Lembke/dp/152474672XSummaryG2i is a unique hiring community that originated from the open-source community. The company focuses on working with React, React Native, and GraphQL engineers and matching them with companies. G2i stands out for its autonomous and engineering-focused approach to solving problems. The company emphasizes clarity, prioritization, and moving fast while maintaining trust. The Entrepreneurial Operating System (EOS) framework has been implemented at G2I to provide structure and clarity in running the business. The key quality that sets great engineers apart is their ability to work autonomously, take ownership, and make effective decisions. In this conversation, Gabe and Tejas discuss the importance of developer health and its impact on revenue generation. They explore the concept of setting priorities and positioning oneself close to revenue as a founder. They also touch on the idea of creating a cohesive story around optimizing revenue and developer health. Gabe shares insights on implementing the Entrepreneurial Operating System (EOS) framework and the value of having a clear vision and core values. They also discuss the tools and technologies that have been crucial for successful remote work at G2I.Chapters00:00:00 Gabe Greenberg00:03:45 Introduction and G2I's unique approach00:07:16 Building a company without VC backing00:10:42 The importance of mentors and advisory boards00:16:08 Implementing the Entrepreneurial Operating System (EOS)00:22:04 Key qualities of great engineers00:27:44 The value of being early to new technologies00:34:02 G2I's initiatives in AI and machine learning00:41:30 Developer health and productivity00:48:06 Recognizing patterns in emerging tech ecosystems00:54:51 Identifying valuable skills in the AI era01:02:53 G2I's work with reinforcement learning01:08:38 Balancing revenue goals and developer wellbeing01:16:45 Advice for technical founders and CEOs01:23:03 Implementing goal-setting frameworks like EOS01:28:27 Tools and strategies for successful remote work
  • Josh Goldberg: How to Maximize Success with TypeScript and ESLint

    01:34:59|
    Links- Codecrafters (sponsor): https://tej.as/codecrafters- Wix (sponsor): https://tej.as/wix- Josh Goldberg: https://x.com/joshuakgoldberg- Learning TypeScript: https://learning.oreilly.com/library/view/-/9781098110321/- SquiggleConf: https://2024.squiggleconf.com/ SummaryJoshua K Goldberg is a full-time independent open source maintainer in the TypeScript ecosystem. He shares his journey into open source and the importance of filling in the gaps in the ecosystem. He also discusses the best incremental migration path to TypeScript and highlights advanced features like shenanigans with type parameters and the 'satisfies' keyword. The conversation covers topics such as literals in TypeScript, writing a book, the process of writing and shipping a book, the reception of the book, the development of TypeScript ESLint, abstract syntax trees (ASTs), parsing, and static analysis. We also discuss the future of TypeScript, the performance of ESLint, and configuration tips to improve ESLint's performance. Takeaways1. Being a full-time independent open source maintainer is rewarding and allows for direct contributions to tools that benefit everyone.2. When migrating to TypeScript, it's best to start with one file at a time and gradually increase strictness.3. Type parameters in TypeScript can be complex, but they are useful for advanced scenarios.4. The 'satisfies' keyword in TypeScript allows for declaring data that adheres to a type while still inferring a more specific type.5. Parsing is the process of converting a string of code into an AST.6. ESLint provides a report function that allows lint rules to report issues to the user.7. TypeScript ESLint supports typed linting, which allows for more powerful linting rules.8. ESLint's performance can be affected by misconfiguration, the number of plugins, and the use of ESLint plugin prettier.9. Separating ESLint and Prettier as separate tools can improve performance.10. Being an open-source maintainer can be challenging, but having a fallback plan and a supportive community can make it sustainable.Chapters00:00 Josh Goldberg03:37 Introduction and Background06:22 The Journey into Open Source and Filling in the Gaps15:15 The Best Incremental Migration Path to TypeScript28:41 Introducing the 'Satisfies' Keyword in TypeScript30:31 The Process of Writing and Shipping a Book35:10 The Development of TypeScript ESLint37:26 Parsing and Static Analysis with Abstract Syntax Trees56:54 Improving ESLint Performance: Configuration Tips01:01:00 Understanding the Role of ASTs and Compilers in TypeScript and ESLint01:03:42 Configuring Type Linting in TypeScript01:06:22 The Intersection of AI with TypeScript and ESLint01:11:53 Creating a Standardized Open-Source Sponsorship Rating System
  • Kyle Corbitt, CEO OpenPipe: How to Fine-Tune Your Own Language Model (LLM)

    01:36:41|
    Links- Codecrafters (Sponsor): https://tej.as/codecrafters- Wix (Sponsor): https://tej.as/wix- OpenPipe: https://openpipe.ai- Kyle on X: https://x.com/corbtt- Tejas on X: https://x.com/tejaskumar_SummaryKyle Corbitt, founder and CEO of OpenPipe, shares the origin story of the company and his background in computer science and entrepreneurship. He discusses the evolution of machine learning and the breakthroughs that made OpenPipe possible. The conversation then dives into the process of fine-tuning models using OpenPipe, including the logging feature, data curation, and the selection of base models and hyperparameters.The episode also explores the developer experience and the decision to create an SDK that is a drop-in replacement for the OpenAI SDK. The conversation explores the concept of overfitting in machine learning models and how it differs for language models. The validation process for fine-tuned models is discussed, including inner loop tests and outer loop evaluations.Takeaways1. OpenPipe was founded to help people transition easily and smoothly into fine-tuning models using machine learning.2. The process of fine-tuning models involves logging user requests, curating data, selecting base models, and optimizing hyperparameters.3. OpenPipe provides an SDK that is a drop-in replacement for the OpenAI SDK, making it easy for developers to integrate OpenPipe into their existing workflows.4. The platform automates the heavy lifting of fine-tuning models, including the optimization of hyperparameters based on thousands of fine-tuned models and user-defined evaluations.5. OpenPipe offers a seamless developer experience, allowing users to quickly and efficiently fine-tune models and deploy them for production use.Chapters00:00 Kyle Corbitt03:28 The Origin Story of OpenPipe14:34 Fine-Tuning Models with OpenPipe33:46 Understanding Overfitting and Fine-Tuning39:47 The Role of Hyperparameters46:32 Validating Fine-Tuned Models56:46 Enabling Tool Calls in Language Models01:00:33 Unleashing the Full Potential of Language Models01:05:09 Introduction to OpenPipe01:10:14 Changing the Configuration Parameter01:20:17 The Future of OpenPipe01:25:31 The Need for a Founder's Handbook01:32:17 Advice for Technical Founders and CEOs
  • Shruti Balasa: How to Maximize Success with Tailwind CSS

    01:31:00|
    Links- Wix Studio (sponsor): https://tej.as/wix- Codecrafters (sponsor): https://tej.as/codecrafters- Shruti Balasa's Website: https://shrutibalasa.com/- Tailwind Weekly: https://tailwindweekly.com/- Shruti on X: https://x.com/shrutibalasa- Tejas on X: https://x.com/tejaskumar_SummaryShruti Balasa, a Tailwind CSS expert, shares her journey of discovering and specializing in Tailwind CSS. She explains how Tailwind CSS enhanced her CSS skills and made her more efficient in web development. She also discusses the pain points that Tailwind CSS solves, such as context switching, naming conventions, and cross-browser compatibility. Shruti emphasizes the importance of understanding CSS fundamentals before diving into Tailwind CSS. She also addresses common criticisms of Tailwind CSS, such as the length of class names and the use of the apply directive. The conversation also covers topics like layers, dynamic and static components, and the use of Tailwind CSS for email design. Shruti recommends using plugins like Prettier Tailwind CSS Sorting for code organization and subscribing to Tailwind Weekly for updates on new plugins and resources. She also discusses upcoming features in Tailwind CSS, such as CSS-first configuration and container queries.Takeaways1. Understanding CSS fundamentals is important before diving into Tailwind CSS2. Tailwind CSS solves pain points such as context switching and naming conventions3. The apply directive should be used sparingly and for specific cases4. The Tailwind config file allows customization and the creation of plugins5. Tailwind CSS version 4 introduces auto-discovery and shifts towards using CSS for configuration6. Tailwind CSS generates only the styles that are used in the source code with the Just-In-Time (JIT) compiler7. Tailwind CSS is a choice and not a requirement for improving accessibility or performance.8. Subscribing to Tailwind Weekly can provide updates on new plugins and resources.9. Upcoming features in Tailwind CSS include CSS-first configuration and container queries.Chapters06:19 Discovering and Specializing in Tailwind CSS09:33 Enhancing CSS Skills with Tailwind CSS13:19 Solving Pain Points with Tailwind CSS17:36 The Use of the Apply Directive in Tailwind CSS26:16 Upcoming Changes in Tailwind CSS Version 434:21 The Latest State of Tailwind CSS v4 Discussions37:33 Generating Only the Used Styles with the JIT Compiler40:56 Maintaining Consistency in Large-Scale Projects with Custom Classes53:47 Responsive Features in Tailwind CSS: Dark Mode and Reduced Motion01:01:31 Tailwind CSS: A Choice for Convenience01:04:28 Exploring Layers and Components in Tailwind CSS01:09:00 Tailwind CSS for Email Design and Development01:18:00 Useful Plugins for Tailwind CSS Productivity01:22:34 Exciting Upcoming Features in Tailwind CSS
  • Jeff Cross, CEO Nx: How to Build and Scale Developer Tools

    01:33:27|
    Links- Codecrafters (sponsor): https://tej.as/codecrafters- Nx: https://nx.dev/- Jeff on X: https://twitter.com/jeffbcross- Tejas on X: https://x.com/tejaskumar_SummaryJeff B. Cross, co-founder of NX, discusses the origins of NX and its evolution as a tool for monorepos. He explains the benefits of using NX, such as code mod running, large-scale migrations, and CI optimizations. Jeff also clarifies the definition of a monorepo and how NX supports both package-based and graph-based monorepos. He highlights the features of NX that help with development, integration, and deployment, including the interactive graph, tagging system, and caching. We also cover the ability of NX to deflake tests and shares his perspective on running a business, including the challenges of positioning and marketing, and his experience of starting NX. Takeaways1. NX is a powerful tool for monorepos that offers features such as code mod running, large-scale migrations, and CI optimizations.2. A monorepo can be defined as a single repository containing multiple distinct projects with well-defined relationships.3. NX supports both package-based and graph-based monorepos, with the latter being more suitable for application developers.4. NX also offers features for integration and deployment, such as building affected targets, replaying builds and tests, and distributing work across multiple machines.5. NX has the ability to deflake tests, which are tests that indeterministically fail or pass. NX detects and handles flaky tests by analyzing test results and determining if a test fails often or fails without changes in inputs or dependencies.6. Measuring the developer experience is challenging, but NX uses user feedback, internal testing, and collaboration with enterprise customers to improve the product.7. Positioning and marketing a product can be a difficult task, especially for a tool like NX that doesn't fit into a specific category.8. Finding a niche and being the best in the world at it is crucial for success as a consultant or business owner.9. Continuous adaptation and evolution are essential qualities for a CEO, as they need to be able to change and pivot as the company grows.10. Polygraph, an upcoming feature of Nx, will provide visibility and dependency management across multiple workspaces in an organization.Chapters00:00:00 Jeff Cross00:03:18 Introduction and Origins of NX00:06:25 Understanding Monorepos and NX00:11:04 Tools for Development and Code Consistency00:14:56 Integration and Deployment with NX00:36:09 Detecting and Handling Flaky Tests00:38:20 The Developer Experience with NX00:48:36 Understanding Lexers, Parsers, Compilers, and Rich Text Editors01:00:54 Challenges of Positioning and Marketing01:03:36 Starting and Running a Business01:10:47 The impact of Nx Cloud on CI performance01:18:49 Introducing Polygraph: Visibility and dependency management01:27:46 What's next for Nx01:31:47 Conclusion
  • Jatin Ramanathan: How Google.com is Rendered with Wiz (Fastest UI Framework)

    01:30:33|
    Links- Codecrafters (sponsor): https://tej.as/codecrafters - Jatin on X: https://x.com/JatinRamanathan- Tejas on X: https://x.com/tejaskumar_SummaryJatin Ramanathan, a software engineer at Google, discusses the Wiz framework and its use in Google products like search, photos, and payments. Wiz is a resumable web framework that focuses on loading minimal JavaScript and uses the concept of signals for reactive programming. Signals are reactive properties that reflect the state of an observable or reactive property at any given time. The Wiz framework also incorporates JS Action, a library that listens to events and delivers them to event handlers only when necessary, reducing the amount of JavaScript that needs to be loaded. The conversation also touches on the merger of Wiz and Angular and the potential for unified APIs in the future. The conversation explores the concept of responsible JavaScript and web performance. We dive into the use of signals and JS action in Wiz and Angular, and how they enable declarative behavior and interactivity on the client side. The discussion also touches on the challenges of using TSX in Angular and the potential for future improvements. The importance of measuring performance and understanding the user experience on different devices is emphasized, along with the use of feature flags and instrumentation to optimize the user funnel.Takeaways1. Wiz is a resumable web framework used in Google products like search, photos, and payments.2. The framework focuses on loading minimal JavaScript and uses signals for reactive programming.3. JSAction is a library that listens to events and delivers them to event handlers only when necessary, reducing the amount of JavaScript that needs to be loaded.4. Wiz and Angular are merging to exchange ideas and potentially unify APIs in the future. 5. Signals and JSAction in Wiz and Angular enable declarative behavior and interactivity on the client side.Chapters00:00 Jatin Ramanathan03:05 Welcome Jatin06:15 Overview of Wiz and its Use in Google Products13:00 Resumability and the Concept of Signals36:03 Merger of Wiz and Angular: Unifying APIs48:08 Signals and Interactivity50:26 Declarative Behavior with Signals and JS Action52:10 Performance of HTML and htmx59:10 Responsible JavaScript as a Diet01:09:26 Open Sourcing Wiz through Angular01:13:34 Challenges of TSX in Angular01:16:40 Declarative Behavior Composition in TSX01:22:15 Contributing to Wiz through Angular01:25:11 Checklist for Responsible JavaScript and Web Performance