Be it for our own internal tooling or on our client’s projects, we’ve used a variety of package managers. When building our newest tool, we...
  
  
        
          Uv
      
        
          Python
      
        
          Heroku
      
  
  
    In 2023, Ciera Jaspan and Collin Green, as part of the Engineering Productivity Research Team at Google, published a paper titled Defining, Measuring, and...
 
              opens a new window
            
  
  
        
          Tech Debt
      
        
          Technical Debt
      
        
          Maturity Model
      
  
  
    As a company, one of our core values 
              opens a new window
             is to be “open by default.” At the same time, one of our goals is to...
  
  
        
          Open Source
      
        
          Hacktoberfest
      
        
          Learning
      
  
  
    This is part of our series on design sprints 
              opens a new window
            . If you haven’t read our previous articles, I encourage you to read more about our...
  
  
        
          User Experience
      
        
          Product
      
        
          UX
      
        
          UX Research
      
  
  
    You’ve signed a contract with an agency, awesome! At this point you already know that agencies like ours 
              opens a new window
             offer expertise and resources that can...
  
  
        
          Project Management
      
        
          Best Practices
      
        
          Tips
      
  
  
    This is part of our series on design sprints 
              opens a new window
            . If you haven’t read our previous articles, I encourage you to read more about our...
  
  
        
          User Experience
      
        
          Product Design
      
        
          Design Sprint
      
  
  
    In my previous post 
              opens a new window
            , I mentioned how I was having issues with populating my random maze. The main problem is that there isn’t...
  
  
        
          Data Structures
      
        
          Graphs
      
        
          Maze
      
  
  
    Design Sprints 
              opens a new window
             lend themselves nicely to a virtual format, and digital tools can enhance this widely-used process developed by Google Ventures 
              opens a new window
            .
…
  
  
        
          UX
      
        
          UX Research
      
        
          Product Design
      
        
          Design Sprints
      
  
  
    Day 3 is all about picking a direction and going forward with it. Over the course of the third day of the Design Sprint, we...
  
  
        
          Product Design
      
        
          UX
      
        
          UX Research
      
        
          Design Sprint
      
  
  
    So, our little exercise in design patterns 
              opens a new window
             is getting quite messy. Which is ironic, considering it’s an exercise in design patterns.
The reason...
  
  
        
          Ruby
      
        
          Design Patterns
      
        
          Unit Testing
      
  
  
    As a consultancy specializing in upgrades, dealing with legacy code is our bread and butter. Incompatible versions of Ruby, different version managers, C errors while...
  
  
        
          Devops
      
        
          Docker
      
        
          Virtualization
      
  
  
    Have you ever wondered what the values on the request queue graph in the APM tool meant or whether a certain value indicated good or...
  
  
        
          Performance
      
        
          Monitoring
      
        
          Request Queue
      
  
  
    If I were to ask you: tell me in one word or a number here, how satisfied are your users with the response times of...
  
  
        
          Performance Monitoring
      
        
          Performance
      
        
          Apdex Score
      
  
  
    Upon integrating any performance monitoring tool for your application, you must be observing p95, p99 response times on the dashboards. If you are wondering what...
  
  
        
          Performance
      
        
          Response Times
      
        
          P95
      
        
          P99
      
        
          P50
      
  
  
    Web Sockets are an integral part of a lot of modern-day systems. But have you ever wondered how a Web Socket actually works? Or does...
  
  
        
          Systemdesign
      
        
          Websocket
      
        
          Rails
      
  
  
    Frontend development is so exciting nowadays! There is a wide spectrum of opportunities in each particular project. There can be tons of different interesting cases...
  
  
        
          Software Development
      
        
          Open Source
      
        
          Testing
      
  
  
    In the last part 
              opens a new window
             of this series, we left our little maze game gem generating random mazes that had random kinds of rooms using...
  
  
        
          Ruby
      
        
          Design Patterns
      
        
          Best Practices
      
  
  
    Since 2016, the company has invested in native-to-mobile civic experiences to encourage political engagement among its users—whether it’s by learning what’s on your ballot, or...
  
  
        
          Case Study
      
        
          Snap Minis
      
        
          Product Development
      
  
  
    Have you ever wondered how does Medium recommend blogs to read or how does a platform with millions of users tells if a username is...
  
  
        
          Systemdesign
      
        
          Ruby
      
        
          Bloom Filter
      
  
  
    No, not that Meta
