Share

cover art for Bobak Tavangar, CEO Brilliant Labs: How to build open-source AI-enabled smart glasses with AR

ConTejas Code

Bobak Tavangar, CEO Brilliant Labs: How to build open-source AI-enabled smart glasses with AR

Links


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

- Frame: https://brilliant.xyz/products/frame

- Bobak on X: https://x.com/btavangar


Summary


In this episode, Bobak Tavangar, founder of Brilliant Labs, discusses the creation of the AR device Frame and the open-source assistant Noah. He shares his journey from working at Microsoft and Apple to founding his own AR company, emphasizing innovation, simplicity, and user transformation in AR. He highlights the limitations of relying on large companies and big budgets, and the unique focus of Frame on AI, user experience, security, and privacy. Frame aims to create open, hackable smart glasses, offering distinctive, lightweight designs and future style variations. The glasses integrate with smartphones, and the assistant Noah extends developer capabilities. Tavangar reflects on the lessons from Google Glass, the challenges of hardware creation, and the importance of design and purpose.


Takeaways


- Innovation in AR comes from taking unique paths.

- Noah, an open-source assistant, enables a broader developer ecosystem.

- Frame smart glasses focus on user experience, security, and privacy.

- Combining openness with quality and curation is key.

- Learn from Google Glass's successes and failures.


Chapters


00:00 - Introduction and Background

10:02 - The Genesis of Brilliant Labs and AR

14:52 - The Missing Ingredient in AR

28:18 - Noah: An Open-Source Assistant for Frame

31:20 - Differentiating Frame from Other AR Devices

35:09 - Creating Open and Hackable Smart Glasses

38:51 - The Third Path: Combining Openness with Quality and Curation

41:41 - Networking Human Experience

45:42 - The Dangers of Subsidizing Product Sales at a Loss

57:31 - The Future of Glasses: Smart and Indispensable

01:01:01 - Designing for Thinness, Weight, and Distinctive Style

01:04:49 - Local Models: Balancing Functionality and Hardware Constraints

01:08:03 - Lessons from Google Glass and the Importance of Purpose and Design

01:12:20 - Advice for Aspiring Hardware Founders

01:21:44 - Specifications of Frame: Battery Life and Charging

01:27:08 - The Only Rules That Matter: God and Physics


More episodes

