On our principles page, we state: "The capacity to think critically separates the great from the good." This is certainly the case in software engineering.
Writing a clean piece of code or designing an elegant system requires understanding the core underlying principle of the problem. We encourage and help each other to think critically about problems, challenging assumptions and biases. We believe that this kind of constructive criticism makes us all better engineers, and allows the team to hit upon the right solution. Then we get to implementing!
Without discipline, a codebase rapidly becomes a poorly-abstracted, copy-pasted heap of spaghetti code, and meaningless meatballs variable names. Pull requests are reviewed by other engineers who look not only for logical inconsistencies, but also for DRYness, simplicity, consistency, and readability. We use the Zen of Python as some of our guiding principles.
We are all addicted to learning new things. Whether it be playing around with a new language like Rust or Elixir, or diving deeper into functional programming and finally figuring out what Monads are, or building an image classifier in Tensorflow, we're constantly reading about and fiddling with new things.
We have regular tech talks that anyone on the team can host. An engineer picks a random topic to talk about in-depth. The format is more of a guided conversation than a lecture. Anyone is free to ask questions or interject comments as the host presents. Past topics have ranged from things like "Unix Processes" to "Django Generic Foreign Keys" to "Medieval Warfare"(?).
Software engineering requires a constant, ongoing pursuit of knowledge and improvement. Without this necessary vigilance, both an individual, and an entire company, will quickly be left behind as software continues to evolve. Luckily, since we all love learning new things, we naturally find this to be a gratifying pastime, not a chore.
Each engineer has quite a bit of autonomy and is largely responsible for their own work. However, we're a team, not a collection of siloed individuals. We balance autonomy with generosity. We're happy to help each other out — talk through a hard bug, get opinions on a proposed design, and just generally bounce ideas off each other.
See our StackShare profile for a (mostly) exhaustive list of our tech stack.
Android, Backend, Data, Infrastructure
Likes Bash, and dapper rock climbing.
Likes Elm, dogs, and the great outdoors.
Likes 90s indie rock, skateboarding, local craft beer, and collecting useful Sublime Text plugins.
Likes purple, CSS3, swimming, and loose leaf tea.
Likes ReactiveX, Pinot Noir, and modded Minecraft.
Likes plumbing (virtual, not physical), reading history, and watching cat videos.
Management, Data, Infrastructure
Likes Rust, cave diving, and bad scifi.
Backend, Data, Infrastructure
Likes building things (physical and virtual), and over-preparing for adventures.