Before we dig in, you will benefit most from this piece if you first understand the benefits of grouping things and have a good feel for what bad looks like. After that, this post shouldn’t be surprising. But because repetition is memory’s friend, let’s explicitly cover off some … | Continue reading
Auto-playing videos are used on many websites to add visual interest to the page. These videos are typically short, muted videos that supplement the text content on the page. They can be engaging, entertaining, or informative, but, they can also be overwhelming or even dangerous … | Continue reading
thoughtbot is proud to add Site Reliability Engineering to our DevOps, SRE & Cloud Platform team. Site Reliability Engineering, or SRE, is a different approach to maintenance. It focuses on keeping a product running smoothly through better metrics and increased observability. Our … | Continue reading
If you are following along with our Design Sprint Kit video playlist, this blog will shine a light on the activities you will be doing on Day 3 of your Product Design Sprint. Goal of Day 3: While Day 2 is about diverging and coming up with as many solutions as possible, Da … | Continue reading
An overview of DevOps and how thoughtbot’s Platform Engineering team works together with the other teams to delight clients. What is DevOps? The conjunction of Development and Operations, the term became popular over 10 years ago in tech startups with small teams where the … | Continue reading
Databases serve as the backbone for countless applications and systems that drive modern businesses. Efficient database performance is critical for ensuring seamless user experiences, rapid response times, and overall system reliability. However, even the most robust database sys … | Continue reading
My team at thoughtbot works with founders, entrepreneurs and early-stage start-ups. Often they don’t have a technical team member, let alone staff developers or a codebase. Many of these folks look to thoughtbot to play a CTO role: guiding them in their technology choices while b … | Continue reading
This article will introduce data science by presenting an essential method: linear regression. It’s a method used when two types of continuous numeric data correlate. Typical examples of data that correlate are the size of a flat and its price, the amount of time spent studying a … | Continue reading
If you are following along with our Design Sprint Kit video playlist, this blog will shine a light on the activities you will be doing on Day 2 of your Product Design Sprint. Goal of Day 2: Day 2 is, perhaps, the most important day of the Sprint. It serves as the pivotal b … | Continue reading
Welcome to 2024! Oh… It’s already February? I’m still playing end of the year catch up but there’s plenty of updates to get updated on! Contained within this edition includes updates between November 3rd and December 22, 2023. Thank you to all our many contributors! I especiall … | Continue reading
So, you have a question about programming. You want to reach out for help online. Understanding how to ask a good question is essential: the best way to receive a good answer is by asking a good question. This guide will help you with that! This applies to forums, Slack, Discord, … | Continue reading
Welcome to another edition of This Week in #dev, a series of posts where we bring some of our most interesting Slack conversations to the public. Inverting where Clauses in Rails Fer Perales learned about the invert_where method in Rails’ Active Record. class User scope :a … | Continue reading
Goal of Day 1: Day 1 of a Product Design Sprint is all about gaining a really in-depth understanding of the problem we are trying to solve on the Sprint, of our potential customers and their pain points. We are essentially trying to get into the heads of potential customers or … | Continue reading
I will present the talks in order of appearance. They were organized in such an order, from the most accessible to the most complex. The first one was The best case scenario by Sandjiv. Sandvij introduced everything about pattern matching in Ruby, from it’s implementation in the … | Continue reading
We recently started an internal project to gain experience with Large Language Models (LLMs) and generate content for a role play-based application. If you are unfamiliar with LLM or AI in general, a good starting point could be Mike and Steffani’s article on the topic. One of ou … | Continue reading
When I first started researching how we can use an open source AI model, it seemed daunting initially. There is a lot of fragmented information on the internet from many different sources, making it difficult to start your project quickly. The goal of this post is to have one eas … | Continue reading
The context of this story is me, joining an experiment by colleagues with LLMs . They have Mac computers; I have a computer that runs on PopOS. By now, this is very rarely an issue; we have tools to handle different environments. This is not entirely the case with LLMs, for some … | Continue reading
Pitch decks are essential tools for any entrepreneur seeking funding or aiming to attract investors. They provide a concise overview of your business, showcasing your products, services, goals, and strategies. thoughtbot is teaming up with other early stage startup experts from … | Continue reading
Welcome to another edition of This Week in #dev, a series of posts where we bring some of our most interesting Slack conversations to the public. Loading Data into MySQL Quickly Matheus Richard shared a video about loading 100,000,000 rows into a MySQL database. In particul … | Continue reading
There are a few paths that lead a developer or engineering manager to reach for their favorite search engine or forum to learn more about Site Reliability Engineering. One route may be the curious practitioner who loves understanding the latest best practices in development proce … | Continue reading
Have you got the next game changing idea? Do you think it could become a great product? Have you always wanted to start your own business but you just don’t know where to begin? Well look no further! We are delighted to introduce the Product Design Sprint Kit by thoughtbot! This … | Continue reading
I’m on a client project that’s using Devise. In an effort to prevent anonymous users from accessing admin routes, we wrap those routes with an authenticated constraint. This constraint also ensures only authenticated users who are admins are allowed access. # config/routes.rb aut … | Continue reading
I’m on a client project that’s using Devise. In an effort to prevent anonymous users from accessing admin routes, we wrap those routes with an authenticated constraint. This constraint also ensures only authenticated users who are admins are allowed access. # config/routes.rb aut … | Continue reading
Error handling and fault tolerance are often neglected aspects of development. How much does it cost to fix errors due to a poorly implemented error handling strategy or a complete lack thereof? How many API integrations are poorly put together, disregarding what can go wrong? Ho … | Continue reading
Last year, in 2023, I applied internally for a Development Team Lead position – and got the job . Basically that means that I manage wonderful folks on top of continuing to work as a developer and consultant. My add-on focus, so to say, is that I work with my teammates to identif … | Continue reading
We’ve always found the Ruby community to be one of the most welcoming, diverse, brilliant and newcomer friendly groups around. Any chance to meet new #rubyfriends (it’s a thing), learn about new developments in the ecosystem and grow our skills as rubyists is one we won’t pass up … | Continue reading
Welcome to another edition of This Week in #dev, a series of posts where we bring some of our most interesting Slack conversations to the public. Fuzzy Finding Rails Routes Neil Carvalho mentions fzf, an interactive command-line fuzzy finder that can be used with any list ( … | Continue reading
If you missed out on RubyConf 2023 or just want to relive the action, video recordings of thoughtbot’s presentations are now available on YouTube. Please check them out! Which Time Is It? By Joël Quenneville Can you add two time values together? Yes. No. Not so fast! Rese … | Continue reading
At thoughtbot, we rely on Rails to build applications at high velocities. When faced with adding modern client-side interactivity, we may have many forms of progressive enhancement to turn to. In particular, gaining popularity within the team are the trio of companion libraries: … | Continue reading
BeeOdiversity: thoughtbot recently worked with an innovative, Belgium-based company; BeeOdiversity. BeeOdiversity provide a range of software solutions that allow companies to monitor their impact on the biodiversity and wildlife around their sites. Their clients include large … | Continue reading
In 2022, I found out what the average programming language color was. Today, I want to transform code itself into pixel art (in less than 100 LOC). What? The plan is very simple: I’ll parse a Ruby file to collect all token types, assign each token a color, and then render e … | Continue reading
As the AI/ML industry continues to grow, thoughtbot has turned its gaze internally to evaluate our own processes. In particular, we recently came to scrutinize the product design sprint and how it may evolve with the new tools available to us. For two weeks a cross-functional tea … | Continue reading
What is Rubber Duck Debugging? Rubber Duck Debugging is a debugging technique based on describing out loud to a rubber duck, or anything or anyone, what your program is supposed to do, which usually makes you realize what you’re doing wrong. As rubberduckdebugging.com describes … | Continue reading
Opinions on monoliths, microservices, and modularization vary widely throughout the Rails community, but one thing is certain: we still encounter a lot of monoliths out there. This is a comfortable style for many developers when building Rails applications, but some discomfort ca … | Continue reading
I recently caught this gem while tuning in to an Adam’s Grant podcast episode on bureaucracy. There’s this original experiment they talked about: when tasked with enhancing a Lego masterpiece,everybody tend to throw more blocks in the mix and almost never strip some away. Even if … | Continue reading
We have two teams dedicated to new apps, so it’s no surprise that we’re drawn to Rust’s cargo-generate tool. The project’s documentation is a good starting point. We’d like to pass on some guidelines and lessons we’ve learned while using it. Always specify the cargo-generate … | Continue reading
Sometimes you need more than one smart person — we needed a team of the right people ready to dive in quickly. These senior engineers didn’t just tackle technical issues, they opened up a whole new way of looking at problems. It was fast, it was intense, and it totally changed th … | Continue reading
Ruby is my main programming language, but in the last few months, I’ve been playing with Rust on side projects. Sometimes it was super fun, sometimes it was ultimately frustrating. To ensure I always break even, I came up with a few guidelines for myself. Take the easy way ou … | Continue reading
We’ve all been there. We’re updating the code, but nothing changes (either in the UI or in the back-end). Here’s a list of things to check to figure out what’s wrong. Check Your Environment I’m particularly guilty of this one. I’ve spent time figuring out why my changes wer … | Continue reading
You’re in the weekly rhythm of planning, stand-ups, and retros. It’s all going fine, but you can’t help but feel that something’s missing – that spark in the team. Cultivating a vibrant culture is even more challenging when your team is scattered across remote locations. But fear … | Continue reading
Push notifications remain one of the main ways to interact with users and attract their attention when your application is not opened. Although sending a message to a user or group of users seems like a straightforward action, there are multiple nuances, conditions and challenges … | Continue reading
The Ruby community, according to some data I am making up, has the strongest... | Continue reading
An investigation into Ruby’s C, stdlib, interfaces, libraries, tooling, and ecosystem into what, exactly, Ruby thinks a Boolean is. | Continue reading
Learning makes magic happen. | Continue reading
How to have your individual dotfilesand your company’s dotfiles live in harmony together. | Continue reading
Ruby, functional programming, how to build operation pipelines, and the average programming language color. | Continue reading
It’s exhausting to communicate all day in your non-native language, but we can practice kindness and understanding to relieve some of that mental load. | Continue reading