What most developers call JavaScript frameworks (React, Vue, Svelte, etc) can more accurately be thought of as UI Libraries. While they...
  
  
        
          Javascript
      
        
          Meta Framework
      
        
          Framework
      
  
  
    In my last article 
              opens a new window
             I introduced this series and here’s the first pattern: the Abstract Factory
  
  
        
          Design Patterns
      
        
          Abstract Factory
      
        
          Ruby
      
     
    
      
        
  
  
    Be it for our own internal tooling or on our client’s projects, we’ve used a variety of package managers. When building our newest tool, we...
  
  
        
          Uv
      
        
          Python
      
        
          Heroku
      
      
        
  
  
    In 2023, Ciera Jaspan and Collin Green, as part of the Engineering Productivity Research Team at Google, published a paper titled Defining, Measuring, and...
 
              opens a new window
            
  
  
        
          Tech Debt
      
        
          Technical Debt
      
        
          Maturity Model
      
      
        
  
  
    As a company, one of our core values 
              opens a new window
             is to be “open by default.” At the same time, one of our goals is to...
  
  
        
          Open Source
      
        
          Hacktoberfest
      
        
          Learning
      
      
        
  
  
    This is part of our series on design sprints 
              opens a new window
            . If you haven’t read our previous articles, I encourage you to read more about our...
  
  
        
          User Experience
      
        
          Product
      
        
          UX
      
        
          UX Research
      
      
        
  
  
    You’ve signed a contract with an agency, awesome! At this point you already know that agencies like ours 
              opens a new window
             offer expertise and resources that can...
  
  
        
          Project Management
      
        
          Best Practices
      
        
          Tips
      
      
        
  
  
    This is part of our series on design sprints 
              opens a new window
            . If you haven’t read our previous articles, I encourage you to read more about our...
  
  
        
          User Experience
      
        
          Product Design
      
        
          Design Sprint
      
      
        
  
  
    In my previous post 
              opens a new window
            , I mentioned how I was having issues with populating my random maze. The main problem is that there isn’t...
  
  
        
          Data Structures
      
        
          Graphs
      
        
          Maze
      
      
        
  
  
    Design Sprints 
              opens a new window
             lend themselves nicely to a virtual format, and digital tools can enhance this widely-used process developed by Google Ventures 
              opens a new window
            .
…
  
  
        
          UX
      
        
          UX Research
      
        
          Product Design
      
        
          Design Sprints
      
      
        
  
  
    Day 3 is all about picking a direction and going forward with it. Over the course of the third day of the Design Sprint, we...
  
  
        
          Product Design
      
        
          UX
      
        
          UX Research
      
        
          Design Sprint
      
      
        
  
  
    So, our little exercise in design patterns 
              opens a new window
             is getting quite messy. Which is ironic, considering it’s an exercise in design patterns.
The reason...
  
  
        
          Ruby
      
        
          Design Patterns
      
        
          Unit Testing
      
      
        
  
  
    As a consultancy specializing in upgrades, dealing with legacy code is our bread and butter. Incompatible versions of Ruby, different version managers, C errors while...
  
  
        
          Devops
      
        
          Docker
      
        
          Virtualization
      
      
        
  
  
    Have you ever wondered what the values on the request queue graph in the APM tool meant or whether a certain value indicated good or...
  
  
        
          Performance
      
        
          Monitoring
      
        
          Request Queue
      
      
        
  
  
    If I were to ask you: tell me in one word or a number here, how satisfied are your users with the response times of...
  
  
        
          Performance Monitoring
      
        
          Performance
      
        
          Apdex Score
      
      
        
  
  
    Upon integrating any performance monitoring tool for your application, you must be observing p95, p99 response times on the dashboards. If you are wondering what...
  
  
        
          Performance
      
        
          Response Times
      
        
          P95
      
        
          P99
      
        
          P50
      
      
        
  
  
    Web Sockets are an integral part of a lot of modern-day systems. But have you ever wondered how a Web Socket actually works? Or does...
  
  
        
          Systemdesign
      
        
          Websocket
      
        
          Rails
      
      
        
  
  
    Frontend development is so exciting nowadays! There is a wide spectrum of opportunities in each particular project. There can be tons of different interesting cases...
  
  
        
          Software Development
      
        
          Open Source
      
        
          Testing
      
      
        
  
  
    In the last part 
              opens a new window
             of this series, we left our little maze game gem generating random mazes that had random kinds of rooms using...
  
  
        
          Ruby
      
        
          Design Patterns
      
        
          Best Practices
      
      
        
  
  
    Since 2016, the company has invested in native-to-mobile civic experiences to encourage political engagement among its users—whether it’s by learning what’s on your ballot, or...
  
  
        
          Case Study
      
        
          Snap Minis
      
        
          Product Development
      
      
        
  
  
    Have you ever wondered how does Medium recommend blogs to read or how does a platform with millions of users tells if a username is...
  
  
        
          Systemdesign
      
        
          Ruby
      
        
          Bloom Filter
      
      
        
  
  
    No, not that Meta
