Sending an e-mail to millions of users

Sometimes you just need to send a lot of emails, and services that make it really simple can get too expensive. Here is how we sent an e-mail to all our users and what we learnt.

Multi-currency support in Java

For a few weeks, Drivy has been available in the United-Kingdom. Unlike the others Europeans countries where Drivy operates, the United-Kingdom use a different currency: we had to make some changes in our Android apps to support this.

Data quality checkers

Making sure that the data we use is of good enough quality is very important. Here is how we ensure that the data we collect, store and process is meeting our quality requirements.

Sanitize your attributes through your form object

A simple way to sanitize the user's form inputs using the Virtus custom coercion.

Evolution Of Our Continuous Delivery Process

To stay agile and reduce risks related to large releases, it's important to be able to ship code fast. In this article we showcase chronologically all the iterations which have lead to what we currently do at Drivy for quick and efficient releases.

Setting up Vim for React development

A list of plugins and config tricks for maximum productivity with React in Vim

Code simplicity - Reading levels

By telling stories in you code, you can offer various levels of details to make the reader's life easier. In this article we go through a refactoring of that kind.

Code simplicity - Command pattern

Targeting junior developers, this article shows a simple technique to declutter controllers through the addition of a simple object.

Best Practices for Large Features

A collection of tips and practices we find useful at Drivy for taking large features from planning to production.

How we are using member voice to improve UX

Answering customers' questions is good but fixing the original problem is even better! Here we describe the various steps we took to leverage our users' feedback and questions to improve the overall user experience on our platform.

Running feature specs with Capybara and Chrome headless

How to use the new headless version of Chrome to replace PhantomJS and test a Rails application.

The Tech Recruitment Process At Drivy

How we work to avoid the usual pitfalls of software recruitment: whiteboard coding, trivia questions... instead we look at code the candidate wrote before and discuss real problems encountered at Drivy.

Designing state machines

Different tips to design a state machine that improves your codebase quality and eases communication within your team

Android Makers 2017 Highlights

Android Makers 2017: a quick overview of the conferences we found the most interesting

Story of a junior developer at Drivy

Feedback from a Junior Full Stack developer at Drivy since six months after graduating from a two-month bootcamp at Le Wagon.

Code Simplicity - Value Objects

Give more depth to your application's state using value objects. In this article I show one use of a common pattern in order to help you reduce the cognitive load carried by implicit assumptions.

Code Simplicity - Introduction

A guided tour through covering common software practices enhancing simplicity. In this article I share my vision of code simplicity is by giving some context about software and code.

MySQL Evolution - From 5.6 to 8.0

These are the slides of a presentation I gave at ParisRB. They present the new developer features of 5.6, 5.7 and what's coming in 8. It also shows how to use some of these features with Rails.

Editing your git history with rebase for cleaner pull requests

Having a clean git history is really useful for big pull requests. In this article we'll see how to edit previous commits to avoid clutter.

Instrumenting Sidekiq

Monitoring your taskqueue to get deeper visibility on usage trends, find out slow jobs or queue congestion. Here's how we do it with a Sidekiq middleware, InfluxDB and Grafana.

API Driven Apps

Being agile on mobile apps has always been a challenge. You have to deal with users that don't update their apps and with the validation time on iOS. Let's see how to update your app without submitting a new version to the Play Store / App Store.

Send Rails console commands to Slack

We sometimes use the Rails console in staging or production to fix rare issues and we've built a tool to have a better visibility and control of commands executed in the console. This article explains why we decided to build this and how we did it.

Use Android's FileProvider to get rid of the Storage Permission

In order to share a file with other apps, the simplest way seems to be using the external storage as a temporary place to keep your file. However it has many drawbacks: more permissions are needed, you have less control and you leave more mess. Here is a solution to avoid this!

Taskqueues tips

Taskqueues are used to asynchronously run tasks. They are very useful and very easy to get wrong, so in this article I'll share 12 tips to make sure it goes smoothly.

Managing Bugs at Drivy

It is crucial to have a minimal number of bugs in production. In this article we'll discuss the different ways we use to make sure everything goes smoothly for our users.