Our role as engineers at Nitro is to ensure our products and systems get built the right way. This page is a living document intended to capture some of the shared values which help us fulfill this commitment. Building software is an iterative and on-going effort, and it is only through thoughtful and purposeful tending that we keep our projects healthy. We are gardeners, and these are our values.
- We value readability in code, because it communicates our intentions more clearly. Complicated problems can have simple solutions.
- We value consistency in code, because it improves maintainability and eases knowledge transfer. We leverage well established patterns when we can.
- We test and automate, because we can refactor safely and improve customer satisfaction with more reliable software.
- We engage in continual refactoring of code, because code bases that are not cared for deteriorate over time. We budget time for this when we are planning our projects.
- We manage our technical debt carefully. We make a conscious choice when we accrue technical debt because we need to move quickly, and plan to pay back that technical debt on a continuing basis.
- We are proud of what we build, because we are happier and more engaged with our work! #FPOI
- We build stable and highly available systems, because our software is essential to our customers success. Unstable software erodes customer trust.
- We plan for failures, because when things go wrong we need to recover quickly. We learn from our failures to prevent them from occurring again.
- We value peer code reviews, because it improves code quality and facilitates knowledge transfer.
- We value collaborative ownership, because we know we need to be there for our teammates when they can’t be.
- We realize mistakes will be made, but we own our mistakes and we fix them. We seek to understand the root causes so we can avoid them next time.
- We value documentation for project and processes, because it’s an essential part of maintaining software and onboarding new engineers more quickly.
- We let the doers decide, because we trust our peers have been diligent in their approach and we give them the autonomy to execute as they see fit.
- We treat our peers with respect, because it essential to maintaining healthy and positive working relationships. We think about how we treat others because we would like to be treated the same way.
- We value diversity in our workforce, because it exposes us to new perspectives and ideas. We welcome all ethnicities, genders, and sexual orientations, and we treat everyone with the same level of respect.
- We are disciplined in meetings, because we value the time of our peers. We have a clear focus for meetings, we show up on time, and we stay on target.
- We value continuous learning, because it helps drive our innovations and increases our value as developers. We learn from our peers, blogs, books, conferences, meetups, whatever we can get our hands on!
- We teach one another, because we have diverse talents which we can help spread through the organization. Teaching pushes us to a deeper level of understanding of these topics.
- We welcome feedback, because being open to different approaches and ideas improves the quality of our solutions. We know our peers have the the best interests of the organization at heart.