As the CTO of a successful 3D Printing Software company, I have experienced the company grow from 5 to 75 employees. At the beginning, I was both a developer and a product manager. I could make product decisions efficiently because the communication with the development team was taking place in my head.

Over time we have built out strong development and product teams. Communication between them is an ongoing challenge that we’re working on optimising and perfecting.

This guide is intended for product managers, it offers 10 tips on how to communicate better with developers — not (only) to make…


Here at 3YOURMIND, we use Django Rest Framework for most of our backends. Django uses migration files to keep track of database changes.
When deploying an update to a server, those migrations are applied to the database.

We decided to keep those migrations backward compatible for the reasons:

  1. It enables us to do zero-downtime deployment (“blue-green” deployment)
  2. We can switch between branches during development without getting errors.
  3. Decoupling the code version from the database version is in general a good idea

For doing this, we developed 3 tools:

  1. For checking that all migrations are backward compatible:
    django-migration-linter
  2. For adding a…


“A macro shot of a Macbook Pro screen with a few dozen lines of code” by Luca Bravo on Unsplash

Have you ever encountered an exception while processing another exception? If no, you are lucky. In this short post, you’ll learn how to make sure that this will never happen (again).

When an exception happens, Django can handle it in different ways:

  • Show your custom 500 page
  • Send an Email to the admins
  • Send a Error Report to Sentry or another Log Aggregation Tool

All those handlers could throw an exception itself. Those exceptions have ugly Tracebacks and often only occur in production. So better make sure that exception handling is working right.

A simple test

Usually, Django uses django.views.debug.ExceptionReporter to collect…

Felix Bauer

CTO at 3YOURMIND

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