8 episodes

Ben Orenstein interviews great programmers about their craft.

The Tuple Podcast Ben Orenstein

    • Technology

Ben Orenstein interviews great programmers about their craft.

    Matt Swanson, CTO at Arrows

    Matt Swanson, CTO at Arrows

    Ben and Matt discuss the role of a product engineer and Matt's journey as a content creator. Matt shares his experience working at a consulting agency and how it shaped his perspective on engineering. They also discuss the benefits of working in-person and the importance of the quality of coworkers. Matt reflects on his motivation for content creation and how it ties into his competitive nature. They touch on the changing landscape of content creation and the value of posting code snippets, and about Matt's experience getting hired at Arrows through Twitter and the value of demonstrating competence through content creation. They touch on the longevity of Ben's Ruby talk and the elements that make it stand out.

    Links
    Tuple.app (https://tuple.app) - The best app for pair programming
    Arrows.to (https://arrows.to) - An app for collaborative customer onboarding that Matt works on
    Boring Rails (https://boringrails.com) - Where Matt shares boring tools and practices to keep you as happy and productive
    YAGNI (https://yagni.fm) - The podcast where Matt and look at software practices and tools and ask: "do we need it?"

    Key Takeaways
    A product engineer is someone who writes code, cares about design and user experience, and is responsible for the end-to-end delivery of a feature.Working at a consulting agency can provide valuable experience by exposing developers to a variety of projects and domains.Content creation can be a way to contribute back to the community and establish oneself as an expert.Demonstrating competence through content creation can help in the hiring process.Long-lasting talks focus on practical ideas and good object-oriented design principles.
    Chapters

    (00:00) - Introduction and Matt's Role as a Product Engineer
    (07:11) - The Benefits of Working at a Consulting Agency
    (09:34) - The Importance of Quality Coworkers
    (13:41) - The Motivation for Content Creation
    (18:54) - The Value of Posting Code Snippets
    (24:03) - Packaging Content as an Event
    (26:40) - Demonstrating Competence through Content Creation
    (32:05) - Long-Lasting Talks: Practical Ideas and Object-Oriented Design
    (38:39) - 'Nathan for You': Creative and Mischievous Problem-Solving
    (41:30) - Unconventional Advertising: Selling Ads on the Penny
    (44:29) - Thinking Outside the Box: Unconventional Solutions

    • 45 min
    Derrick Reimer, Founder of SavvyCal

    Derrick Reimer, Founder of SavvyCal

    In this conversation, Ben and Derrick discuss the challenges of growing a business and the decision to target specific market segments. They explore the trade-offs between serving a broad audience and focusing on a niche market. They also discuss the technical choices and architectural decisions in building a product, with Derrick sharing his positive experience with Elixir and the Phoenix framework.

    Links
    Tuple.app (https://tuple.app) - The best app for pair programmingSavvyCal.com (https://savvycal.com) - The scheduling tool Derrick createdPhoenix (https://www.phoenixframework.org) - the Elixir framework SavvyCal is built onRails (https://rubyonrails.org) - the Ruby framework Ben worked with
    Key Takeaways
    Elixir and the Phoenix framework offer a maintainable and explicit approach to building applications.Functional programming paradigms can simplify code organization and improve maintainability. Object-oriented programming and functional programming have different approaches to code organization and maintainability.The active record pattern in Rails can lead to large and complex models, while the repository pattern in Phoenix provides a more modular and explicit approach.Open source contributions can be seen as a good faith contribution to the commons and can provide benefits such as status and marketing opportunities.Developers can improve their design skills by studying resources like the book 'Refactoring UI' and being introspective about user interfaces in their daily lives.
    Chapters

    (00:00) - Introduction and Background
    (02:12) - Savvy Cal and Horizontal Products
    (05:56) - Choosing Between Niche and Broad Audience
    (15:59) - Phoenix vs. Rails
    (22:20) - Object Oriented vs. Functional Programming
    (36:02) - The Motivations Behind Open Source Contributions
    (43:20) - Improving Design Skills as a Technical Person

    • 45 min
    Thorsten Ball, Software Engineer at Zed

    Thorsten Ball, Software Engineer at Zed

    In this episode, Ben chats with Thorsten Ball. This conversation fits neatly into two halves - in the first, Ben and Thorsten go deep on how to differentiate yourself, work in public, and make it easy for people to hire you. In the second part of the conversation, they talk more specifically about Zed, why it matters, and how it’s being built. 

    Links
    Tuple.app (https://tuple.app) - The best app for pair programming
    Thorsten’s website (https://thorstenball.com) - Where you can find his books, blog, and other podcast appearances
    Zed (https://zed.dev) - The editor Thorsten is working on

    Key Takeaways
    Cultivating a diverse skill set can lead to unique opportunities and make you a valuable asset in a company.Evidence of competence, such as published work or open-source contributions, can significantly impact your chances of getting hired.Soft skills, such as communication and problem-solving, are essential for success in engineering roles.Taking initiative and adding value beyond your job description can make you stand out and contribute to the growth of a company.Interviews should be seen as a chance to demonstrate your skills and fit within a company's culture, rather than just answering questions. Visual cues and real-time interaction are important in conversations to gauge resonance and maintain engagement.Different business models exist in the tech industry, and investment can provide the time and resources needed for product development.Building high-quality products in open source requires a focus on performance, quality, and attention to detail.The landscape of text editors and funding is complex, with various models and approaches.Working on a quality product with a talented team can be fulfilling and contribute to personal growth.Noticing and writing about interesting ideas can enhance creativity and lead to new insights.
    Chapters

    (00:00) - Introduction and Background
    (00:21) - Combining Software Engineering and Content Production
    (04:41) - The Power of a Diverse Skill Set
    (07:40) - Creating Valuable Content
    (11:53) - Taking Initiative and Adding Value
    (18:47) - Reaching Out and Getting Hired
    (20:42) - The Power of Evidence of Competence
    (21:39) - The Myth of Not Hiring
    (25:35) - The Importance of Leaving Evidence
    (28:06) - Resumes and Demonstrating Competence
    (30:56) - Interviews as a Vibe Check
    (32:38) - The Bias in Interviews
    (33:55) - Hiring Process and Competence
    (34:22) - No Foolproof Hiring Process
    (35:20) - Evidence of Ability
    (37:00) - Accepting the Hiring Game
    (39:54) - Marketing and Self-Promotion
    (44:10) - Zed's Journey and User Availability
    (51:02) - Collaboration in Zed
    (56:02) - The Magic of Audio Calls
    (58:49) - The Intimacy of Voice-Only Communication
    (01:01:16) - The Distraction of Self-View in Video Calls
    (01:02:43) - The Importance of Visual Cues in Conversations
    (01:03:36) - The Value of Real-Time Interaction
    (01:05:34) - The Deep Knowledge and Complexity of Vim
    (01:06:00) - The Benefits of Noticing and Writing About Interesting Ideas
    (01:09:40) - The Habit of Writing and Its Impact on Thinking

    • 1 hr 12 min
    Andreas Kling, Creator of SerenityOS and the Ladybird Browser

    Andreas Kling, Creator of SerenityOS and the Ladybird Browser

    Ben interviews Andreas Kling, creator of SerenityOS and the Ladybird browser. They talk about the concept of lifestyle software and how it relates to the development of SerenityOS, Andreas’ vision of creating a Zen garden for developers, and the benefits of using a mono repo and a unified language in the development process. They also touch on the use of AI and language models for writing code, the art of using Copilot effectively, and the future of LLMs in pair programming.

    Enjoy!

    Links
    Tuple.app - The best app for pair programming
    Andreas’ YouTube Channel - The home for Serenity, Ladybird, and other updates from Andreas
    SerenityOS - The operating system Andreas built
    Ladybird - The browser Andreas built

    Key Takeaways
    Serenity OS is an example of lifestyle software, where the focus is on the happiness of the developers and the joy of programming.The use of a mono repo and a unified language in Serenity OS allows for efficient development and easy cross-cutting changes.Onboarding new contributors by encouraging them to explore and find their own areas of interest leads to a diverse range of contributions.Raw coding videos and pair programming can be powerful tools for knowledge sharing and learning.Having a long-term vision and setting ambitious goals can help overcome the challenges of monumental projects.Continuous learning and improvement are essential for staying on top of new tools and technologies in the programming industry.Balancing programming and management responsibilities can be challenging, but leveraging the skills and expertise of a team can lead to greater productivity and growth. Building confidence in programming is crucial for productivity and success.Starting small and building miniature models can help understand complex concepts.Throwing away code and rebuilding with improved architecture can lead to better outcomes.Using AI and language models can significantly speed up coding tasks.
    Chapters
    (00:00) - Introduction
    (00:41) - Serenity OS and Lifestyle Software
    (03:40) - Building a Zen Garden for Developers
    (09:07) - Mono Repo and Unified Language
    (11:29) - Easy Onboarding and Contributions
    (13:05) - The Power of Raw Coding Videos
    (15:48) - Pair Programming and Knowledge Sharing
    (24:06) - Facing Intimidation at the Start of Projects
    (26:18) - Maintaining a High Clock Speed
    (32:34) - Continuous Learning and Improvement
    (36:44) - Balancing Programming and Management
    (39:07) - The Joys and Challenges of Company Growth
    (40:13) - Coaching and Mentoring
    (41:40) - Building Confidence in Programming
    (42:49) - Building Miniature Models
    (43:41) - Building to Throw Away
    (46:45) - Learning from Senior Engineers
    (48:09) - Using AI and LLMs for Writing Code
    (51:47) - The Art of Using Copilot
    (54:27) - The Future of LLMs in Pair Programming
    (57:47) - The Evolution of Open Source Projects
    (01:03:44) - Establishing Community Rules Organically

    • 1 hr 11 min
    Fable Tales, Staff Engineer at Stripe

    Fable Tales, Staff Engineer at Stripe

    In this conversation, Fable and Ben dig deep on building a technical career that balances programming and company leadership. Fable shares their experience working at Stripe and the different roles they have held, including being a technical advisor to the CTO. They also discuss Fable's career move from being a hands-on programmer to role where less hands-on coding is required, Fable's take on "code crimes", and how to find enjoyment and fulfillment in solving complex problems.
    Links
    Tuple.app - The best app for pair programmingStripe - The company Fable works atRuby Kaigi - An annual conference dedicated to the Ruby programming language.Sidekiq - A simple, efficient background processing library for RubySorbet - A fast, powerful type checker designed for Ruby.YubiKey - A hardware device designed for high-security two-factor authentication.
    Key Takeaways
    Making connections and friendships at conferences can be valuable in the programming community.Debugging and problem-solving skills are crucial for software engineers.Being willing to learn and work with different programming languages can enhance your skills.Prototyping and spiking can be effective ways to test and develop new ideas.Chapters
    (00:00) - Introduction and Conference Interaction
    (00:38) - Making Friends at Conferences
    (04:13) - Work at Stripe
    (06:17) - Becoming a Staff Engineer
    (06:53) - Getting Good at Programming
    (08:46) - Debugging and Problem Solving
    (11:22) - Working with C and C++
    (13:13) - Debugging with Print Statements and Debuggers
    (17:06) - Prototyping and Spiking
    (24:11) - Technical Advisor to the CTO
    (27:26) - Coding Hill to Die On
    (29:52) - Workflow Optimization
    (36:53) - Coding vs Non-Coding Time
    (39:08) - Transition to Leadership
    (41:07) - Motivation and Impact
    (42:13) - Love for Programming
    (44:14) - Coding Style: Short Methods and Small Classes
    (48:48) - Personal Style and Code Crimes
    (52:18) - Commercial Open Source
    (56:08) - Getting Involved in Open Source
    (01:04:52) - Wrap-up

    • 1 hr 5 min
    Josh Pigford, Creator of Maybe.co

    Josh Pigford, Creator of Maybe.co

    In this episode, Ben interviews Josh Pigford, founder of Maybe.co, about the company’s journey from VC-backed startup -> closed startup -> open source project -> funded open source project. They discuss JavaScript and Rails trade-offs, the challenges of building a personal finance software, and the operational difficulties of building a business based on open source software.

    Links
    Tuple.app - The best app for pair programmingMaybe.co - The fintech startup Josh foundedNodeJS - The starting framework for Maybe.coRuby on Rails - The new framework for Maybe.co

    Key Takeaways
    Choosing the right tech stack is crucial for the success of a project.Running out of runway can force difficult decisions and pivots.Making a codebase public can generate interest and community engagement.Replacing third-party dependencies can be challenging but necessary.Rebuilding a software project requires careful planning and decision-making. Building a personal finance app involves challenges such as managing pull requests and issues in open source development.Transitioning to Rails can provide a more stable and efficient framework for building a complex application.The decision to rewrite the app from scratch allows for better decision-making and faster progress.Targeting Mint users with a budgeting tool presents an opportunity to capitalize on a fragmented market.Detangled, a project that simplifies legal documents, has the potential for commercial success. Moonshot ideas can be exciting and worth pursuing, even if the specific angle is unclear.ChatGPT has the potential to generate usable results, either through heavily massaged prompts or prewritten blocks.Tools like detangle can augment conversations with lawyers, providing insights and helping users know what questions to ask.There are commercial opportunities in selling services like detangle to companies that don't have full-time counsel.Finding the right balance between passion and traction is important when deciding which projects to pursue.
    Chapters

    (00:00) - Introduction
    (01:21) - Making the Codebase Public
    (07:21) - Community Engagement and Pull Requests
    (12:17) - Ripping Out Functionality
    (15:03) - Replacing Data Aggregator
    (16:10) - Building a Personal Finance App
    (17:39) - Challenges of Open Source Development
    (21:08) - Managing Pull Requests and Issues
    (23:35) - Struggles with React Next.js
    (27:45) - Choosing Rails for Development
    (32:40) - Targeting Mint Users with Budgeting Tool
    (35:45) - Modular Use Cases
    (38:53) - Open Source Contributions and Bounties
    (40:47) - Next Steps
    (45:16) - Detangled: Simplifying Legal Documents
    (48:32) - Exploring Moonshot Ideas
    (48:58) - The Potential of ChatGPT
    (49:45) - Augmenting Conversations with Lawyers
    (50:21) - Commercial Opportunities
    (50:53) - Balancing Passion and Traction
    (51:20) - Closing Remarks

    • 51 min

Top Podcasts In Technology

No Plans to Merge
Daniel Coulbourne & Caleb Porzio
TED Radio Hour
NPR
Acquired
Ben Gilbert and David Rosenthal
Lexicon by Interesting Engineering
Interesting Engineering
科技部落格
听友51624775
Lex Fridman Podcast
Lex Fridman

You Might Also Like

Mostly Technical
Ian Landsman and Aaron Francis
Hackers Incorporated
Ben Orenstein and Adam Wathan
Over Engineered
Chris Morrell
Talking Businessly
Daniel Coulbourne & John Drexler
REWORK
37signals
Notes On Work - by Caleb Porzio
Caleb Porzio