IC3 Machine Learning Engineer
I independently identify and deliver software solutions through a set of milestones spanning a specific product focus or a multi-component system
Area of ownership and level of autonomy / ambiguity
Organizational reach and extent of influence
Technical levers typically exercised to achieve business impact
- I own and deliver projects in service of quarterly goals on the team
- I independently identify the right solutions to solve ambiguous, open-ended problems
- I work primarily with my direct team and cross-functional partners while driving cross-team collaboration for my project
- Project Leadership - I define and deliver well-scoped milestones for a project. I may be a technical lead for projects on my team
- Product Expertise - I actively keep customer needs in mind and leverage input from product stakeholders as available to determine the right technical solutions to deliver customer value quickly
- Mentorship - I actively level up less-experienced members of my team by helping them with their craft, providing guidance, and setting a good example
- I deliver some of my team’s goals on time and with a high standard of quality
- I understand my customers, the business’s goals and my team’s goals. I ensure my work will have the greatest customer impact
- I can identify when my results aren’t moving the needle for our business/team goals or serving the needs of customers in a meaningful way and work with manager to redirect my focus
- I get work to a simple place by focusing on the heart of the problem and prioritizing the right things
- I proactively identify new opportunities and advocate for and implement improvements to the current state of projects
- I take responsibility for any failures on my project and take action to prevent them in the future. I embrace and share the learnings from those failures
- When I encounter barriers, I unblock myself and my team by proactively assessing and eliminating the root cause
- I make informed decisions by consulting the right stakeholders and balancing details with the big picture. I execute against the spirit, and not just the letter, of the requirements
- I understand the implications of my decisions and adjust my approach based on the impact and risk in the short and long-term
- I make timely decisions but don’t cut corners that would compromise my customer’s trust
- I embrace change and adapt quickly to it
- I’m able to navigate ambiguity and remain resilient through ups and downs
- I ask questions and contribute to new ideas/approaches
- I experiment with new approaches and share what I learned
- I work collaboratively with my manager to set realistic and ambitious short- and long-term goals and break them down to smaller projects for my team or myself
- I execute the development roadmap for complex, multi-phase projects, possibly as a project tech lead
- I proactively ask for feedback from those I work with and identify ways to act upon it
- I have self-awareness about my strengths and areas for development
- I drive discussions with my manager about aspirational goals and seek out opportunities to learn and grow
- I contribute to interviewing and assessing candidates to help us build a diverse and talented team by conducting more advanced domain-specific and leveling interviews
- I am able to represent my team’s initiatives and goals to candidates in a compelling way
- I model integrity and a high standard of excellence for my work. I leverage this to influence and establish best practices
- I support the growth of my teammates by taking into account their skills, backgrounds and working styles
- I solicit and offer honest and constructive feedback that is delivered with empathy to help others learn and grow
- I build relationships across teams and help get to positive outcomes
- I proactively communicate and coordinate my team’s requirements with other groups and teams in engineering
- I am capable of working with cross-functional stakeholders to identify technical blindspots and clarify ambiguity in their ideas.
- I avoid blame and solve the right problems, disagreeing and committing when necessary
- I contribute to a positive sense of community on the team (e.g. engage in team lunches, team offsites, and other group activities, help with new-hire on-boarding)
- I listen to different perspectives and I cut biases from my words and actions
- I practice the Dropbox Diversity Commitments on a regular basis
- I tailor my message to my audience, presenting it clearly and concisely at the right altitude
- I proactively share information so the right people are informed and aligned
- I foster effective communication across the team and promote inclusive meeting culture
I have achieved proficiency in ML development lifecycle*. I am familiar with applied ML techniques and toolkits.
I have mastered the fundamentals of code fluency. I have a well-rounded set of software design skills that allow me to build correct, maintainable software components.
- I am familiar with a range of ML techniques (e.g., deep learning, optimization, regression, ensembles, tree-based methods, dimensionality reduction, Bayesian modeling, etc.), areas (CV, NLP, RL, etc.), and tools (sklearn, pytorch, tensorflow, etc.) and I select a right such solution for my project.
- I maintain awareness of the state of the art, and can select an appropriate algorithm, tool or technique for a given problem.
- I can analyze and present datasets or results of experiments while choosing the appropriate statistical methods and visualization techniques.
- I can translate a business problem into a spec for a computational task such as classification, ranking, or generation.
- I am proficient in ML development lifecycle* and can design each stage according to the needs of the project.
- I define and track offline and online metrics in service of business objectives.
- I prepare and conduct experiments, analyze the results, and adapt my strategy to reflect significant findings.
- I write code that captures the essential nature of the solution and is appropriately flexible, reusable, efficient, and adaptable to changing requirements.
- I ensure high code quality in code reviews.
- I have a strong awareness of the ecosystem of tools and libraries supporting my primary programming language and development environment and a strong grasp of the idioms and patterns of my language. I may be intimately familiar with the open source community surrounding it.
- I am able to independently design software components in well scoped scenarios, with simplicity and maintenance as key considerations. My components are testable, debuggable and have logical APIs that are not easily misused.
- I know when to make significant refactors and when it’s better to leave things as-is.
- I have a strong grasp of the libraries, platforms, and systems that I rely on, allowing me to apply them expertly
* ML development lifecycle refers to the stages/tasks in the life of an ML projects: task formulation; dataset collection, cleaning, and aggregation; feature extraction; modeling, optimization, and evaluation; off/on-line testing, deployment and monitoring; and iteration based on feedback from each stage.