View all episodes

  • David Khourshid, CEO Stately.ai: How State Machines Create Robust Software

    01:33:46
    Links- Codecrafters (sponsor): https://tej.as/codecrafters- Stately: https://stately.ai- XState on GitHub: https://github.com/statelyai/xstate- David on X: https://x.com/davidkpiano- Tejas on X: https://x.com/tejaskumar_SummaryIn this conversation, David Khourshid (CEO, Stately.ai) discusses XState, a state management library that uses state machines and the actor model to solve complex state management problems. He explains that state management is not a problem in itself, but it becomes complex when frameworks and libraries expect state updates in different ways. XState provides a simpler model for managing complex state by using state machines and transitions triggered by events. David also introduces the concept of state charts, which take state machines to the next level by allowing for hierarchy and orthogonality. XState provides tools for visualizing state machines and helps identify modeling issues early in the software development lifecycle. We continue to discuss the use of agents in observing environments and the potential for building practical applications using state machines. David shares his journey of founding Stately and productizing XState, highlighting the challenges and lessons he has learned as a first-time CEO. They also touch on the importance of making mistakes, transitioning to a paid model, and the future plans for Stately.Takeaways- State management becomes complex when frameworks and libraries expect state updates in different ways.- XState provides a simpler model for managing complex state by using state machines and transitions triggered by events.- State charts, a more advanced form of state machines, allow for hierarchy and orthogonality.- State machines are useful in AI programming and can be used to build agents that observe environments and take actions based on goals.- As a first-time CEO, it is important to make mistakes, learn from them, and be open to continuous learning and improvement.- Transitioning to a paid model can help focus on users who have real use cases and are willing to pay for advanced features.Chapters[00:03:17] Introduction and Background[00:05:28] The Problem of State Management[00:09:16] XState: A Solution for Complex State Management[00:13:27] XState and Conflict-Free Replicated Data Types (CRDTs)[00:15:55] State Machines and State Charts[00:29:45] Orthogonality and Modeling Complex States[00:33:11] The Value of State Machines in Software Development[00:35:32] The Use Cases for State Machines[00:39:40] Balancing Time Investment and Fast-Paced Development[00:45:20] The Connection Between State Machines and AI[00:50:47] The Potential of AI in Stately.ai[01:01:35] Understanding the Actor Model[01:09:19] Building a To-Do App with XState[01:10:17] Introduction to X-State and Actor Interface[01:11:32] Snapshot and State in X-State[01:12:54] Agents and Observing Environments[01:14:16] State Machines in AI Programming[01:15:17] Building State Machines for Practical Applications[01:16:52] State Machines and AI Limitations[01:18:34] Founding Stately and Productizing X-State[01:21:20] Challenges and Lessons as a First-Time CEO[01:24:46] Importance of Making Mistakes and Learning[01:27:03] Transitioning to a Paid Model[01:30:32] Future Plans for Stately
  • Mark Erikson: How Replay.io is Built, Maintaining Redux

    01:56:00
    Links- Codecrafters (sponsor): https://tej.as/Codecrafters- Replay Protocol Examples: https://github.com/replayio/Protocol-Examples- Mark on X: https://x.com/acemarke- Tejas on X: https://x.com/tejaskumar_SummaryMark Erikson, the maintainer of Redux and developer at Replay.io, discusses the process of modernizing the Firefox DevTools UI (a React app!) and the challenges of code migration. He shares insights on migrating to TypeScript and the value of staying up to date with the latest techniques. Mark also explains how Replay captures and transmits data for debugging purposes. Replay is a tool that captures and replays browser interactions for debugging purposes. It requires a browser because extensions do not have the same privileged access as a browser. During the recording phase, Replay captures network data. The captured data is stored in a binary archive. When a user opens the debugger, the recording is downloaded and cached in the backend. The debugger includes a video playback feature, which is actually a series of JPEG images rendered on a canvas. The element picker in the debugger is a bespoke canvas that interacts with the paused browser process. In this conversation, Mark Erikson discusses the capabilities of Replay, a debugging tool for web applications. He explains how Replay allows developers to console log in replays, run code in the browser, and work with source maps and minified code. Mark also discusses the use of Replay in Node.js and the ability to manipulate events in replays. He highlights the backend API of Replay and the potential for future features such as root cause analysis and React time travel.Takeaways1. Modernizing legacy codebases requires careful planning and a step-by-step approach.2. Migrating to TypeScript can improve code maintainability and reduce bugs.3. Replay.io captures and transmits browser events and interactions for debugging purposes. 4. Extensions do not have the same privileged access as a browser, which is why Replay requires a browser.5. Replay can be used in Node.js environments, and developers can manipulate events in replays to simulate different outcomes.6. Future features of Replay include root cause analysis and React time travel, which will further enhance the debugging experience for developers.Chapters00:02:40 Introduction and Background00:03:59 Replay.io and Time Travel Debugger00:08:48 Modernizing the Codebase00:11:44 The Challenges of Code Migration00:13:39 Finding Joy in Legacy Code00:16:11 Migrating to TypeScript00:19:16 The Process of Modernization00:30:19 The Pressure and Value of Modernization00:35:47 The Trade-offs of Using the Latest Techniques00:37:12 Capturing and Transmitting Data in Replay00:38:11 Replay: Capturing and Replaying Browser Interactions00:45:56 Why Replay Requires a Browser00:46:51 Capturing Network Data and Security Concerns00:48:54 Recording and Storing the Binary Archive00:56:21 Downloading and Caching the Recording00:58:46 Pre-Processing and Caching Basic Data01:03:30 The Video Playback and Memory Snapshots01:10:39 Inspecting Elements and the Bespoke Canvas01:14:26 Building the Replay Debugger01:16:49 Replay's Capabilities01:18:12 Console Logging in Replays01:19:50 Running Code in the Browser01:20:51 Source Maps and Minified Code01:22:44 Shipping Source Maps01:25:41 Replay in Node.js01:26:12 Using Replay in the Terminal01:33:50 Manipulating Events in Replay01:38:02 Replay's Backend API01:51:33 Future Features: Root Cause Analysis and React Time Travel01:54:41 Closing Remarks
  • Zack Chapple, CEO Zephyr Cloud: How Module Federation Works, Micro-Frontend Architecture

    01:36:35
    Links- Codecrafters (sponsor): https://tej.as/codecrafters- Zephyr Cloud: https://zephyr-cloud.io/- Module Federation: https://www.npmjs.com/package/@module-federation/node- Tejas on X: https://x.com/tejaskumar_SummaryIn this conversation, Zack Chapple, CEO of Zephyr Cloud, discusses the concepts of module federation, micro frontends, and the role of Zephyr Cloud in simplifying developer workflows. He explains the evolution of module federation, its relationship with Webpack and RSPack, and the impact of these technologies on build times and developer productivity. The conversation delves into the evolution of micro front-end architecture, starting with the use of iframes and progressing to module federation. It explores the challenges of iframes, the benefits of lazy loading, and the finer control offered by module federation. The discussion also covers the founding of Zephyr Cloud and its innovative approach to deploying micro front-ends to the edge. Zack Chapple discusses the innovative features of Zephyr Cloud, including its seamless integration with module federation, real-time deployment to the edge, and observability capabilities. He also shares insights on the challenges and decision-making process for technical founders and CEOs.Takeaways1. Module federation and micro frontends are key concepts in modern web development, allowing for the decomposition and distribution of front-end applications.2. Zephyr Cloud simplifies the complexity of module federation and micro frontends, providing a platform that accelerates developer workflows and enhances production reliability for micro frontends.3. Finer control and deployment to the edge with module federation and Zephyr Cloud Zephyr Cloud enables real-time deployment to the edge, making it easy for developers to integrate with module federation and streamline the development process.4. The platform offers robust observability features, allowing users to monitor and analyze the impact of remotes on performance and user experience.5. Zack Chapple emphasizes the importance of aligning company values with personal values as a founder, highlighting the need for individualized approaches to leadership and decision-making.Chapters03:49 Introduction and Overview of Topics05:49 The Birth of Zephyr Cloud and its Mission11:06 Understanding Module Federation and Micro Frontends30:05 RSPack, ESBuild, and the Future of Module Federation36:12 Evolution of Micro Front-End Architecture40:25 Challenges and Benefits of Lazy Loading56:50 Innovative Edge Deployment with Zephyr Cloud01:06:05 Revolutionizing Deployment with Zephyr Cloud01:11:55 Seamless Deployment and Rollbacks01:31:09 Navigating the CEO Journey
  • Svenja Schäfer: Mastering Regular Expressions and Automated Testing

    01:44:59
    Links- CodeCrafters (sponsor): https://tej.as/codecrafters- Understanding RegEx Once and for All Post Series: https://www.codegram.com/blog/understanding-regex-once-and-for-all-part-one- RegEx 101: https://regex101.com/- (Golang to .d.ts) go2dts: https://github.com/fabien0102/go2dts - Svenja on LinkedIn: https://www.linkedin.com/in/svenjaschaefer/- Svenja on GitHub: https://github.com/slickepinne- Tejas on X: https://x.com/tejaskumar_SummaryIn this conversation, Svenja Schäfer, a development team lead at Thoughtbot, discusses her background, experience, and the importance of testing in software development. She shares her journey into tech, the value of testing, and the benefits of test-driven development. Svenja also talks about her work at Thoughtbot, a consulting agency that focuses on Ruby on Rails and JavaScript development. The conversation touches on the challenges of learning new technologies and the fast-paced nature of the industry. The importance of collaboration, taking breaks, and finding a balance between pairing and individual work is also highlighted.In this part of the conversation, Svenja and I discuss the importance of communication and belonging in remote teams. We also dive into the topic of regular expressions and how they can be used to accelerate robustness in testing. We also do a live coding exercise to demonstrate how regular expressions work. Svenja then shares her experience as a team lead and emphasizes the importance of maintaining a balance between coding and people management. She introduces a three-question communication framework to help manage time and prioritize tasks. The conversation concludes with a discussion on the significance of feedback and the importance of open and honest communication.Takeaways- Testing is essential in software development as it provides confidence, reduces errors, and helps developers understand the codebase.- Test-driven development (TDD) is a valuable approach that involves writing tests before implementing features, leading to more robust and maintainable code.- Collaboration and pairing can enhance productivity and code quality, but it's important to find a balance and allow for individual work and breaks.- Taking breaks and allowing time for the brain to reset can lead to fresh ideas and solutions. - Effective communication and a sense of belonging are crucial in remote teams.- Regular expressions can be a powerful tool for testing and accelerating robustness in software development.- Regular expressions can be used for email validation, form input validation, and searching in code editors.- Understanding the building blocks of regular expressions, such as the caret (^), dot (.), asterisk (*), and word boundaries, is essential for writing effective patterns.- Tools like regex101.com can be helpful for testing and experimenting with regular expressions. Regular expressions can be a powerful tool for searching and manipulating text.- It is important to be aware of the potential challenges and gotchas when using regular expressions.- As a team lead, it is important to maintain a balance between coding and people management.- Effective communication involves asking the right questions and providing feedback in a constructive manner.- Prioritizing tasks and managing time can be achieved through frameworks like the three-question communication framework.Chapters03:39 Introduction and Background11:59 Challenges and Learning in the Fast-Paced Tech Industry19:42 Staying Up-to-Date with Evolving Technologies50:42 Understanding the Building Blocks of Regular Expressions58:48 Live Coding Exercise: Matching Words with Regular Expressions
  • Chris Coyier, CEO CodePen: How We're Building CodePen 2.0, CSS-Tricks

    01:34:36
    Links- Codecrafters (Sponsor): https://tej.as/codecrafters- Codepen: https://codepen.io- TailwindCSS Play CDN: https://tailwindcss.com/docs/installation/play-cdn - Chris on X: https://x.com/chriscoyier- Tejas on X: https://x.com/tejaskumar_SummaryIn this episode, Chris Coyier (CEO of CodePen) discusses his background and the projects he is involved in, including CSS-Tricks and CodePen. He talks about the workload and challenges of running these projects, particularly the complexities of managing advertising and the business models. Chris also shares insights into the tech stack used at CodePen, including Next.js and GraphQL. He highlights the benefits of GraphQL and the code generation tool, which helps ensure data consistency and type safety. Finally, he discusses the future plans for CodePen, including the adoption of server components. In this part of the conversation, Chris Coyier and Tejas Kumar discuss the Apollo code gen and type checking, the features of CodePen 2.0, the balance between simplicity and complexity, NPM install in CodePen, NPM support in CodePen 2.0, and the differences between ESM and CommonJS. In this conversation, Chris Coyier, the co-founder of CodePen, discusses various topics related to CodePen's architecture, development stack, and future plans. He talks about the use of CommonJS and GraphQL, the transpilation process in CodePen, the serverless architecture and Lambda functions, onboarding and familiarity with CodePen's codebase, staying up-to-date with industry trends, CodePen's design system, using Tailwind CSS in CodePen, the data layer in CodePen, and the potential acquisition of CodePen.Takeaways1. Running projects like CodePen/CSS-Tricks involves a significant workload, including managing advertising and the business models.2. The tech stack at CodePen includes Next.js and GraphQL, which provide powerful tools for building and managing web applications.3. Code generation with tools like Apollo helps ensure data consistency and type safety in GraphQL queries.4. Onboarding and becoming familiar with CodePen's codebase is relatively straightforward.5. Tailwind CSS can be used in CodePen by linking to a CDN-hosted URL.Chapters00:03:27 Introduction and Background 00:06:49 Running CSS-Tricks and CodePen 00:12:45 Workload and Challenges 00:25:37 Moving to Next.js 00:29:49 Server Components and Future Plans 00:32:27 Code Generation with Apollo 00:34:10 Apollo Code Gen and Type Checking 00:38:45 CodePen 2.0 Features 00:46:43 Simplicity vs Complexity 00:48:08 NPM Install and CodePen 00:54:50 NPM Support in CodePen 2.0 00:59:12 ESM vs CommonJS 01:01:54 Common JS and GraphQL 01:02:31 CodePen's Architecture and Transpilation 01:04:58 Serverless Architecture and Lambda Functions 01:08:14 Onboarding and Familiarity with CodePen's Codebase 01:08:42 Staying Up-to-Date with Industry Trends 01:12:46 CodePen's Design System 01:20:48 Using Tailwind CSS in CodePen 01:25:01 CodePen's Data Layer 01:29:03 AI Features and CodePen 2.0 01:31:26 Potential Acquisition of CodePen
  • Dan Shappir: How to Maximize Web Performance

    01:56:42
    Links- Codecrafters (sponsor): https://tej.as/codecrafters- Improving Wix Performance: https://www.smashingmagazine.com/2021/11/improving-performance-wix-websites-case-study/- Dan on X: https://x.com/danshappir- Tejas on X: https://x.com/tejaskumar_SummaryIn this episode, Dan Shappir discusses his journey in web performance, starting from gaming networks before the web. He explains the web vs. internet distinction, offline-first web apps, and remote access solutions. Dan's role at Next Insurance as a performance tech lead is highlighted. The talk covers improving browser performance, server-side rendering at Wix, modern CSS, CDNs, backend issues, and encapsulation impacts. Dan and Tejas discuss the BF cache's workings, browser compatibility, and telemetry impacts. Tips for staying updated in tech are shared, emphasizing passion and teaching. The episode concludes with support for Gaza and the Speculation Rules API.Takeaways1. Avoid overloading the browser with excessive JavaScript, CSS, and HTML.2. Keep things small and lean to improve performance.3. Implement server-side rendering, use modern CSS, and leverage caching with CDNs to enhance performance.4. To stay relevant in the tech industry, follow your passion, accept that you can't know everything, and focus on understanding core concepts rather than chasing every new technology.5. The BF cache (back-forward cache) allows browsers to store a memory snapshot of a web page when the user navigates away, enabling instant retrieval when the user returns.Chapters00:00 Introduction and Honoring the Situation01:17 Dan's Background and Early Career07:46 Dan's Journey into Web Performance15:09 Offline-First Web Application25:34 Joining Wix and Improving Performance34:09 Transition to Next Insurance45:46 The Beauty of Constraints59:13 Using CSS for Layout01:04:12 Backend Performance Issues01:20:30 BF Cache01:25:32 Performance Strategies01:31:25 Advice for Staying Relevant in Tech01:42:42 Speculation Rules API01:43:14 Resource Hints: Prefetch and Preload01:48:12 Script Tags and JSON Representation01:51:39 Closing Remarks and Homework
  • Sanket Sahu, CEO GeekyAnts: How to Build and Scale a Company to 400+ with Open Source

    01:33:22
    Links- Codecrafters (sponsor): https://tej.as/codecrafters- GeekyAnts: https://geekyants.com- Sanket on X: https://x.com/sanketsahu- Tejas on X: https://x.com/tejaskumar_SummarySanket Sahu, founder and CEO of GeekyAnts, built a successful IT consulting company focused on web and mobile app development. Starting as a freelancer, he scaled the company to over 400 people, emphasizing problem-solving and strong culture. GeekyAnts began contributing to open source with NativeBase, transforming from a web shop to a mobile and web shop. This boosted their reputation, leading to global requests and organizing the largest React Native meetup group.They developed GlueStack, a full-stack framework, and GlueStack UI, a component library prioritizing accessibility and performance. GeekyAnts explores AI for code generation and AI-driven workflows, building an engineering studio with a user-first and AI approach. They emphasize evolving every six months, customer focus, and quarterly OKRs. The future involves productized services, dev tools, and internal products.In this episode, you will learn how Sanket Sahu built GeekyAnts from freelancing to a 400+ team, contributed to open source with NativeBase, and leveraged AI for growth. Discover their emphasis on problem-solving, culture, evolving every six months, and future plans involving productized services and dev tools.Takeaways1. Problem-Solving Attitude: Building a successful IT consulting company requires a problem-solving mindset at every level.2. Open Source Contributions: Contributing to open source can build your brand and establish credibility, as seen with GeekyAnts' release of NativeBase.3. Balancing Processes and Speed: Processes are essential for scaling but should not impede speed and innovation.4. AI Integration: Exploring AI for code generation and AI-driven workflows can positively impact business by increasing efficiency and problem-solving capabilities.5. Continual Evolution: Regularly evolving and rebuilding your company, as GeekyAnts does every six months, is crucial for sustained growth and adaptation.Chapters00:00 Introduction and Background 05:46 Starting Geeky Ants and Scaling to 400+ People 10:15 Transition from Developer to Founder 13:44 The Importance of Problem-Solving and Culture 19:05 Adapting to Changing Environments and Roles 26:04 The Role of Open Source Contributions 32:01 GeekyAnts' Journey into Open Source and React Native 38:15 The Impact of Open Source on GeekyAnts' Reputation 41:16 GeekyAnts: From Web Shop to Mobile Plus Web Shop 48:03 Solving Fragmentation and Unifying React Native 52:27 Introducing GlueStack: A Framework for Full-Stack Applications 56:15 GlueStack UI: Prioritizing Accessibility and Performance 01:03:59 Focusing on Visual Accessibility and AI 01:05:45 Exploring AI in Code Generation and Workflows 01:08:08 The Impact of AI on Business 01:10:05 Building an Engineering Studio with a User-First and AI Approach 01:20:10 The Importance of Evolving and Rebuilding 01:26:57 Using Quarterly OKRs for Planning and Objectives 01:29:57 The Future of GeekyAnts: Productized Services, Dev Tools, and Internal Products
  • Shruti Kapoor: How Slack is Built and Tested, How Patents are Filed

    01:38:32
    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_SummaryShruti 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.Takeaways1. 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.Chapters09:39 Working at Slack and Impact on Users18:35 Redesigning Slack and User Feedback33:00 Patenting and Inventing42:39 Clips and Huddles51:40 Design System and Front-end56:02 Testing and Iteration57:59 Career Journey and Joining Slack01:00:38 Slack's Interview Process01:01:38 At-Home Assignment01:02:35 Comparison with Spotify's Interview Process01:03:34 Technical Interview Experience at Spotify01:05:02 Preference for Functional Programming01:05:43 Using 'for' Loop Instead of 'reduce'01:06:39 Approach to Code Review01:08:35 Code Review as a Learning Experience01:09:58 Testing Code during Code Review01:11:10 Choosing Between Startups and Big Tech01:11:39 Advantages and Trade-offs of Big Tech01:16:57 Advantages and Trade-offs of Startups01:18:47 Changing Teams in a Big Company01:22:51 Navigating Conversations about Changing Teams01:25:40 Role of Diversity and Inclusion in the Job