What most developers call JavaScript frameworks (React, Vue, Svelte, etc) can more accurately be thought of as UI Libraries. While they...
  
  
        
          Javascript
      
        
          Meta Framework
      
        
          Framework
      
      
        
  
  
    In my last article 
              opens a new window
             I introduced this series and here’s the first pattern: the Abstract Factory
  
  
        
          Design Patterns
      
        
          Abstract Factory
      
        
          Ruby
      
      
        
  
  
    Hello everyone, this is my first blog post on the ombulabs.com 
              opens a new window
             blog. I am so excited to have joined the company and to have...
  
  
        
          Software Development
      
        
          Open Source
      
        
          Community
      
      
        
  
  
    The second day of the Design Sprint is about finding inspiration, looking back at the decisions made during Day 1, and starting to assemble possible...
  
  
        
          UX
      
        
          UX Research
      
        
          Product Design
      
        
          Design Sprint
      
      
        
  
  
    Have you found yourself in the fortunate position of being the only designer in an organization that doesn’t have any design assets or previous research?...
  
  
        
          UX
      
        
          UX Research
      
        
          Product Design
      
      
        
  
  
    Let’s deep-dive into what happens on the first day of a Design Sprint. On Mondays, we understand the problem.
I want to give credit to...
  
  
        
          UX
      
        
          UX Research
      
        
          Product Design
      
        
          Design Sprint
      
      
        
  
  
    At OmbuLabs, we have some projects where multiple teams work at the same time on different features or fixes. We started using Heroku’s Review...
 
              opens a new window
            
  
  
        
          Heroku
      
        
          Github
      
        
          Review Apps
      
      
        
  
  
    Do you know what the most successful apps and digital products have in common? An idea. An idea that was challenged, tested, recalibrated, and validated...
  
  
        
          Product Design
      
        
          Design Sprint
      
        
          Products
      
      
        
  
  
    “You can have a little imperative React, as a treat.”
When building modern applications with React, Function Components and Hooks are the de facto way...
  
  
        
          React
      
        
          Javascript
      
        
          forwardRef
      
      
        
  
  
    It’s been a few months now that we’ve been toying with Elixir here at OmbuLabs. Particularly with Phoenix. However, I like to toy a bit...
  
  
        
          Elixir
      
        
          Testing
      
        
          Unit Testing
      
      
        
  
  
    The title says it all, but how does one actually implement object oriented design patterns in Ruby? If you’re like me and always struggled with...
  
  
        
          Design Patterns
      
        
          Ruby
      
        
          Learning
      
      
        
  
  
    To the seasoned developer this may seem like a silly question, but to developers who are self-taught, bootcamp trained, or even just have never come...
  
  
        
          Javascript
      
        
          Typescript
      
        
          Programming
      
      
        
  
  
    Open source powers many of the tools that we rely on daily for our work. As developers, we have the privilege of being able to...
  
  
        
          Learning
      
        
          Open Source
      
        
          Tips
      
      
        
  
  
    Today we will discuss the I in SOLID which, you may or may not know, represents the Interface Segregation Principle (ISP). This is the fourth...
  
  
        
          Learning
      
        
          Software Development
      
        
          Best Practices
      
      
        
  
  
    This post is the third one in the SOLID principles series. The first post 
              opens a new window
             discussed the single responsibility principle and in the second...
 
              opens a new window
            
  
  
        
          Learning
      
        
          Software Development
      
        
          Best Practices
      
      
        
  
  
    In a previous post 
              opens a new window
             we considered the practical value of the Single Responsibility Principle (SRP). This is the second post in this series where...
  
  
        
          Learning
      
        
          Software Development
      
        
          Best Practices
      
      
        
  
  
     “If you can’t measure it, it doesn’t exist” - Peter Drucker
 
