Waste less time on Facebook — follow Brilliant.
×
 

Critical Thinking

On our principles page, we state: "The capacity to think critically—not raw IQ or knowledge—is the power that separates successful from mediocre participants in many fields." Software engineering is certainly one of those fields.

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!

Engineering Discipline

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.

Learning

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.

Team Structure

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.

Tech Stack

See our StackShare profile for a (mostly) exhaustive list of our tech stack.

The Team

Anton

Android, Backend, Data, Infrastructure

Likes Bash, and dapper rock climbing.

Caleb

Frontend, Backend

Likes 90s indie rock, skateboarding, local craft beer, and collecting useful Sublime Text plugins.

Jean-Nicolas

iOS

Likes ReactiveX, Pinot Noir, and modded Minecraft.

Kelly

Product Management, Frontend, Backend

Likes creative coding, the KonMari method, and Oklahoma.

Kenji

Infrastructure, Backend

Likes plumbing (virtual, not physical), reading history, and watching cat videos.

Kristian

Management, Data, Infrastructure

Likes Rust, cave diving, and bad scifi.

Sam

Backend, Data, Infrastructure

Likes building things (physical and virtual), and over-preparing for adventures.

Stephanie

Data, Infrastructure

Likes making indie games, and Byron the dog.

×

Problem Loading...

Note Loading...

Set Loading...