-
Is aware of high-level business priorities and roadmap.
- Can articulate how present initiatives and current work fit into the larger objectives.
-
Is able to articulate individual workload and task status.
-
What have I completed?
-
What am I working on now?
-
What have I planned for the future?
-
How long are these tasks likely to take?
-
How does this impact others? Near-term plans? Longer term roadmap?
-
-
Is aware of current and upcoming initiatives, relative progress and timeline, and who is responsible for leading/working each of these.
-
Can identify dependencies and interconnectivity between own work and other initiatives.
-
Collaborates with peers working other initiatives when necessary to mitigate risk.
-
-
Seeks adequate articulation of scope, context, architecture plans, and rationale and high-level goals before starting new work.
-
Ensures that work is done in small (as possible), shippable pieces
-
When tasks are not sufficiently decomposed, works with seniors or management to produce slice plan or more atomic stories.
-
Understands when to use global or customer-specific feature flagging to isolate shipped code.
-
-
Partners with initiative leads and/or manager to author any artifacts needed to communicate plans to the team and to stakeholders.
-
Writes intelligible, high-quality code that is:
-
Readable (enough)
-
Performant (enough)
-
Secure (enough)
-
Idiomatic (enough)
-
-
Creates well-crafted commits and pull requests that follow these guidelines, in descending order of importance:
-
Each commit represents a single conceptual change
-
Keep tests green from commit-to-commit (bisectable)
-
Contain concise, intelligible, and informative commit messages
-
Tell the larger story for reviewers, QA, and future-selves
-
Are individually revertable, when possible, or can be reverted up-to-and-including-this-commit and still have a working code base.
-
-
Constantly improves the codebase.
- When legacy, poorly-written, cumbersome, or confusing code is encountered, leaves things better than they were found (within reason).
-
Is aware of and contributes to team-driven best practices around front- and back-end code style.
-
Adheres to team-agreed best practices surrounding code reviews, pull requests and quality assurance efforts.
-
Seeks out collaboration, pairing, or input from Senior Developers, Initiative Leads or Manager when unsure of how to approach a given problem or task.
-
Reviews the work of others with an eye toward best practices.
-
Treats assigned code reviews as a first-class work object.
-
Completes code reviews in a timely fashion.
-
Checks on progress.
-
-
Provides constructive, helpful feedback focused on making our codebase better and teaching others.
-
Respectfully defends own rationale for choices if/when challenged during code review.
-
Graciously acknowledges when reviewers' suggestion(s) make the code better.
-
Makes changes effectively and in a timely manner.
-
Articulates risks, dependencies, deployment steps in each Pull Request.
-
Ensures post-deployment dependencies are understood and met (migrations, rake tasks, scripts, etc.).
-
Ensures work can be deployed with minimal downtime.
-
Is occasionally available for after-hours work to support deployments, new feature rollouts, maintenance, or production issues.
-
Regularly communicates status to the rest of the team, esp. when working remotely.
-
What you're working on.
-
Who you're working with.
-
-
Engages in respectful, inclusive communication when interacting with peers.
-
Respects other’s time and walks the fine line of knowing when to stretch and when to ask for help.
-
Aware of and respects of the strengths and weaknesses of others.
-
Aware of flex time / WFH / PTO privileges and exercises them responsibly and with an eye toward impact on the team. For example:
-
How does this affect my pair?
-
How does this affect my initiative?
-
Will others need to meet with me before I take time off?
-
-
Able to diplomatically and respectfully argue in favor own code / architecture / strategy decisions when challenged.
-
Routinely on time for meetings, particularly the morning stand-up.
-
Escalates issues to initiative or team lead when necessary.
-
Meets with Engineering Manager regularly on a one-to-one basis.
-
Proactively seeks out opportunities to learn new skills or deepen existing ones.
-
Maintains short-, medium-, long-term professional development goals (which may change over time), and records progress against goals in a consumable way.
-
Showcases work to the rest of the company at the bi-weekly demo.
-
Identifies and proposes process improvements, whether within the Engineering team or TTM as a whole.
-
Shares knowledge about areas of subject-matter expertise via:
-
Pairing
-
Lunch and learns
-
Articles in Meta
-
-
Proposes changes to team values and expectations or team mission as team evolves.
-
Maintains an active presence in the development community at large:
-
OSS projects.
-
Attending or organizing meetups.
-
Giving talks at meetups or conferences.
-
Publishing dev-related content to social media.
-