Connecting thoughts

Articles written by SINAPTIA about software development in general and Ruby on Rails and React in particular.

This week in #devs - Issue #4

Welcome to the fourth issue of “This week in #devs”, a series of posts where we share articles, thoughts, and conversations that happen in our #devs channel on Slack.

SINAPTIA
Nov 13th, 2024

This week in #devs - Issue #3

Welcome to the third issue of “This week in #devs”, a series of posts where we share articles, thoughts, and conversations that happen in our #devs channel on Slack.

SINAPTIA
Oct 25th, 2024

This week in #devs - Issue #2

Welcome to the second issue of “This week in #devs”, a series of posts where we share articles, thoughts, and conversations that happen in our #devs channel on Slack.

SINAPTIA
Oct 14th, 2024

This week in #devs - Issue #1

Welcome to the first issue of “This week in #devs”, a series of posts where we share articles, thoughts, and conversations that happen in our #devs channel on Slack.

SINAPTIA
Oct 4th, 2024

Debugging a memory-leaking action

This week we had to refactor a feature in one of the Ruby on Rails apps we’re maintaining. While at it, we discovered it was leaking memory, making the memory usage ramp up exponentially. With our expertise and the help of some tools, we were able to identify the root cause and fix the issue. Read on to learn more about how we approached this problem.

Patricio Mac Adden
Sep 26th, 2024

Rediscovering fixtures

Over the last couple of months, I’ve been investing a lot of time in improving my testing skills. I spent most of this time in going back to the basics, trying to start from scratch with every little concept one takes for granted. Trying to see everything through a child’s eyes. And today I’m rediscovering fixtures.

Patricio Mac Adden
May 27th, 2024

Guidelines for writing better specs

In our last couple of posts, we’ve been reviewing common problems with long-living RSpec test suites and contrasting them against Minitest and the four-phase testing strategy. There are situations where migrating to Minitest is safer and possible, but what can we do if we are still using RSpec and changing it is not an option?

Fernando Martínez
Mar 26th, 2024

Make minitest/unit Great Again

This sentence is wrong but funny. Minitest has always been great. In our last post, a situation made me think if I should be critical about how I test (and testing in general) and if I should do something about it. This is what happened next.

Patricio Mac Adden
Mar 18th, 2024

Don't over-engineer your tests

I’ve used RSpec for years, and until recently I had to work with a colleague that never really tested before. This process made me think if I should be critical about how I test and if I should (or shouldn’t) do something about it.

Patricio Mac Adden
Mar 6th, 2024

Optimizing background jobs execution with Delayed::UniqueJob

Delayed Job doesn’t have a mechanism for defining unique jobs. Enqueing a time-consuming or resource-intensive job multiple times could be harmful if not treated accordingly. Introducing Delayed::UniqueJob, a Ruby gem for defining unique jobs in Delayed Job.

Esteban Debole
Feb 15th, 2024

A remote require for Ruby

I have been fascinated by Deno’s remote import since I discovered it. Experiment with me on how to make a remote require for Ruby based on Deno’s remote import.

Patricio Mac Adden
Feb 7th, 2024

A discussion around Integer division in Ruby

We will explore Ruby’s division behavior and analyze several alternatives to obtain a true division.

Nazareno Moresco
Jan 31st, 2024

Lesson learned: sharing context with Flutter dialogs

In Flutter, dialogs don’t automatically share the context with the parent widget. We found out while implementing providers. Learn how to solve the problem.

Nazareno Moresco
Dec 13th, 2023

Reimplementing a broken search engine

We’ve been working with a boat marketplace for a year now. One of the most interesting challenges we faced during this time was reimplementing their broken search engine. This is how we did it.

Enzo Díaz
Nov 30th, 2023

What is a Skeleton Screen? A real-life Flutter example

Even though our primary focus is Ruby on Rails, we’re developing one Flutter application. In this project, we implemented a Skeleton Screen to enhance the app’s professional appearance during data loading. What is a Skeleton Screen and how did we implement one?

Nazareno Moresco
Nov 22nd, 2023

Why Ruby on Rails is still great for MVPs

Ruby on Rails remains a great framework for developing web applications. Thanks to its maturity and philosophy, one can build MVPs in a fast, efficient, and scalable way. Discover why Rails continues to be a great and influential framework to this day.

Patricio Mac Adden
Nov 15th, 2023

