At Otis, we believe that engineering is the engine that powers our mission to democratize wealth. Simply put, we’re a Tech Company, not simply a company that uses technology. We care deeply about our engineering culture, and it’s something we’re constantly refining and improving.
How We Work Together
At Otis our goal is very simple: we want incredibly talented engineers to work together to form the best team of all time.
Communication
- We're very intentional about how we communicate and we see the different ways of communication as tools in our tool belt. For example, we generally use asynchronous written communication, because it's extremely efficient. We're not big on meetings, but we recognize when synchronous communication is the right tool for the occasion and will book one if appropriate.
- We invest heavily in finding the right communication tools. For example, while we use Slack for transient messaging, we use a service called Threads for an internal memo board, which is much more appropriate for broadcasting information everyone needs to see. We use Github pull requests for code reviews, but we'll also use Loom to record demos and "asynchronously pair".
- We're collaborative and iterative. Before we start on tasks, we'll send out an overview of our plan. We'll send out PRs early, to allow others to review and gain context. Basically, we provide multiple touch points for the team to learn and provide feedback.
- We don't create silos. Versatility, teamwork, and sharing are really important to us, which means we try really hard to make sure that knowledge doesn't get stuck with a single person.
- Because we're so small, we only pair program occasionally. Usually, it'll be on very important tasks such as running commands in production.
Flexibility
- We want to work with great people, regardless of geographic location. We actively invest in the ability for our employees to do great work from anywhere, from optimizing our communication tools, to having location-agnostic compensation, to giving everyone a regular remote working stipend.
- Working with great people also means we're open to part time work. Whether it's ten hours or two days a week or whatever, we want to make it easy for talented people to contribute to Otis.
- We have a high bar for quality (see our pillars below) and that applies for everyone. By consistently applying our culture, pillars, and principles, we can spend less time getting everyone on the same page and spend more time building really cool things.
- Although we're split up into frontend and backend engineers, those are focus areas and not boxes. We're all full stack developers, and you'll be spending time reading and reviewing code on both sides of the stack.
Our Pillars
Continuous Improvement
We’re always looking to improve and we always have a “beginner’s mindset”. As a company, we’re trying to create an entirely new industry and asset class, which means it’s essential to be open to new ideas, instead of sticking to old habits.
- We’re naturally curious about how things work. Knowing that “things just work” or “that’s just the way it is” isn’t good enough for us. We want to know why.
- We’re always learning from others and ourselves. We take time to reflect on our progress and to identify ways we can improve.
- We have a culture of direct feedback, which means our feedback is thoughtful and timely. We don’t wait months to give feedback at annual reviews. Instead, we give feedback in context, which maximizes learning.
- Fail friendly and blameless environment - we encourage everyone to reflect and learn from their mistakes.
- We focus on what our engineers want to learn/improve, and we will find ways to make it happen. That can include mentorship, training, or simply opportunities to try new things.
Craftsmanship
We take a lot of pride in our craft and the quality of the software we create.
- We’re intentional in everything we do, and we value attention to detail. We care about naming, we fix typos, and we are thoughtful of where we add code.
- Tests are important to us and we use them as both documentation as well as a security blanket. We favor TDD when appropriate, and we invest time in improving our testing frameworks and tools.
- We value expressive names and code, and we try to not abbreviate. We shy away from comments, and try to bake that information into our code instead.
- We are big fans of linters and automatic code formatters. Not only do they give us consistency, but they also ensure that we’re giving feedback on the most important things.
- Paying down technical debt is important to us. We always carve out time in our sprints for “maintenance tasks” and we’re cognizant of how we can invest time now to save time later.
- Git commit history is important to us, and we like to rebase/amend our history to keep it clean.
Transparency and Diversity
This applies to the entire company culture, but it's worth re-emphasizing: we are committed to building a culture where diverse thoughts are both welcomed and rewarded.
Transparency is a big piece of this, and that includes transparent compensation as well.