Last updated: September 6, 2018

This document offers insights on how Engineering works in Transifex. It was created in order to help everyone in the team do things more efficiently. Its ultimate purpose is to help us raise the quality of our codebase and processes and, as a result, the quality of our product.

It provides guidelines, best practices and processes that span across various areas of the everyday workflow of an engineer in our team. Since there is a lot of existing code that does not follow these rules, we cannot apply them all at once. All new and updated code, however, should follow these rules, so that our codebase gradually becomes better.

This is the output of an ongoing process. Expect this document to be extended, modified and otherwise improved in the future, as we all grow, mature and optimize the way we work.

Coding best practices

This section contains generic guidelines that apply to all code we write, irrespective of the language. They are high-level principles that have to do with our mentality when writing code, not specific technical details.

Coding style

Code style guidelines for various languages we use (Python, JS etc).

Github guide

A workflow primer on using git over Github.

Testing

Any new and updated code should be accompanied by the appropriate tests both in Python and/or JavaScript. There should also be a continuous effort to improve coverage of untested, old code.

Repositories

When setting up a new repository, there are a few things we should keep in mind.

Ticket handling

How to use JIRA workflow in combination with Github.

Privacy considerations

About taking into account privacy regulations (e.g. GDPR) in design and code review.

Meeting guide

Lets optimize engineering meetings.

Changelog

A track of changes on this document.