Engineering Values
Alloy’s engineering team shares the same values as the rest of Alloy – supporting one another, open and respectful communication, and building value in incremental steps. Our values influence the way we the way we hire, the way work every day, give feedback to each other.
Leadership skills
-
Focus on what matters
- Prioritizes work effectively in the face of competing needs and re-evaluates priorities as necessary.
- Shows clear-headed judgement and a lack of ego when changing course; can “disagree and commit”.
- Strives to understand the domain and others’ priorities to do the highest-impact engineering work possible.
-
Communicate openly and respectfully
- Communicates progress and insights to share knowledge, avoid duplicative work, and reduce blocking.
- Improves our documentation with an appropriate level of detail for the intended audience.
- Mediates and participates in discussions that result in a clear plan of action.
- Understands different modes of communication and practices empathy when communicating with peers, across functions, and externally.
-
Have each others' backs
- Provides timely and helpful code reviews that improve the author’s understanding of the code.
- Reviews designs at the appropriate level of detail to help the project achieve its objectives.
- Tackles issues with colleagues through pairing and technical guidance, proactively when appropriate.
- Leverages their peers’ strengths as necessary.
Delivery skills
-
Take ownership
- Dependably drives work to the finish line.
- Responds quickly, clearly and thoroughly to bugs and questions; doesn’t simply ship and move on.
- Identifies possible improvements and takes initiative to implement them.
-
Iterate to excellence
- Makes consistent, incremental and visible progress to drive projects to completion.
- Recognizes upcoming roadblocks and plans to mitigate their impacts.
- Breaks down projects proactively to avoid long-running branches and scope creep.
- Responds quickly and thoroughly to code reviews to maintain momentum.
-
Quantity of work
- Demonstrates proficiency with development tools and has a workflow that enables fast iteration cycles and high productivity.
- Doesn't idle when projects are blocked or moving slowly - picks up bugs and small tasks to fill the gap.
- Is a prolific author of features, fixes, reviews, design documents, tickets, etc.
Technical and Product Skills
-
Code quality, testing and debugging
- Writes clean code that is easy to read and maintain, follows and promotes best practices, and chooses good abstractions.
- Understands that code is a liability - accomplishes more with less.
- Considers edge cases, security risks, and performance concerns.
- Has deep knowledge of the language and the codebase, and an instinct for when something doesn’t feel quite right.
- Leaves existing code better than it was found. Writes effective, well structured test code.
-
Architecture and design
- Proposes solutions that fit effectively into Alloy's technical architecture.
- Uses the right tool for the job, and focuses on problem-solving over technologies.
- Designs for simplicity.
- Champions and designs tools and frameworks that are multipliers for those that follow.
-
Product and domain knowledge
- Evaluates functionality both from the user's perspective ("does the right thing") and the technologist's perspective ("does the thing right").
- Pays attention to user needs, and gains an understanding of our business and market.
- Seeks out insights and opinions from CS, domain experts, etc.