Long-awaited comparison validator comes to Rails 7

For years we had to manually compare values in our validations. Rails 7 added the comparison validator to ActiveModel. Read on and discover, as we just did, how it works.

Patricio Mac Adden
Nov 1st, 2023

Is Ruby on Rails secure?

This is one of the most frequently asked questions from people who want to build an MVP with Ruby on Rails.

Patricio Mac Adden
Oct 11th, 2023

I want to finish it quickly

Anxiety and lack of experience make junior developers want to finish their tasks quickly to prove that they can handle them.

Lucas Belenda
Oct 4th, 2023

Function Currying: A real-life use example

Moving your functions from a component to a separate file can improve readability and organization, but what happens when the data you need is outside the scope? In this article I will show you how I solved this problem with function currying.

Agustín López
Sep 27th, 2023

la_plata.rb September meetup

On 14th September, another la_plata.rb meetup occurred. We had some fun and learned some new things. Here’s a recap.

Patricio Mac Adden
Sep 20th, 2023

Talking to hostile APIs

APIs allow us to communicate with third-party software in order to use their services and data. In today’s software, it’s almost impossible not needing to use one, one way or another. What if they are hostile?

Patricio Mac Adden
Sep 13th, 2023

Introducing Audited-UI

We’ve been using the audited gem for a couple of projects, but the lack of a built-in view to display the changes challenged us to write our engine. We are happy to introduce audited-ui.

Patricio Mac Adden
Aug 30th, 2023

Consequences of parrot-like APIs

Psittacism signifies repetitive speech in the manner of a parrot. Can APIs suffer from it and what are their consequences?

Nazareno Moresco
Aug 16th, 2023

Quality Assurance, the SINAPTIA way

Quality Assurance takes a key role in software development. In this post, we’ll share our Quality Assurance process that allows us to deliver quality software.

Emiliano Sanchez
Aug 9th, 2023

Using strong_params beyond mass assignments

Strong Parameters are typically used in Ruby on Rails for mass assignments, but in this article, we explore an additional use for this feature.

Nazareno Moresco
Aug 3rd, 2023

Don't do this at home

Service objects is a Ruby on Rails pattern widely used. In this post, I’ll show you one example I stumbled upon recently. What’s wrong with it and how did we fix it?

Patricio Mac Adden
Jul 26th, 2023

Quality Assurance automation on a serverless architecture

Nowadays, technology is evolving at an unprecedented rate, presenting us with new challenges and opportunities. One challenge is adapting to new architectures, and in this post, we will explore how we did QA Automation on a serverless architecture.

Emiliano Sanchez
Jul 12th, 2023

Nativifying a docker development environment

I’ve been working on docker exclusively since 2018. Besides its many benefits, it could be tiresome to type longer commands every single time. How do I do it without losing my mind?

Patricio Mac Adden
Jun 28th, 2023

React by example: Slider Panel

Slider panels are widely used nowadays. In this post, we’ll build a fully functional custom React slider panel with Tailwind. Ideal for overlay menus, navigation, content lists, or even forms or configuration panels!

Enzo Beducci
Jun 14th, 2023

Don't build lasting relationships with your components

Overcomplicated props, ingrowing learning curves, and eventual technical debts are symptoms that appear as new requirements emerge on a project. Design Systems evolve outgrowing our components, leading toward their end. How can we ensure that our components thrive against the design challenges we encounter daily?

Enzo Beducci
May 24th, 2023

Bringing a 10-year-old Ruby on Rails app back to life

Last week we published the case study of one of our first projects. After 10 years in the archive, I found and brought this old Ruby on Rails 4.0 application back to life.

Patricio Mac Adden
May 17th, 2023

The role of design in MVPs

Finding a good balance between design and development is one key aspect to take into account while developing an MVP. Visually appealing products might have a bigger impact on the market than one built from a template, even if it has the same or even more features. But, is it the right choice for your project?

Patricio Mac Adden
May 3rd, 2023

Hybrid and Dynamic Database Multitenancy with Ruby on Rails

What is Hybrid and Dynamic Database Multitenancy and how to successfully achieve it with Ruby on Rails (> 6.0) and PostgreSQL? Our experience implementing a hybrid and dynamic database multitenancy system for one of the projects we’re involved in.

Nazareno Moresco
Apr 19th, 2023

Dynamic horizontal slider using React and custom hooks

