📊 Data Engineering Framework
💬 Communication
- Provides regular status updates to their mentor/buddy
- Points out syntactical improvements in code reviews
- Writes PR descriptions that provide basic context for the change
- Seeks guidance from other engineers, rather than answers
💥 Impact
- Delivers assigned tasks, working with a more senior team member, and able to take PR feedback to improve their work
👩💼 Leadership
✨ Influence
- Improves documentation that is incorrect
🛠️ Mastery
- Comfortable with using git and contributing to our code base
- Can extend existing data models and design simple new ones
- Creates new Looker views and dashboards; extracts basic insights quickly from existing Looker explores
- Strong SQL skills
- Implements basic prediction models quickly
- Basic Python or R skills
- Delivers assigned tasks that meet expected criteria
- Tries to unblock themselves first before seeking help
- Works for the team, focuses on tasks that contribute to team goals
- Demonstrates a good understanding of the business team they are partnering with
- Knows how the team is organised, who is who, what are the goals, current priorities, biggest challenges etc.
- Translates business questions into analysable hypothesis and answers those
- Question from business ‘Why do salaried users cost us twice as much on customer support?’ → cost are allocated by number of intercom queries → salaried users must be generating more queries → Is of queries proportional to engagement? → Are all salaried users are over-proportionally struggling with particular problems (e.g. missing bank statements) → etc.
- Picks the right visualisation types for the data at hand
- distributions, time series, scatter plots etc
- Basic stats and math knowledge
- Able to find a formula to calculate confidence intervals for different measurement scenarios, knows how to interpret those etc.
🧪 Mastery - Data Science
📈 Mastery - Data Analytics
💬 Communication
- Proactively communicates to their team what they are working on, why, how it’s going and what help they need
- Accepts feedback graciously
- Gives feedback to peers when asked
- Provides helpful and actionable feedback in code reviews in an empathetic manner
- Take a look at the levelling up your code reviews talk for some ideas
- Writes PR descriptions that provide context and provide rationale for significant decisions
- I decided to X instead of Y here, I also considered Z but for these reasons I went with X
💥 Impact
- Delivers assigned tasks that meet expected criteria
- Works for the team, focuses on tasks that contribute to team goals
- Tries to unblock themselves first before seeking help
- Manages their own time effectively, prioritises their workload well, on time for meetings, aware when blocking others and unblocks
- Helps the team, does what needs doing
- Breaks down small/medium problems into iterative steps
👩💼 Leadership
✨ Influence
- Proactively raises issues they spot in retrospectives
🛠️ Mastery
- Reasons well about about underlying principles of data modeling
- Attention to details
- whenever they deliver a piece of work or send a weekly KPIs report they don’t just blindly copy & paste; they sanity check whether things make sense and try to spot mistakes
- Manages their own time effectively, prioritises their workload well, on time for meetings, aware when blocking others and unblocks
- able to focus on assigned tasks despite distractions from people, emails, slacks etc. Able to create a ‘focus environment’ for themselves
- exhibits self-awareness around personal productivity (able to spot and debug personal productivity issues or to seek help/advice)
- Brings things to completion
- analysts/data scientists often exhibit a behaviour where they run many analyses in parallel for a prolonged time without closing tasks off. Closing a task off could mean writing down key takeaway and sharing the findings with the relevant audience.
- brings a model into a production experiment instead of continuing to tweak offline results
🧪 Mastery - Data Science
- Familiar with ML batch serving techniques
- Basic knowledge of standard ML approaches
- linear regression, neural nets, clustering, random forests etc.
📈 Mastery - Data Analytics
💬 Communication
- Transparent about mistakes they’ve made, early
- Proactively gives timely actionable feedback to peers
- Proactively seeks feedback from the people around them
- Considers the opinions of others before defending their own
💥 Impact
- Delivers large well-defined tasks and solves small scope not-well-defined problems
- Contributes to writing proposals (Co-authors with more experienced Engineer)
- Breaks down large problems into smaller iterative steps across multiple PRs
👩💼 Leadership
- Onboards / mentors new engineers
- Finds learning opportunities for others when reviewing their code and follows it up
- I think this code could be improved by doing X, let’s pair on it and I’ll talk through why X is good for this
✨ Influence
- Actively comments on and engages with proposals
- Proactively improves modules, services, systems and codebases they encounter, ’this doesn’t make sense, I’m going to do something about it'
🛠️ Mastery
- Consistently applies data modeling best practices and suggests ways to improve current practices in non trivial cases
- Able determine what really matters for a particular analysis and understands what a 80/20 solution would look like and can prioritise accordingly
- Able to pick the best tool and method to effectively help the business to answer a question/make a decision
- Looker, SQL, python or spreadsheets + a basic chart, blackbox ML model or a structured scenario model etc) → Understands the problem at hand and proposes alternative suitable solutions rather trying to fit the problem to the favourite tool.
- Concise, clear and effective communication
- tailored to audience, clear and concise message (i.e no unnecessary details)
- can be through emails, slack or presentations
🧪 Mastery - Data Science
- Able to pick the right ML method for the problem at hand; demonstrates good intuition of how those approaches work and what strength/weaknesses they have
- Distinguishes well between impactful ML problems vs just ‘predicting something’
📈 Mastery - Data Analytics
- Asks why. Does not take truths for granted unless they understand exactly where they are coming from
- especially with regards to regulation, compliance, etc.
💬 Communication
- Proactively gives feedback ‘upwards’ and to people they interact with who are not in their team
- Transparent in making design and technical decisions
- Helps people in non-technical roles understand technical constraints / trade-offs
- Shares technical context and direction for less experienced engineers
- Gives direct and constructive feedback to other engineers
💥 Impact
- Solves ambiguous problems
- Leads writing small/medium scope proposals
- Thrown at fires and resolves / contributes heavily to resolving them
- Makes pragmatic choices about taking on tech debt
- Considers multiple different solutions for solving a problem
- Breaks down projects into smaller iterative steps that each deliver value
👩💼 Leadership
- Contributes to maintaining the Dummy Co culture in their team, helping new joiners
- Gets buy-in on technical decision-making and proposed designs
- Proactively involves other relevant engineers
- Sought out for code reviews
- Instills Dummy Co engineering principles in other engineers
- Helps the growth of engineers around them through coaching and mentoring
- Helps their squad work together more effectively
- Helps facilitate team/squad rituals
- Makes improvements to modules/libraries/services and goes out of their way to help others learn from it
- I’ve used RxJava for the first time here, I’m going to do a talk about why I’ve done this, here’s some great blog posts on it
✨ Influence
- Contributes to data team blog
- Maintains documentation on things they know the most, makes it easy for future engineers to interact with systems/code
- Clears blockers for junior team members, provides context/guidance, or knows how to escalate
- Contributes to data hiring
- leads calls, does onsite interviews
🛠️ Mastery
- Actively drives improvements of how the team works
- Values teams success over individual success and company’s success over teams success
- Onboards / mentors new team members
- Gets buy-in on technical decision-making and proposed designs
- Sought out for code reviews
- Distinguishes clearly between urgent and important tasks and is able to focus on getting the important tasks done.
- effectively manages expectations of other people
- communicates priorities to their team and other relevant stakeholders
- Holds themselves and others accountable
- Accountability is about delivering on a commitment. It’s responsibility to an outcome, not just a set of tasks.
- Communicates complex ideas effectively
- has the ability to chose the appropriate level of abstraction and make complexity easy to understand tips (see https://www.fastcompany.com/3045853/how-to-talk-about-complex-topics-without-dumbing-them-down)
🧪 Mastery - Data Science
- Thrown at fires and resolves / contributes heavily to resolving them
- Replicates cutting edge approaches from research papers where required
- Thinks about the future situations code will be used in, planning and acting accordingly
- Makes pragmatic choices about taking on tech debt
- Debugs complex Deep Neural Net code/issues
- knows what to look at when the loss is not decreasing etc.
- Validates ideas aggressively & iteratively
- tackles the biggest unknowns first; validates ideas with 10% effort
- Measures, understands and is transparent about the impact of their ML work.
- we should serve as role models for the rest of the company in this regard in particular
📈 Mastery - Data Analytics
- Valued and trusted business partner for the teams they support
- Can be mostly proxied by the type of questions their business partners are asking. ‘Can you help me to solve this (hard) problem?’ vs ‘Can you please pull this number?’
- Proactively identifies relevant/impactful areas for analyses which would deepen the understanding of the business or enable decisions
- during the planning process you contribute proactively to help your team to define the right priorities with relevant insights
💬 Communication
- Helps other people develop themselves and regularly gives insightful, useful feedback to those around them
- Talks to non-technical stakeholders on appropriate level of abstraction
💥 Impact
- Solves the ‘hard problem’ in a project e.g. Mastercard crypto and sees it through to resolution
- Solves larger ambiguous problems
- Leads incident resolutions
- Makes judgements about when to diverge from the immediate goal to achieve something else
- Leading large scale technical infrastructure projects (level 5 would originate or complete, probably)
- Leads writing large scope proposals
- Breaks down large long-lasting projects into sensible discrete chunks that compound to achieve a large goal
- Helps prioritise and balance short-term and long-term investments, focusing on high impact, high value work
👩💼 Leadership
- Instills Dummy Co engineering principles across a whole squad of engineers
- Works with relevant Engineering Managers to help other engineers perform and grow
- Fosters effective collaboration in multi-disciplinary squads (backend, mobile, data, design, web)
- Delegates technical decisions with low risk and high reversibility
- Owns technical decisions with high risk and low reversibility
- Contributes to maintaining the Dummy Co culture in the wider company
- Bootstraps new teams
✨ Influence
- Represents Dummy Co at conferences/events
- Given as reason for other engineers to join Dummy Co
- Proactively shares knowledge internally
- Acts as the ‘sole proprietor’, in the CEO mindset, their ego/agenda is not a factor in their thinking or decision making
🛠️ Mastery
- Solves larger ambiguous/not well defined problems
- Contributes to maintaining Dummy Co’s culture in the wider company
- Proactively thinks about how we can get better at our purpose: quicker and better decisions based on data
- Builds out a strong internal network
- i.e. well connected through-out the company, also to teams with no direct common projects at the moment
- Has good organisational awareness
- understands the process of how things are getting done in the company e.g. how and when goals are set, how decisions are being made, how priorities are defined etc.
- Sees common patterns in similar tasks and thinks about the solution from the platform/systems perspective.
- solutions that not only solve your own problem but also similar problems of other people in the company)
🧪 Mastery - Data Science
- Technical authority within their immediate peer group (team/platform), the natural escalation point
- Familiar with ML streaming, stateful and stateless serving techniques
- can spec out and plan an implementation. Familiar with technological components that might be required
📈 Mastery - Data Analytics
- Deep domain knowledge in specific areas, can go lower than almost anyone else
- deep credit risk knowledge, user behaviour analytics etc
💬 Communication
- Transparent about feedback they have received and what they are going to do differently
💥 Impact
- Accountable for delivery of large, mission critical engineering projects
- Originates or finishes large, horizontal engineering efforts
👩💼 Leadership
- Helps groups of squads work together more effectively
- Starts things that they cannot finish by themselves
- Delegates to make better use of their time
✨ Influence
- Attracts other very senior hires
- Engineers around them get better and have a bigger impact, faster
🛠️ Mastery
- Delivers projects that require cross functional collaboration
- Delegates to make better use of their time
🧪 Mastery - Data Science
- Serves as a technical authority in the wider data science community
- Deep domain knowledge, can go lower than almost anyone else
- Makes targeted improvements in stability, performance and scalability across our platform
- Measurable impact on company level goals
📈 Mastery - Data Analytics
- Comfortably supports and interacts with C-level executives
About our engineering progression frameworks
The engineering progression framework is a tool that helps engineers and managers:
- make development and career plans
- talk about what we’re looking for from engineers in a consistent way
- set a fair level of compensation.
The framework is a compass, not a GPS.
It’s meant to be helpful. It’s not meant to be a rating system for humans, free from edge cases.
How does it work?
The framework covers all the things we’re looking for from engineers at Dummy Co. We’re interested in these five elements:
- Mastery - Your Dummy Co knowledge and technical capability
- Impact - The size, scope and value of what you deliver
- Influence - How you change the world around you for the better
- Comms & Feedback - How you interact with others
- Leadership - How people around you become better and more impactful
We sort them into six levels, and we try to give specific examples of behaviours we expect for each. Each of those levels has a fairly wide salary range associated with it, and within each level you can progress in sub-levels, labelled A–E. So even if you’re at level 3 for a couple of years, you’ll still be able to see that you’re moving forward. Basically, the more behaviours you show from your level, the more you’ll progress.
Your manager will work with you on this. None of it will happen mysteriously behind closed doors. You’ll agree what level of progression you’re going for and what you need to improve on with your manager. It should be clear how you’re doing relative to that at all times.
Things to keep in mind
- There are many different ways to progress and be valuable to Dummy Co as you grow, including deep technical knowledge and ability, technical leadership and people management. All are equally valuable paths in Dummy Co’s engineering team.
- The framework represents a career’s worth of progression, people shouldn’t expect to fly up it in 18 months!
- Engineering progression isn’t an exact science and there will always be some ambiguity.
- This isn’t a checklist – it’s possible to progress up a level without showing all the behaviours in that level.
- There will be levels on top (eg ‘Inventor of Android’ or ‘Author of Go’), but we won’t add them until we need them.
- You can find some more information in these links. If that doesn’t answer most of your questions, please ask your manager.
Give us your feedback!
This is only the first version of our framework and we really want your feedback.
We’re particularly keen to add as many examples to the behaviours as possible, to further clarify them.