Python is my language of choice for backend programming. Python is slow. Python is not statically compiled. Python has dynamic typing, with all the runtime sluggishness that implies. But it does not matter.

To build Gofrendly's backend, we could have chosen Java, Kotlin, Go or Node or anything else really. As long as it comes with a stable and generous ecosystem of third party libraries, and as long as coding time from idea to working prototype is fast enough (Bye-bye Java).

But the speed of the language itself was never important. And this is why:

Image for post
Image for post
Profiling Gofrendly's backend API

The screenshot above shows you what Gofrendly's backend code spends time on. These numbers are average response times over all API endpoints, taken over a normal day. But the really interesting bit is the color…


Gofrendly is a social app for women. Its central feature is a realtime chat, very similar to what you find in Facebook Messenger or WhatsApp.

Image for post
Image for post

With realtime chats being such a central part of so many apps, you would expect them to be relatively easy to build by now. They are not. There are some approaches and tools that simplify the task, but none that fits perfectly.

This article is a discussion about various realtime chat implementations that we have tried at Gofrendly over the years.

Solution One: outsourcing your chat

Ideally, we would have liked to let someone else handle the chat infrastructure completely, so we could focus on developing the less mainstream parts of the Gofrendly app. …


About Gofrendly and justifying a mad journey of technical debt cleansing

This article describes the process of rewriting Gofrendly's backend from a monolithic backend architecture based on PHP and mysql running on single virtual machines, to a dockerized Flask application with no-SQL databases and autoscaling in a GKE kubernetes cluster. Without a single user noticing it (almost).

Gofrendly, a friendship app for women

Gofrendly is a Swedish friendship app for women. Its goal is to help you find friends and get you out of your couch and into a real life full of social interactions and new experiences.

Ever moved to a new town and found yourself totally alone at home one evening? Moved to a new country where you didn’t know anyone? Or went through a separation to realise you needed new friends? That’s when you use Gofrendly. …


At the core, I am a software developer. Have been since the age of 12 when I got a pocket calculator with a 30 characters display, a few kilobytes of memory and a Basic implementation.

But while writing code has always been my comfort zone, I have long felt a craving for more, a longing to build a product, a team, a company culture. To become truly economically independent. So like many, when the time felt right, I took the jump and started my own company. And failed. And started again. And again.

This post is about the tough journey of trying to get a business idea off the ground. …


When implementing a REST api, a particular area of focus is endpoint speed optimisation. This is especially important in a social app like GoFrendly, where user experience will be profoundly impacted by slow backend calls.

Ideally, you want a REST endpoint to respond within 500 milliseconds. Longer than that and users will experience the app as slow, loose patience and move away, ultimately impacting your retention.

GoFrendly’s backend relies on two no-SQL databases:

  • Google Datastore, to store documents such as user profiles, activities or chat messages,
  • and Elasticsearch, in which some of the Datastore documents are mirrored, and in which we perform more advanced queries such as matching users to activities. …

About

Erwan Lemonnier

CTO at GoFrendly. Fullstack developer turned entrepreneur. Ex-employee of Spotify and Trustly. Author of the PyMacaron microservice framework.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store