We believe the key to successfully building and maintaining software is simplicity. Controlling complexity is our number one goal and the standard by which we judge all tech decisions. We prefer pragmatic to elegant.
We primarily use Golang for backend processes: APIs, CLIs, and ETL processes. We will also dip into NodeJS and Python as needed. However, we prefer to use Go because of its simplicity. We have found that even engineers who have never used the language before can read and understand most Go programs.
We build teams around Go because:
|Go is…||We care because…|
|Easily read & understood||Software is written once but read many times|
|Quick to learn and become productive in||We can quickly onboard new team members|
|Syntatically straightforward||Leads to codebase consistency / maintainability|
|Performant by default||Low cost of operation|
|Compiles to a static binary||It is easy to deploy|
When it comes to web apps, Polymer is our library of choice. It is one of Google’s top frontend dependencies across all of their web applications, making it a good long term bet. Polymer makes working with Web Components simple. In Google’s words, the idea is to “build big complex things out of smaller less complex things [web components].”