Tackling technical debt can be a thankless task. You can spend hours...
  
  
        
          Maintenance
      
        
          Software Maintenance
      
        
          Technical Debt
      
      
        
  
  
    We agree with Sandi Metz 
              opens a new window
             when she describes Object Oriented (OO) design as a style guide for arranging code 
              opens a new window
            . The so called “OO...
  
  
        
          Learning
      
        
          Software Development
      
        
          Best Practices
      
      
        
  
  
    The impact of technical debt is obvious to developers. Devs are the ones that have to tackle the headaches of dependency issues and patch holes...
  
  
        
          Maintenance
      
        
          Technical Debt
      
        
          Software Maintenance
      
        
          Business Case
      
      
        
  
  
    In keeping with the first part of this series 
              opens a new window
            , I’ll list a few interesting issues we found when making the apps work as similar...
  
  
        
          Learning
      
        
          Crossbrowser
      
        
          Snap Minis
      
        
          Javascript
      
      
        
  
  
    Over the last few months, we developed a couple of Snap Minis 
              opens a new window
            . Minis are small static web apps that are run inside a webview...
  
  
        
          Learning
      
        
          Snap Minis
      
        
          Javascript
      
      
        
  
  
    At OmbuLabs our goal is always to smooth processes, and make work easier. Isn’t that what software engineering is really all about in the first...
  
  
        
          Open Source
      
        
          Agile
      
        
          Points
      
      
        
  
  
    Open Source is one of the things that we value 
              opens a new window
             as a company. Our philosophy is that “everything we do should be open by...
  
  
        
          Open Source
      
        
          Best Practices
      
        
          Oss
      
      
        
  
  
    Last month, Snap 
              opens a new window
             announced a new product during the Snap Partner Summit 2020 
              opens a new window
            , Snap Minis 
              opens a new window
            . Minis are bite-sized third-party experiences that live...
  
  
        
          Software Development
      
        
          Snap Minis
      
        
          vue.js
      
      
        
  
  
    Since starting at OmbuLabs as the Junior Developer I have had the incredible opportunity to pair with my teammates. A lot. Over the months we...
  
  
        
          Learning
      
        
          Pair Programming
      
        
          Tips
      
      
        
  
  
    One of the most fundamental tasks when writing or refactoring software of any kind is breaking the problem down into smaller parts. When you’re first...
  
  
        
          Learning
      
        
          Software Development
      
        
          Coupling
      
        
          Cohesion
      
        
          Design Principles
      
      
        
  
  
    Becoming the Apprentice, and then Junior Developer at OmbuLabs was both exciting and nerve racking. Learning a new company can be challenging, especially when the...
  
  
        
          Learning
      
        
          Remote
      
        
          Tips
      
      
        
  
  
    This is our first quarter report for open source projects, we will be releasing this report on each quarter of the year with the purpose...
  
  
        
          Open Source
      
        
          Report
      
        
          Skunk
      
        
          Bundler Leak
      
        
          rubymem.com
      
      
        
  
  
    Tough Love
