Values

These are the principles that provide foundation and direction for the engineering team. These values are dependent upon each other and provide an overarching process and methodology.

Win as a team

Establishing a consistent, strong culture is the first and foremost value. An open, supportive, and collaborative engineering culture that prioritizes relationship building fosters an environment that brings out the best in all team members.

Culture eats strategy for breakfast" - Peter Drucker

Freedom to express one's own creative ideas both in the professional sense and personally, are important in cultivating an environment that is open and accepting. Engineering is a highly creative vulnerable process, and as such it is paramount that all team members feel equally valued for their unique contributions to the team culture.

Build & Maintain Relationships

Communication and disagreement come hand in hand; the remedy to fostering a fluid workplace is to ensure that conflicts are resolved personally, professionally, and with a focus on being constructive to team culture.

Although typical engineering organizations operate in a silo away from the rest of the company, HelloOffice culture is defined by how it operates between departments. Keeping this in mind, engineers who make the effort to build and maintain professional relationships in the workplace both within the tech org and throughout the company truly represent these core values.

Share your knowledge

Organizations build resilience through knowledge sharing. When information about the business and systems is distributed throughout the team, this creates a decentralized network where multiple people are able to help out with the product at any given time. This strengthens the team and makes success all the more likely.

https://en.wikipedia.org/wiki/Bus_factor

Bring your best self

Be the best you can be in your daily life outside of work, and bring that same energy to work. Adequate sleep, exercise, vacations, and hobbies (includes relaxing) are all highly welcomed in the engineering team. These are things that build a positive atmosphere, and make work and life enjoyable.

Fluent in "code" and "user"

Engineers possess and/or progress towards expert knowledge of tooling, libraries, frameworks, and languages used within the product and tech stack. Simple solutions can resolve seemingly complex problems, and engineers fluent in the tech discover and implement these sorts of solutions.

People enjoy simplicity, build things that people want to use.

Understanding the needs of the users requires a different set of skills from coding, and this is an integral part of the engineering team's effectiveness. This usually means going above and beyond simply writing working code to building things that people want to use. Exhibiting thoughtfulness when building systems and a keen product sense are what set HelloOffice engineers apart.

This translates to writing clean, documented (or non-obfuscated) code that is performant and that captures the intended user experience crafted by the product team.

Understand the product

Engineering requires a depth of knowledge in slices of the product in order to properly build and modify features. This can quickly lead to a lack of knowledge about other areas of the product on which an engineer has not directly worked. Understanding the product from end-to-end requires initiative and a high-level of communication with the product & design team and other engineers. Engineers should strive to have at least a basic understanding of all areas of the product and write code always with the intent of driving the product forward.

Write code that your future-self will understand

Code in-line with established design patterns, standardized linter rules, and a clear naming convention (functions, variables, classes, models, file names, folder structure, etc) can be easily understood in the future by the engineering author. Furthermore, these principles are an intuitive way to document code and help anyone who has to modify it in the future.

"Did you test it?"

All code, ideas, strategies and processes are validated and proven by tests. This creates a meritocratic culture, where decisions are made based on the ideas that have been thoroughly tested and/or thought through on a deep level. A test driven culture reduces risk within the engineering organization and insulates the rest of the company from the risk of outages, bugs, and other issues. If you've written code, or have a product idea, new process or any other suggestion, bring it to the team and make sure there is a way to test that it works.

Trust

Every relationship is built on trust, including professional work relationships. It is important that trust is built and cultivated through words and actions. The people that you report to need to trust that what you tell them is reality. Equally important is that those who report to you trust you are being upfront and honest with them. Without trust, managers will micro manage as they do not have faith in their direct reports. And employees will be demotivated and discouraged to give their all to a company they do not trust. The #1 characteristic we look for in any hire is demonstrated trustworthiness and the ability to build trust within the team.

Openness

Always speak your mind. If something does not make sense, ask questions until it does or push back. It's important that decisions are checked and make sense to the entire team. There will be a time when you may not agree with a decision but it's important to have voiced your thoughts so that decisions are made with all the opinions and ideas in hand.

One-on-Ones

One-on-ones ("1n1s") are a great time to speak your mind and are important for us as a remote culture. They help to build relationships without being the same physical space and provide regularity of meeting.

You know that you are going to have an opportunity to voice your opinion in a private manner without others influencing your words or thoughts. 1n1s help build trust between individuals. And they aren't just for managers and reports. At HelloOffice we encourage 1n1s with all your colleagues as a way of sharing your ideas and validating thoughts and opinions.

Under promise over deliver

It's natural to want to impress and delight your team by to giving the shortest possible time you think a task can be accomplished. Unfortunately this emotion is a trap, life is messy and nothing ever goes perfectly. Always allow wiggle room within your set of responsibilities and tasks to account for the dynamic nature of working in a fast-moving team: anything can change and setting unrealistic expectations just creates unnecessary headache!

When you say a project will take X amount of time it sets people's expectation and they plan around that. It is much better to say a project will take 10 days and finish it in 5, then to say it will take 5 days and you finish in 10. If everything goes perfectly and you get your task done in a shorter amount of time then awesome! People will be happy to hear that. Each time you successfully deliver a project within the time frame promised, you build trust within your team.

Structure with simplicity

A continuous stream of new features, bug fixes, and code quality enhancements deployed to production is the defining attribute of the engineering organization.

Too much process can be crippling to the team, while not enough process can bear the same result. There is a method to implement structure organically, as the engineering team matures through new phases of scale: evolve simple systems and processes into complex solutions only as needed. This is inherently a very agile, software-friendly approach to creating structure for the team.

Build structure for the makers

HelloOffice engineers get shit done, and in order to do so, structure must serve the purpose of improving their capacity. This may result in a minimal amount of meetings, new bugs closed quickly before being entered in project management tools, and measurable impact.

Roles and responsibilities, not hierarchies

Every engineer on the team has impact and a role to play within the organization, both culturally and professionally. HelloOffice engineering prioritizes responsibility over rigid hierarchy to ensure that every member has a sense of ownership, freedom, and commits to their role as a product owner.

Long term goals, immediate action

Long term goals benefit from planning and strategy, but goals require action. Instead of getting mired in the minute details and endless bikeshedding, the engineering team takes action as soon as the basic information for approaching a problem is gathered. Structure begins to takes shape with small changes that build upon each other.

Learn and grow from mistakes

Evolving the structure of the engineering team is a gradual, steady process that improves through observing patterns of mistakes and making modifications.

Using failure to guide evolution lets you apply structure at the right level. If a failure is occurring in only one part of the system — say, on one team — you can try to address the structure on that team without necessarily changing the larger structure. - Camille Fournier

Be Curious

Intellectual curiosity is an absolute must-have for an engineer, whether it's an interest in what's under the hood of a frequently used library, a questioning of a better way to do something, or a desire to learn new technology. Engineering culture revolves around the process of learning.

A constant interest in learning - whether the topic is technical or not - enhances an engineer and the whole team, especially when that passion is openly communicated. So go ahead, be a know-it-all! Just make sure to share.

When we close our minds and stop learning, we start to lose the most valuable skill for maintaining and growing a successful technical career. Technology is always changing around us, so we must continually experience that change. - Camille Fournier

Last updated