Work
About
Careers
Blog
Contact
Build.
Document.
Share.
When we work on a new project, we document what we learn along the way. This blog is our way to share what we’ve found valuable in designing and building software over the years.
The Echobind Blog
All
Microblog
Remote Work
TypeScript
Conferences
Design
Engineering
Testing
Stripe
3D
Node
Virtual Events
Agency
Bison
Healthcare
JavaScript
Open Source
React
React Native
Next.js
Strategy
Ruby on Rails
Software Development
Engineering
Lessons and learnings from the real-world software development we do daily.
Data Validation and Error Handling Best Practices
Cully Larson
March 21, 2023
Rails Scopes: Create Faster, Cleaner Queries
Deloris Thompson
February 15, 2023
‘Metaprogramming’ Filters w/ Rails-GraphQL
Matt Thompson
January 18, 2023
MVC flavors with Prisma Middleware and Extensions
Matt Thompson
January 12, 2023
Typescript Generics
Jennifer Watanabe
January 11, 2023
An A-Frame State Management Example
Samantha Shackelford
January 6, 2023
Test Stripe Subscriptions with Test Clocks
Alex Anderson
January 5, 2023
Instant Site Updates with On-Demand Revalidation and Directus
Alex Anderson
December 15, 2022
Playwright with Next-Auth and PrismaOverview
Matt Thompson
December 5, 2022
React vs React Native: How Different Are They, Really?
Mike Cavaliere
December 1, 2022
Conditionally Render Fields Using React Hook Form
Preston Kelly
November 15, 2022
Why we ditched GraphQL for tRPC
Alex Anderson
November 8, 2022
Book Review: Ask Your Developer by Jeff Lawson
Claire Surma
November 3, 2022
What’s the difference between artifacts and cache in GitHub Actions?
Cully Larson
October 27, 2022
Why Our Team is Stripe Certified; Yes, Including Non-Developers
Mike Cavaliere
October 4, 2022
Slicing TypeScript Literal Strings
Alex Anderson
September 29, 2022
Getting Started with Next.js, GraphQL and React Query (1/3)
Preston Kelly
September 28, 2022
Using the currentColor CSS Property with SVG
Alex Anderson
September 26, 2022
Make Prisma Ignore a Migration Change
Cully Larson
September 23, 2022
Dynamic CMS-driven Redirects with Next.js
Alex Anderson
September 22, 2022
Running Cypress tests in parallel in GitHub Actions without Cypress Dashboard
Cully Larson
September 16, 2022
CSS Custom Properties for Stacked Transforms
Alex Anderson
September 14, 2022
Finding flaky Cypress tests by simulating a slow network
Cully Larson
September 9, 2022
Echobind Ships Expo TypeScript Template 2.0.0
Jenn Robison
August 23, 2022
My Journey In Tech
Alex Silcox
August 11, 2022
Bison Release 1.12.0
Kishan Gajera
August 9, 2022
Benefits of Implementing TypeScript Early
Mariah Grey
June 30, 2022
Spring Peaks at Echobind
Krystalyn Bauer
June 8, 2022
Custom React Hook Guide: Build a Kanye Quote app with React Native
Mickey Martinez
May 19, 2022
Out and About at React Miami
Echobind Team
April 28, 2022
Reduce repeated code in Jest tests with it.each
Kishan Gajera
March 31, 2022
TypeScript - Generic Types
Dominic Sherman
March 30, 2022
New ECMAScript Features to Help Get You Through Your Day
Cory Bosselmann
March 29, 2022
Inspiring Kids to Pursue a Future in Tech
Jennifer Watanabe
March 28, 2022
Safely Alter Postgres Columns with USING
Cully Larson
March 25, 2022
How To Get Your iOS App Into TestFlight and Test It, for Xcode 13
David Barkman
January 20, 2022
Creating Custom Icon Fonts in React Native and Expo
Alex Silcox
January 17, 2022
SectionedFetchRequest, sweet, sweet automagic goodness!
Echobind Team
January 7, 2022
Binary trees, what are they?
Usman Ibrahim
November 29, 2021
Bison Release 1.11.0
Kishan Gajera
November 8, 2021
Developing an Independent Watch App
David Barkman
October 21, 2021
React Hook Form for React Native
Alex Silcox
September 9, 2021
Converting Javascript to TypeScript with React Native
Jennifer Watanabe
September 2, 2021
Using NextAuth.js with Bison
Kishan Gajera
August 19, 2021
Swift Concurrency
David Barkman
August 12, 2021
Alexa Skills
Deloris Thompson
July 16, 2021
My Journey to Engineering
Paul Buendia
July 8, 2021
Automated React-Native Release Tagging Using GitHub Actions
Dominic Sherman
July 1, 2021
An Intro to Web3 Development
Dominic Sherman
June 17, 2021
SwiftUI, is it ready?
Echobind Team
June 10, 2021
The Plan
Mariah Grey
May 27, 2021
NextAuth.js Intro [3 of 3]: Adding Access Control
Mike Cavaliere
May 20, 2021
An Introduction to Ethereum
Dominic Sherman
May 13, 2021
Learning Rails after Bison’s JAMstack
Kim Wilkes
May 6, 2021
Why Should I Write Clean Code?
Mariah Grey
April 29, 2021
Variety Is the Spice of (Agency) Life
Jenn Robison
April 22, 2021
Docker Compose DB
Matt Thompson
April 15, 2021
Revelio: Defer and Lazy-Load with the Intersection Observer API
Deloris Thompson
April 8, 2021
React Native 0.64
Dominic Sherman
April 1, 2021
NextAuth.js Intro [2 of 3]: Magic Link Email Authentication
Mike Cavaliere
March 25, 2021
Measure Twice Code Once
Isaac Myman
March 17, 2021
NextAuth.js Intro [1 of 3]: One-Click Signup
Mike Cavaliere
March 11, 2021
From Teaching to Tech
Kim Wilkes
March 4, 2021
Creating Your Own JAMStack Blog in No Time with Next.js and Bison
Mike Cavaliere
October 19, 2020
Choosing Your Path
Jenn Robison
September 18, 2020
A Guide for RESTful APIs with Node, Sequelize & Postgres
Mickey Martinez
September 1, 2020
Next-Level Mobile App Debugging with a Network Proxy
Ryan Atkinson
May 21, 2020
Leveling Up
Alvin Crespo
May 19, 2020
COVID-Q: Technology Overview
Chris Ball
May 12, 2020
Not Just a Code Monkey
Jenn Robison
May 11, 2020
Hyper Focused → Hyper Productive
Matt Thompson
April 28, 2020
GraphQL and Typescript: Revisiting an Echobind Case Study
Ryan Atkinson
April 27, 2020
3 Attributes of Good Embedded Software Consultants
Mike Cavaliere
April 23, 2020
How to Avoid Response Bias in Surveys
Anne Tolmie
April 20, 2020
Listen for the Call
Jenn Robison
April 2, 2020
Feature Flipping with Rails and Rollout
Gabriel Martin
March 24, 2020
Remote Workers: Help Your Neighbor
Matt Thompson
March 17, 2020
Getting to Yes Faster
Anne Tolmie
March 3, 2020
Use These 3 Things to Add Value to Your App in 5 Minutes or Less
Echobind Team
February 18, 2020
React Native Fix: Jumping Screens in the React-Navigation TabNavigator
Ryan Atkinson
February 17, 2020
How to Run React Native Apps on a Specific Device in the iOS Simulator
Josh Buchea
February 10, 2020
Why Top-Notch Soft Skills Are Vital for Software Consultants
Mike Cavaliere
February 7, 2020
React Native iOS Splash Screen with Storyboard
Jenn Robison
February 5, 2020
Yes, Your Team Needs Pull Request Templates
Echobind Team
January 29, 2020
Optimizing your Android Build for React Native
Jenn Robison
January 21, 2020
Building a Social Media Image Generator
Joe Previte
January 14, 2020
Ruby on Rails — Importing Data from an Excel File
Gabriel Martin
January 13, 2020
What to Ask When Hiring a React Native Consultancy
Mike Cavaliere
January 10, 2020
Up and Running — Next.js and TypeORM
Matt Thompson
January 9, 2020
Convert a React Component to TypeScript
Joe Previte
January 7, 2020
How to Integrate Ruby on Rails with Box.com in 2020 (Part 1)
Kory Tegman
January 3, 2020
Finding Joy In Automated Tests
Jenn Robison
January 2, 2020
Static Sites without the Static
Chris Ball
December 31, 2019
Zero to Dark Mode in React Native
Josh Buchea
December 13, 2019
React with TypeScript: Components as Function Declarations vs. Function Expressions
Joe Previte
December 13, 2019
Clear the Clutter with Fragments
Jenn Robison
December 12, 2019
Styling with :focus-within
Echobind Team
December 9, 2019
Reducing Costly Renders During Gesture Animations in React Native
Isaiah Grey
December 9, 2019
Tides of the Tailwind
Kory Tegman
December 5, 2019
Advantages Of Dark Theme User Interfaces
Michael Dang
December 4, 2019
Up and Running: ZEIT Now Environments
Matt Thompson
December 1, 2019
The ROI of Self-Directed Investment Time for Software Engineers
Mike Cavaliere
November 27, 2019
The Business Value of (& Precautions for) React Native
Mike Cavaliere
November 26, 2019
A Comparison of Three Methods for Styling Components in React Native
Ryan Atkinson
November 19, 2019
AllThingsOpen 2019 Recap
Joe Previte
November 12, 2019
Reinvesting in Echobind
Michael Yared
October 22, 2019
Rolling Your Team RPG Style
Matt Thompson
October 21, 2019
This Month We Learned - September 2019
Anne Tolmie
October 19, 2019
How to Mock Using Jest.spyOn (Part 2)
Jeffrey Zhen
October 16, 2019
8 Business Reasons to Adopt GraphQL and Apollo Server
Mike Cavaliere
October 15, 2019
A Reflection: Building a GraphQL API with Nest.js
Joe Previte
October 8, 2019
GraphQL — the Dev Edition
Matt Thompson
September 26, 2019
This Month We Learned - August 2019
Anne Tolmie
September 6, 2019
Spotlight Series : Mike Cavaliere
Echobind Team
August 27, 2019
Becoming More Proficient on the Back-End (Part 4)
Joe Previte
August 23, 2019
Becoming More Proficient on the Back-End (Part 3)
Joe Previte
August 16, 2019
Becoming More Proficient on the Back-End (Part 2)
Joe Previte
August 15, 2019
Becoming More Proficient on the Back-End (Part 1)
Joe Previte
July 29, 2019
Supporting the next generation of developers through volunteering
JC Hiatt
May 16, 2019
How to Write Functional Tests in React (Part 1)
Jeffrey Zhen
April 12, 2019
Software Development: A Woodworkers Perspective (Final)
Matt Thompson
April 1, 2019
Software Development: A Woodworkers Perspective (Part 4)
Matt Thompson
March 15, 2019
Software Development: A Woodworkers Perspective (Part 3)
Matt Thompson
March 1, 2019
Software Development: A Woodworkers Perspective (Part 2)
Matt Thompson
February 15, 2019
A Common Conditional Rendering Bug in React Native
Ryan Atkinson
January 22, 2019
Lazy Loading Components in React
Jeffrey Zhen
January 22, 2019
Software Development: A Woodworkers Perspective (Part 1)
Matt Thompson
January 14, 2019
Software Development: A Woodworkers Perspective
Matt Thompson
January 1, 2019
What is this type?!
Alvin Crespo
October 25, 2018
Automating CodePush deploys with Fastlane
Chris Ball
August 27, 2018
A 12-Factor Approach to Environment-Specific Builds in React Native
Chris Ball
August 7, 2018
Integrating Prettier + ESLint + Airbnb Style Guide in VSCode
Jeffrey Zhen
June 20, 2018
Productive Performance for Engineers
Jeffrey Zhen
June 18, 2018
Essential Customizations for VSCode
Jeffrey Zhen
June 13, 2018
Improve Developer Productivity with Generators and Team Conventions
Chris Ball
May 8, 2018
GDPR Compliance For App Developers
Michael Yared
April 28, 2018
The Secret Art of Effective Developer Mentorship
Ryan Atkinson
April 26, 2018
Thanks for 2017!
Chris Ball
January 9, 2018
How to Engage a Community
Robert Beene
December 29, 2017
Happy Holidays
Echobind Team
December 20, 2017
Pressure Indicating UI
Dave Wasmer
December 19, 2017
10 Questions to Ask Around Safeguarding Patient Data
Michael Yared
December 18, 2017
The Graphcool Framework: A path to instant GraphQL greatness
Chris Ball
November 8, 2017
Understanding HIPAA Compliance for Apps
Michael Yared
October 31, 2017
Headless Browser testing with CircleCI 2.0
Alvin Crespo
September 25, 2017
Betting on React Native
Chris Ball
February 16, 2017
How to Easily Create Custom Skills for Alexa
Chris Power
January 14, 2017
Why Your Company Should Contribute to Open Source
Robert Beene
January 9, 2017
Thanks for 2016!
Chris Ball
January 2, 2017
Working Together
Michael Yared
December 27, 2016
What Is JWT and Why Does It Matter
Robert Beene
November 30, 2016
Elixir & Phoenix Conf 2016 Recap — For the Love of Programming
Robert Beene
September 8, 2016
Leveling Up With Echobind
Robert Beene
May 5, 2016
Recap of Ruby on Ales 2016
Michael Yared
April 10, 2016
The Real Costs of Not Keeping Software Current
Michael Yared
December 13, 2015
Interested in working with us?
Give us some details about your project, and our team will be in touch with how we can help.
get in touch