One of the first things that a journeyperson programmer will have to learn when they transition from full time student to working...
  
  
        
          Learning
      
        
          Software Development
      
        
          Career
      
      
        
  
  
    At OmbuLabs we are firm believers of open source. We use open source but also like to contribute back to the community and we have...
  
  
        
          Open Source
      
        
          Best Practices
      
        
          Tips
      
      
        
  
  
    A few months ago I received the task of making the FastRuby.io 
              opens a new window
             sitemap refresh automatically after each deploy. That sounds like it would be...
  
  
        
          Seo
      
        
          Sitemap
      
        
          Ruby
      
      
        
  
  
    The last time 
              opens a new window
             we looked at Docker, we looked at the most basic and easy version of using it - building an image from...
  
  
        
          Devops
      
        
          Docker
      
        
          Tutorials
      
      
        
  
  
    No app is flawless. We all know that. Quality Assurance is an important part of any software development process and the better the tester, the...
  
  
        
          Software Development
      
        
          Software Quality
      
        
          Testing
      
      
        
  
  
    Manual testing is a necessary part of software development and quality assurance. And although it’s important to have a dedicated tester in your team, you...
  
  
        
          Software Development
      
        
          Software Quality
      
        
          Testing
      
      
        
  
  
    We launched FastRuby.io 
              opens a new window
            , our first productized service, back in June 2017. At the time, we had been doing Ruby on Rails 
              opens a new window
             upgrades since...
  
  
        
          Fastuby
      
        
          Design
      
        
          Ui
      
        
          UX
      
      
        
  
  
    In my last article 
              opens a new window
            , I gave a brief tour of what Docker is, and basic usage. Once you’ve got your feet under you with...
  
  
        
          Devops
      
        
          Docker
      
        
          Tutorials
      
      
        
  
  
    I will not bore you by telling you the history of Vim 
              opens a new window
            , and the differences between vi and Vim and all of its philosophy…
…
  
  
        
          Learning
      
        
          Vim
      
        
          Text Editor
      
      
        
  
  
    If you’re like I was not too long ago, the DevOps world gives you a chance to experience what most non-developers probably feel like when...
  
  
        
          Devops
      
        
          Docker
      
        
          Tutorials
      
      
        
  
  
    Recently at OmbuLabs 
              opens a new window
             I had the mission of setting up Heroku Review Apps 
              opens a new window
             for one of our projects. Since the project is built...
  
  
        
          Heroku
      
        
          Review Apps
      
        
          Multi Tenant
      
      
        
  
  
    Contributing to open source might be scary, you might think that your pull request (PR) is not good enough; that people will judge you by...
  
  
        
          Open Source
      
        
          Contribute
      
        
          Best Practices
      
      
        
  
  
    Pull Requests let developers tell other team members about changes they’ve made to a project repository. Once a pull request is created, team members can...
  
  
        
          Agile
      
        
          Learning
      
        
          Pull Requests
      
      
        
  
  
    In a recent project for OmbuLabs 
              opens a new window
            , we were looking for a payment solution that allows users of our platform to easily start accepting online...
  
  
        
          Rails
      
        
          Stripe
      
        
          Stripe Connect
      
      
        
  
  
    In this series of code refactoring 
              opens a new window
             posts we are discussing how design patterns can be used to make our Ruby 
              opens a new window
             code beautiful, maintainable...
  
  
        
          Code Refactor
      
        
          Design Patterns
      
        
          State Pattern
      
      
        
  
  
    If you’ve been a web developer for any length of time at all these days, you’ve no doubt used at least a few web based...
  
  
        
          Best Practices
      
        
          Apis
      
        
          Api Design
      
      
        
  
  
    In our last article of the refactoring series 
              opens a new window
             we saw how design patterns can be used to make our Ruby code beautiful and clean....
  
  
        
          Code Refactor
      
        
          Design Patterns
      
        
          Template Pattern
      
        
          Ruby
      
        
          Refactoring
      
      
        
  
  
    Code refactoring can be defined as “the process of introducing small and incremental changes to leave the code in a better state than it was.”....
  
  
        
          Code Refactor
      
        
          Design Patterns
      
        
          Ruby
      
        
          Refactoring
      
      
        
  
  
    Last month was the fifth edition of the Rails Girls Buenos Aires 
              opens a new window
             event, and the third time OmbuLabs participated as a sponsor and part...
  
  
        
          Learning
      
        
          Rails
      
        
          Rails Girls
      
      
        
  
  
    After reading introductory primers and watching instructional videos for beginners learning Ruby 
              opens a new window
            , I needed a program that would allow me to test out Ruby...
  
  
        
          Ruby
      
        
          Learning
      
        
          Ruby Koans
      
      
        
  
  
    Monit 
              opens a new window
             is a powerful tool for monitoring processes on Unix 
              opens a new window
             systems and sometimes it can be very useful to receive notifications about a...
  
  
        
          Monit
      
        
          Slack
      
        
          Linux
      
      
        
  
  
    A few weeks ago I had the opportunity to talk to Preston St. Pierre 
              opens a new window
            , CTO of Predictable Revenue 
              opens a new window
            . We worked with Preston and...
  
  
        
          Case Study
      
        
          Software Development
      
        
          Scaling
      
      
        
  
  
    Today we are happy to announce the launch of our first productized service: FastRuby.io 
              opens a new window
             - Speedy Ruby on Rails Upgrades by OmbuLabs.