A custom horizontal slider using React hooks to have full control over the design and behavior of the component. No more limitations!

Lucas Belenda
Apr 5th, 2023

Debunking myths about Ruby

There’s a lot of criticism of Ruby and Ruby on Rails. In this post, we will try and debunk four widespread myths about Ruby.

Patricio Mac Adden
Mar 29th, 2023

The five strings paradox

There are five interdependent forces in every software project that can drive it to success or to utter failure. Read on if you want to learn about how they work and how to wield them.

Fernando Martínez
Mar 22nd, 2023
MVP

Why Ruby on Rails?

Ruby on Rails is our main tool for building MVPs and big web applications. There’s a wide array of myths about it online: that it’s old, or dead, or slow, that it’s not relevant anymore. We revisit our tech choice every year and we still chose Ruby on Rails. Here’s why.

Fernando Martínez
Mar 15th, 2023

Beware of this status update

In our previous two posts, we discussed why communication matters and what’s the best status update. In this post, we will analyze a very common pattern of communication and how we can prevent it from becoming a problem.

Patricio Mac Adden
Mar 8th, 2023

The best status update

Status updates are often regarded as monotonous, repetitive, and useless. But for us, they’re the most powerful and simple tool we have to deactivate all sorts of communicative issues the main way to build successful and enjoyable relationships with our clients.

Patricio Mac Adden
Mar 1st, 2023

Communication matters

Communication is a key aspect of our culture and development process. Do you want to know why and how?

Fernando Martínez
Feb 22nd, 2023

Your old Ruby on Rails application sucks

Do you have a Ruby or Rails application in production for more than 4 or 5 years? Has the test suite crumbled to pieces because of too many broken or flaky tests that no one has time to fix? Do you feel your app needs a lot of love that no budget will ever be able to sustain? Read on to know what we do in these cases.

Fernando Martínez
Feb 15th, 2023

Taking over a project, the SINAPTIA way

Sometimes we are hired to take over a project with different goals in sight: general maintenance, adding new features, or overhauling them completely. In this post, we’ll share our methodology for taking them over, what we do to gain the feel of owning the project, and how we start delivering fast.

Patricio Mac Adden
Feb 8th, 2023
MVP

Upgrading Ruby on Rails applications

When maintaining Ruby on Rails applications, it’s always recommended to run the latest versions of the framework so it receives security patches and performance boosts from newer versions. In this post, we’ll see our way of upgrading Ruby on Rails applications.

Fernando Martínez and Patricio Mac Adden
Feb 1st, 2023

Working remotely effectively

We are a fully remote company, and as such we understand the downsides of working remotely. How do we effectively do it?

Fernando Martínez and Patricio Mac Adden
Jan 25th, 2023

Building an MVP with SINAPTIA

What to expect before, during, and after building an MVP with us. Deep dive into the process: from the discovery phase to launch!

Gonzalo Lara, Fernando Martínez, and Patricio Mac Adden
Jan 18th, 2023
MVP

What is an MVP?

Let’s imagine you’ve found an idea for a novel product, or you found a need in the market that is poorly fulfilled or not fulfilled at all. How can you be sure? Will your idea be successful? Will enough people like it and use it for it to thrive? A small guide for someone who wants to build a product.

Gonzalo Lara, Fernando Martínez, and Patricio Mac Adden
Jan 11th, 2023
MVP

Mounting react components

Our approach to building modern React frontends within a Ruby on Rails monolith makes use of the best of both worlds.

Lucas Belenda
Oct 21st, 2021

A case against form objects

Based on Ruby on Rails examples, the core idea should apply to other languages and frameworks.

Fernando Martínez
Jun 24th, 2020

Docker in development: Episode 4

Continuing our Docker in development series, in this episode we will see alternatives so we can optimize our images.

Patricio Mac Adden
Mar 9th, 2020

Docker in development: Episode 3

Continuing our Docker in development series, in this episode we’ll be exploring how to perform everyday tasks in our containers.

Patricio Mac Adden
Feb 9th, 2020

Docker in development: Episode 2

Continuing our Docker in development series, in this episode we’ll dockerize a Ruby on Rails application.

Patricio Mac Adden
Jan 9th, 2020

Docker in development: Episode 1

In this series, we will explore the motivation and benefits of using docker in development. We are going to give everyday tips that helped us move forward using it, focused on Ruby on Rails and React development.

Patricio Mac Adden
Dec 18th, 2019