Skip to main content
thoughtbot thoughtbot
  • Live on Twitch!

    thoughtbot is livestreaming

    Work alongside the thoughtbot team as we collaborate with each other and our clients, live. Ask us anything, we're live right now!

  • Case Studies
  • Blog
  • Let’s Talk
Live on Twitch!

thoughtbot is livestreaming

Work alongside the thoughtbot team as we collaborate with each other and our clients, live. Ask us anything, we're live right now!

Let’s get started!
View all Services
Development
  • Ruby on Rails
  • Hotwire
  • AI and Machine Learning
  • Maintenance
  • Mobile
Design
  • Discovery Sprints
  • UX, UI, and Product Design
  • Design Systems
Product
  • MVP
  • Product Management
  • Accessibility
Team and Processes
  • Team Augmentation
  • Fractional Leadership
View all Services
View all Resources
Development
  • Tech Leadership Resources
  • Open Source
  • Books
  • The Bike Shed Podcast
  • Live Streaming on YouTube
  • Conference Talks
The business of great software
  • Playbook
  • Purpose Built
  • Giant Robots Smashing Into Other Giant Robots Podcast
  • Design Sprint Guide
  • Live Streaming on LinkedIn
View all Resources

Articles by David Bernheisel

View other authors

  1. Querying an Embedded Map in PostgreSQL with Ecto

    Structs and maps are easy to work with in Elixir, but if they are stored in the database as JSON and accessed via an Ecto Schema, it’s not as clear how to query them. We’re going to explore how to do that, and make it clear and easy.

    David Bernheisel
    March 9, 2018
    • Ecto
    • Map
    • Embeds One
    • PostgreSQL
    • JSON
    • Elixir
    • Query
    • Web
  2. Testing Random Data in Emails with Bamboo

    Testing with Bamboo is easy, and it’s still easy when the email’s content includes random data.

    David Bernheisel
    October 16, 2017
    • Bamboo
    • Test
    • Email
    • Phoenix
    • Elixir
  3. Lessons From Using Phoenix 1.3

    Phoenix 1.3 introduces contexts, which has been met with some resistance. I’ve developed an application using it and learned some lessons.

    David Bernheisel
    August 1, 2017
    • Context
    • Phoenix
    • Elixir
  4. Simple Phoenix Text Inputs with Formulator

    Ugh… three lines for a simple text input for a form in Phoenix? How about one with Formulator?

    David Bernheisel
    June 30, 2017
    • Formulator
    • Elixir
    • Phoenix
    • Forms

Footer

thoughtbot
  • Services
  • Case Studies
  • Resources
  • Let's Talk
  • Our Company
  • Careers
  • Purpose
  • Blog
  • Sponsor
  • Mastodon
  • Bluesky
  • GitHub
  • YouTube
  • Twitch
  • Feeds
© 2025 thoughtbot, inc.

The design of a robot and thoughtbot are registered trademarks of thoughtbot, inc.

  • US: +1 (877) 9-ROBOTS
  • UK: +44 (0)20 3807 0560
  • Beware of fraudulent thoughtbot job listings Learn more
  • Code of Conduct
  • Accessibility Statement
  • Privacy Policy