Blog

Ideas and insights from our team

About Filipe Ximenes

Bike enthusiast, software developer and former director at Python Brasil Association. Likes open source and how people interact in open source communities.

All articles by Filipe Ximenes

Multitenancy: juggling customer data in Django
Filipe Ximenes

Suppose you want to build a new SaaS (Software as a Service) application. Suppose your application will store sensitive data from your customers. What is the best way to guarantee the isolation of the data and make sure information from one client does not leak to the other? The answer to that is...

Sept. 13, 2017
read more
The case against over-engineering
Filipe Ximenes

"Premature optimization is the root of all evil." - Donald Knuth Like any professional, we developers want to do things the right way. We want to do things the best way we possibly can. With no errors, no blind spots, covering all possible cases. This is just the natural behavior of the human b...

Aug. 2, 2017
read more
[Talk] All Things Python meetup in Sunnyvale
Filipe Ximenes

I'll be talking at the All Things Python meetup! It will happen on June 6 in Sunnyvale, California. I'll be talking about good practices designing async tasks and some advanced Celery features.This will be a first version of the talk I'm preparing for DjangoCon US in August. For signing up or mo...

May 31, 2017
read more
Advanced Django querying: sorting events by date
Filipe Ximenes

Imagine the situation where our application has events (scheduled tasks, appointments, python conferences across the world) happening in different moments of time. Almost anything with a date attached to it. We want to display them in a simple list to the user. Given we are in February 2017 (the ...

April 19, 2017
read more
How I test my DRF serializers
Filipe Ximenes

How I test my DRF serializers In this blog post, I will show the whats and whys on testing Django REST Framework serializers. First, some context. Here is the model setup we are going to use for this example: from django.db import models class Bike(models.Model): COLOR_OPTIONS = (('yello...

Jan. 11, 2017
read more
Python API clients with Tapioca
Filipe Ximenes

In this post I'll present to you Tapioca, a Python library to create powerful API clients with very few lines of code. If you don't want to read through the reasons why I've built it, you may just jump straight to the Tapioca Wrapper section. Why do we need a better way to build API clients Integ...

Oct. 25, 2016
read more
Understanding database multitenancy
Filipe Ximenes

Let's imagine we are going to build a system with the following constraints: Corporate clients will be using it; The data that will be stored in it is very important and confidential. It cannot leak from one customer to another; It should be able to scale for hundreds of clients; This is the ty...

July 5, 2016
read more
5 tools to help developing and testing APIs
Filipe Ximenes

Here are some very useful tools that can assist you while developing, debugging and testing web APIs. 1. Postman Postman used to be a simple Chrome plugin to execute requests in a user-friendly interface where you could try different types of request parameters and inspect responses. But it has g...

May 18, 2016
read more
Seriously, we can build better web API clients
Filipe Ximenes

We are in the era of Software as a Service and microservices. From the techinical point of view this means we are writting more web APIs than we use to, at least in a quantitative sense. This also means we need to build clients (API wrappers) to free our souls from dealing with bare HTTP, and I g...

Aug. 11, 2015
read more
Tapioca talk at EuroPython
Filipe Ximenes

We were at EuroPython 2015 talking about one of our projects, the web API wrapper maker tapioca. The conference was held from the 20th to the 24th of july in Bilbao, ES and received a total of 1100 ateendes. Here is the recording of the talk: and the slides: What's wrong with api wrap...

Aug. 5, 2015
read more
Uncovering input fields from iOS Keyboard
Filipe Ximenes

One thing new iOS developers notice on their first experiences developing applications is that their interfaces do not adapt to the screen when the keyboard is shown. Because of this, text input fields are hidden by the keyboard if they are to low on the screen. This is a bit annoying and if you ...

June 10, 2015
read more
URL, URI, URN what's the difference?
Filipe Ximenes

URL, URI and URN are widely used terms when we talk about the web, although they seem to be the same, there is a slight difference between each one of them. Lets take a look at URIs first. According to wikipedia URIs are: "a uniform resource identifier (URI) is a string of characters used to...

May 13, 2015
read more
Creating Cordova/Phonegap plugins
Filipe Ximenes

Building hybrid mobile apps is all nice and easy until you need some native feature that does not yet have a cordova package. But don't you worry, we will show you how to do it. We will be writing a plugin to run some simple android code and call it from the javascript side. I'll be running Cord...

March 27, 2015
read more
An approach to Angular separation of concerns
Filipe Ximenes

Angular.js is a great JavaScript framework, it makes easy to develop Single Page Applications (SPAs) and removes most of the pain regarding data binding, requests and routing. Unlike many MVW (Model View Whatever) frameworks and because the way JavaScript works, it does not force us to organize ...

March 20, 2015
read more
Django CORS
Filipe Ximenes

It’s common among web developers, and mainly the ones who are developing web APIs, to face problems related to CORS. According to Wikipedia: Cross-origin resource sharing (CORS) is a mechanism that allows many resources (e.g. fonts, JavaScript, etc.) on a web page to be requested from another dom...

March 17, 2015
read more