We are...
  
  
        
          Rails
      
        
          Upgrades
      
        
          fastruby.io
      
      
        
  
  
    When you create IAM 
              opens a new window
             credentials and policies for your app, you should make sure that they have access to the resources that they need...
  
  
        
          Aws
      
        
          Carrierwave
      
        
          S3
      
      
        
  
  
    One of the hardest failing tests to debug are those which fail randomly, also known as “flaky” tests. You write your test cases, you run...
  
  
        
          Rspec
      
        
          Continuous Integration
      
        
          Testing
      
      
        
  
  
    We all know the importance of having a CI 
              opens a new window
             tool integrated in your project. It allows you to run your entire test suite every...
  
  
        
          Continuous Integration
      
        
          Circle Ci
      
        
          Rails
      
      
        
  
  
    I have been using the capybara-webkit 
              opens a new window
             gem for a while now since I first tried it out after making the switch from Capybara +...
  
  
        
          Rails
      
        
          React
      
        
          Capybara
      
        
          Testing
      
      
        
  
  
    Getting started with a new project should be as simple as possible, even for someone who is not technical. As a maintainer, you must make...
  
  
        
          Maintenance
      
        
          Conventions
      
        
          Project
      
      
        
  
  
    There are a few agile practices 
              opens a new window
             that I really love. Pair programming 
              opens a new window
             is one of them.
We try to do it as much...
  
  
        
          Agile
      
        
          Pair Programming
      
        
          Best Practices
      
      
        
  
  
    A few weeks ago, I found an interesting project called Bumbler 
              opens a new window
            . If your project uses Bundler, Bumbler shows you your project’s largest dependencies. When...
  
  
        
          Ruby
      
        
          Performance
      
        
          Bumbler
      
      
        
  
  
    Hubot 
              opens a new window
             makes it incredibly easy to setup on a Heroku server, by taking advantage of its Procfile support. Simply running git push...
  
  
        
          Hubot
      
        
          Linux
      
        
          Heroku
      
      
        
  
  
    If you are working with open source or if you are going to open source a repository, you should ensure that none of your sensitive...
  
  
        
          Open Source
      
        
          Security
      
        
          Git
      
      
        
  
  
    The simplest way to contribute to an open source project is to file an issue. Here are a few steps for you to file issues...
  
  
        
          Open Source
      
        
          Bugs
      
        
          Github Issues
      
      
        
  
  
    As a maintainer of a few Ruby gems, I have to decide what is accepted and what gets rejected into the gems. The other day...
  
  
        
          Docker
      
        
          Rubygems
      
        
          Open Source
      
      
        
  
  
    The other day I was trying to interact with a hidden file input field:
 <div class="col-sm-3">...
 
  
  
        
          Protractor
      
        
          Testing
      
        
          E2e
      
      
        
  
  
    We have been using Slack at OmbuLabs 
              opens a new window
             for a while now after switching from HipChat, and haven’t looked back. It looks and feels much...
  
  
        
          Ruby
      
        
          Slack
      
        
          Slack Notify
      
      
        
  
  
    On April 17th we discovered a security vulnerability in the Mercado Pago API 
              opens a new window
            . Before disclosing this information, we contacted Mercado Libre 
              opens a new window
             and sent...
  
  
        
          Security
      
        
          Vulnerability
      
        
          Mercado Pago
      
      
        
  
  
    Quality should be present in everything you do, but it should be balanced with the time you spend working on a feature. Does it feel...
  
  
        
          Software Development
      
        
          Software Quality
      
        
          Best Practices
      
      
        
  
  
    The other day my friend Juan Rossi 
              opens a new window
             reported a vulnerability in the Almundo 
              opens a new window
             billing system. Since then, the vulnerability has been fixed by...
  
  
        
          Security
      
        
          Vulnerability
      
        
          Privacy
      
      
        
  
  
    If you are using git in 2015, you are probably also using Github 
              opens a new window
            , unless you’re self-hosting or still betting on Bitbucket 
              opens a new window
            .
Below are...
  
  
        
          Git
      
        
          Github
      
        
          Tricks