Level01234567Weighted Rating
ClassDimensionAssociateSoftware Engineer ISoftware Engineer IISeniorStaffStaff IIDistinguishedRatingWeightAvailable WeightWeight ShareWeighted Rating0
TeammateEfficiencyDelivers working systems at a speed comparable to peers at this levelDelivers working systems at a speed comparable to peers at this levelDelivers working systems at a speed comparable to peers at this levelDelivers working systems at a speed comparable to peers at this levelDelivers working systems at a speed comparable to peers at this levelDelivers working systems at a speed comparable to peers at this levelDelivers working systems at a speed comparable to peers at this level300#DIV/0!
TeammateReliabilityConsistently completes assigned tasks, with some minimal delays/surprises. Can be thrown off by setbacks, but is able to recover.Consistently completes assigned tasks while communicating schedule/delays. Few surprises. Mistakes / defects are minor and non-obvious. Can be briefly distracted / demoralized by setbacks, but only suffers minor productivity loss.Consistently completes projects correctly and efficiently (with some oversight/direction). Rare surprises. Endures setbacks and stress without impaired productivity.Consistently completes projects, even without independent oversite or guidance. No surprises, and mistakes / defects are rare. Copes well with pressure and completes quality work even in face of substantial adversity. Avoids becoming negative or discouraging to other teammates.Consistently completes complex projects with no meaningful oversite. Results are consistently correct and substantial defects are very rare. Unphased by pressure and remains reliable even in urgent / volatile situations.Any team she's part of automatically becomes reliable. Ensures people she works with complete complex projects with no meaningful outside oversite. Results are consistently correct and substantial defects are nearly non-existent. Consistently produces mission or safety critical code, without foreseeable defects or delays250#DIV/0!
TeammateOwnershipAccepts responsibility for her immediately assigned tasks. Provides honest and accurate status updates and answers to questions.Accepts responsibility for tasks and portions of projects she works on. Admits mistakes without becoming defensive.Accepts responsibility for complete project outcomes. Accepts responsibility for her overall professional conduct and for her impact on the team and on other team members (regardless of her intentions). On rare occasion, foregoes/cancels external commitments to accomplish time-sensitive goals.Accepts responsibility for the business value delivered by her projects, and for the health of the team systems she's involved in. Consistently does whatever it takes to repair consequences of her mistakes. Resolves conflicts directly, without engaging in gossip or behind-the-scenes complaining. Willing to endure substantial (but rare) personal disruption to ensure key goals are met.Accepts responsibility for the business value of her team's overall output. Accepts responsibility for health of her team. Consistently "has the tough conversations" when necessary.Accepts responsibility for the business value of her divison's overall output. Accepts responsbility for health of her overall group. Willing to do what it takes to make the company succeed. Confronts inappropriate or unethical behavior head on, even if it involves career or business risk. Accepts responsibility for the business value delivered by the company's overall technical systems. Accepts responsbility for the organizational heatlh of the entire company. Draws no distinction between her own success and the company's success.150#DIV/0!
TeammateProject ManagementBreaks her assigned work into manageable tasks. Asks sufficient questions to understand what she's expected to accomplish. Has a basic system for keeping track of her tasks and her progress on them. Adheres to Upwave's development process.Breaks down moderately complex epics into a reasonable set of tasks. Develops full understanding of those tasks before proceeding. Has a mostly reliable system for tracking of tasks. Understands the goals of our development process and makes minor suggestions for improvement.Does the work to understands the goals of her projects and how her work fits into our larger technical systems and business. Collaborates actively with Product Owners to guide project direction, define epics, and break down complex epics into manageable pieces. Consistently keeps track of her commitments. Makes useful suggestions about how to improve our development and project management process.Actively collaborates with Product to set valuable development goals and drives the technical planning and delivery process for major projects. Ensures she understands the costs/benefits of her proposals and their impact on other teams. Deeply understands our development process, helps refine it, and sets a strong example for the rest of the team.Serves as a key strategic partner to product in helping to define our development goals and technical investment strategy. Sees around corners and consistently and deftly juggles competing obligations. Helps design and enhance our new areas of our delivery process (e.g. our approach to incident management).Is a "go-to" person for gnarly, organization-spanning projects. Deeply understands the nuances of project management and software development and helps up-level the delivery capabilities of the rest of the team. Makes major contributions to upgrading our overall delivery process.Never met a project she couldn't tame. Considered an essential participant in any organization-wide planning process.150#DIV/0!
TeammateCollaborationShares progress regularly with supervisor. Engages in basic collaborative discussions or pair programming. Builds positive working relationships with her immediate coworkers.Provides clear status to supervisor and teammates. Welcomes and carefully considers (informed) suggestions for improvements in her work. Collaborates productively on projects with partially overlapping responsibily. Builds relationships with most of her team and resolves minor conflicts effectively.Works productively with 1-2 other engineers on projects with heavily overlapping responsibilities. Both provides and listens to suggestions, and adopts other people's ideas when they're better than her own. Consistently carries her weight and does not allow group projects to meander from lack of clear responsibility. Forms strong working relationships with (almost) all of her direct teammates.Works productively on projects with 3+ other engineers, or projects that involve substantial collaboration with other teams. Exhibits leadership as needed, but does not crowd out contributions from other team members. Shares credit freely. Builds positive relationships with people in complementary roles on other teams.Works productively on projects with large teams or with heavy involvement from other teams/departments. Actively builds a network of peers across the department.Works effectively on projects that require close collaboration with two or more teams. Serves as a bridge and liason between teams or different areas of the business. Builds positive relationships with people in other departments, or across the organization.Able to coordinate collaboration between large swaths of the organization. Viewed as top leader and effective change-maker across the company.140#DIV/0!
TeammateLeadershipWalks the talk. Consistently models healthy, effective, inclusive behavior for peers and more junior teammates. Finds ways to improve any team she's part of. Exhibits effective leadership even without formal authority.Sets a consistently good example of healthy "Upwaver" behavior. Serves as a general go-to person for situations requiring someone to step up (even outside of her normal expertise). Exhibits grace under pressure and rallies others in difficult times to helps the team / organization pull through.Models positive, "Upwaver" leadership to other leadersBroadly recognized as a shining example of accomplished technical leadership.120#DIV/0!
TeammateConscientiousnessReflects on and generally minimizes the negative impact of her actions on othersConsistently avoids actions that cause needless difficulty or unpleasentness for others Consistently takes her impact on others into account. Finds ways to spare feelings without sacrificing effectiveness. Makes an effort to be pleasant to work with and be around.Thinks carefully about second-order impact of her actions / systems on her team and on the broader organization. Strives to minimize negative impactsTakes responsibility for the actual impacts of her actions on others, rather than the intent. Strives to proactively make amends for harms.Serves as a role model for conscientious, "Upwaver" behavior. Fights for equity on the team, particularly for more junior team mates.Exhibits exceptional sensitivity to the impact of her actions on others and on the organization. Serves as a role-model for conscientous behavior across the company.100#DIV/0!
TeammateTime ManagementWorks diligently towards clear goals while at work. Asks questions when stuck. Occasional rabbit-holing.Doesn't waste time. Has a viewpoint on relative priority of her work. Makes conscious choices to budget time proportional to task importance. Anticipates some impediments and usually asks proactive questions to circumvent them. Can usually identify rabbit holes (but not always avoid them).Correctly makes difficult prioritization tradeoffs with minimal external input. Makes (and keeps) short-scale delivery commitments. Asks questions proactively and not-too-late-but-not-too-soon. Consistently avoids rabbit-holing.Makes (and keeps) medium scale delivery commitments. Provides time estimates on medium scale projects (i.e. ~1-2 weeks). Consistently able to break work down into trackable, estimable pieces. Anticipates obstacles and aggressively solicits guidance before it's needed.Time management practices are consistently excellent. Makes and meets reasonable estimates even on complex projects. Usually anticipates problems and is hardly ever blindsided or mired down. Independently makes consistently correct prioritization decisions. Models effective time management to the rest of the team.Able to estimate large scale projects (i.e. projects where she'll be working with other engineers outside her speciality). Makes (and keeps) large scale project commitments. Does not waste time. Consistently anticipates problems and is hardly ever blindsided or mired down. Coaches others on time management and estimation techniques.Can estimate and deliver on projects of any size and complexity. Actively helps others anticipate obstacles and improve their time management and planning.85#DIV/0!
TeammateCuriositySeeks information that improves her immediate performanceSeeks information with clear relevance to her current roleSeeks information that will help her grow into larger roles/responsibilitiesStays consistently informed about general industry trends/developments and technology that's relevant to her career Develops and maintains a keen understanding of the state of the art in her fieldDevelops and maintains perspective on her field fits into a larger network of adjacent fields, and makes connections between her work and results in different domainsSeeks to drive forward the state of the art in her field75#DIV/0!
TeammateVerbal CommunicationExpresses herself clearly. Listens to input from others.Expresses herself clearly and concisely. Listens actively, seeking to understand other's points-of-view. Clearly explains moderately complex topics, and may make brief group presentations on familiar topics.Acts as a good conversationalitist. Demonstrates sensitivity to the interest level and prior knowledge of her interlocutors. Clearly explains complex topics within her area of expertise.Communicates patiently and compassionately. Listens carefully in conversation. Speaks candidely, but without unproductive abrasiveness. Structures, composes, and produces complete topical presentations for internal group consumption.Listens to understand. Gets to the bottom of issues, and proactively builds clarity/alignment in conversations. Teaches without patronizing. Guides and mediates group conversations. Proficient speaking / presenting in high-stakes situations, e.g. with clients or external stakeholders.Acts as expert conversational guide in individual and group settings. Mediates disputes and defuses tense situations. Takes a stand to ensure healthy group dialogs where all parties are respected and heard. Trusted to represent Upwave externally, e.g. as a conference speakerServes as an ambassador for Upwave to the outside world and/or the media. Viewed internally as a master communicator.65#DIV/0!
TeammateWritten CommunicationWrites simple emails and project documentation using clear written EnglishWrites clear, concise documentation, reports, and proposals for internal consumption. Writes clear and complete project documents. Exhibits economy of language.Can write extended documentation / reports / presentations intended for internal consumptionWrites comprehensive, persuasive project proposals. If called on, can write compelling external communicationCan write pieces that inspire collective action, internally or externally. Can make complex topics clear and transparent to lay audiences65#DIV/0!
TeammateInitiativeMakes proactive improvements to immediate area of workMakes proactive (if minor) improvement to code/systems she interacts with, as well as tooling, documentationLeaves code / systems better than she found them. Suggests ideas for material improvements to technical and team systemsSeeks opportunities for greater responsibility. Has a viewpoint on strengths / weaknesses of existing technical / human system, and strives to initiate improvementsHelps leadership identify areas of greatest opportunity for improvement. Works to build coalitions and consensus around projects and initiativesSeeks responsibility for mission-critical, unglamorous problems / systems. Offers and carries out concrete proposals for substantial projects and initiatives. Treats adversity as opportunity. Never lets a crisis go to waste. Understands and unravels the deepest and most difficult technical and human problems at the company. Refuses to abide badness in any area. Develops and shepherds coalitions to actual fix major problems.50#DIV/0!
TeammateBusiness Domain MasteryUnderstands enough about the business to perform her immediate role.Understands, at a high-level, how Upwave's business operates. Has a high-level understanding of how her work fits into the success of the business.Understands and can articulate a clear view of how her area of work fits into the success of the business. Understands basic structure fo the industry (e.g. who our clients are, what their high level motivations are, how our approach is different from competitors).Demonstrates a clear and fairly granular understanding of the mechanics of our business, what has made us successful in the industry, and what we need to do to be successful in the future. Can clearly frame her own work (and proposals for new work) in terms of the value they provide to the business.Understands our industry and our business and can clearly explain them to others. Has begun to develop a reasonably granular understanding of the overall structure of the industry and ecosystem. Understands what the needs and (at least basic) nuances of our clients are and can muster sufficient empathy with them to guide development decisions.Has a clear and perceptive understanding of our industry. Can foresee challenges and can effectively anticipate how our products will be received by our clients. Provides meaningful suggestions about improvements and about development strategy that help us stay ahead of the game.Deeply understands our industry, our business, and the mechanisms of "business" in general. Is a meanginful and valued partner for our executives in helping chart the future direction and strategy of the company.50#DIV/0!
Software EngineerProgrammingWrites simple code that works most of the timeWrites medium complexity code that works most of the timeWrites efficient, clear code that effectively overcomes the large majority of day to day programming challenges. Gracefully receives help with coding but seldom requires it. Code almost always works at intended and consistently avoids cleverness.Writes code that overcomes complex challenges and rarely finds herself stumped. Keeps her code as-simple-as-possible and makes it robust to most edge cases. Has either effectively mastered her primary language or is strongly comfortable in more than one. Understands and applies the idioms and patterns of her language, but can also adopt techniques as appropriate from other languages and paradigms.Writes excellent code across all levels of complexity. Effectively balances complexity and maintainability, and always preserves readability. Teaches others techniques for better programming. Expands the team's view of what's possible using code.Writes robust code that effectively solves the most complex problems. Produces libraries that can be used across many problems, or across many teams. Writes code that exemplifies best practices, and inspires more junior codes to emulate her. May contribute to open source or external projectsCodes beautifully. Sets standards for the organization and inspires the team.300#DIV/0!
Software EngineerUpwave ExpertiseOwns a small existing systemOwns a medium-size existing system.Owns a major existing system.Understands the whole Upwave system and can help out anywhere.150#DIV/0!
Software EngineerArchitectureEffectively and efficiently organizes her code into modules that are loosely coupled and highly cohesive. Ensures that her code produces a useful and usable API to the outside world.Designs complete, effective small-to-medium scale systems. Thinks perceptively about how her team's systems integrate into the broader whole. Has ideas about improving the overall architecture.Understands the overall Upwave architecture, and always ensures that her team's systems complement and improve the overall architecture. Designs, proposes, and implements large scale projects touching more than one team. Thinks about cost of operation and aims to keep it lowUnderstands the comprehensive strenghts and weaknesses of the company's overall archictecture. Called on to design the largest and most far reaching systems at the company. Ensures quality systems design prevails. Builds systems that will last a decade. Saves Upwave substantial amounts of money with cost-efficient designsDesigns Upwave's most mission critical systems, and resolves our most difficult architectural problems. 150#DIV/0!
Software EngineerDebuggingPatiently tracks down bugs in her own code. Can usually locate simple bugs in other people's codeGiven enough time, can solve most low-to-medium complexity bugs in most systems using familiar technologiesEfficiently locate bugs in familiar code. Exhibits strategies for debugging unfamiliar or blackbox systemsEfficiently locates bugs in most code and systems, familiar or unfamiliar. Demonstrates patience and resilience with subtle or stocastic bugs. Can debug/improve basic performance issues.Efficiently locates bugs and performance issues in nearly any system. Applies a logical and scientific approach. Peels down layers of the stack as necessary to identify bugs in supporting code / systems (e.g. bugs in pandas or in AWS)Has any uncanny nose for anything that can go wrong with code or configuration. Unravels the most difficult bugs. Teaches others effective debugging strategiesThe exterminator's exterminator130#DIV/0!
Software EngineerCode StyleUses comments. Follows language style guidelines. Looks for meaingful variable namesWrites helpful comments. Usually picks descriptive variable names. Usually follows her language's and Upwave's style conventionsConsistently writes helpful comments. Uses clear variable names, even for complicated or abstract variables. Consistently follows language and Upwave style conventionsWrites code that's consistently clear and readable, even when performing complex operationsSets standards of good code style for all engineers working in her technical domain. Open to code style feedback, but hardly ever needs it.130#DIV/0!
Software EngineerCode ReadingReads and understands straightforward code in familiar languagesReads and understands most code in familiar languages. Provides generally helpful commentary in code reviews.Reads and understands nearly any code in familiar languages. Provides meaningful commentary in code reviews.Reads and understands code in familiar languages and critically/deeply evaluates it. Provides consistently helpful commentary in reviews. Can read basic code in other adjacent languagesReads and deeply understands code even in unfamiliar (but comparable) languages. Carefully evalutes tradeoffs and provides observant and very helpful guidance on both style and substance during code reviewsReads and understands code in nearly any language, and can find something helpful to say about nearly any code. Teaches others how to read and interpret code more effectivelyReads and deeply understands code in nearly any languages. Understands all major programming paradigms well enough to understand and critically evaluate tradeoffs in nearly any piece of technology110#DIV/0!
Software EngineerIngenuityDiscovers ingenious solutions to simple engineering problemsDiscovers ingenious solutions to medium-complexity engineering problemsDiscovers ingenious solutions to stubborn engineering problems. "Makes do with less". Finds ways to implement "hacky" solutions without introducing excessive technical debt.Finds elegant solutions to stubborn problems. Impresses team with efficient, effective use of resources in novel ways. Serves as a resource to cut through teammates' stubborn problems.Finds elegant solutions to complex and persistent problems. Implements ingenious solutions with little-to-no technical debt.Finds remarkable, obvious-in-retrospect solutions to stubborn problems.Makes the impossible possible.90#DIV/0!
Software EngineerTechnical PlanningEstablishes acceptance criteria before starting cardsEstablishes clear acceptance criteria before starting projects. Builds clear short-term plans which are easy to communicate. Thinks about project stakeholders. Writes simple RFC's. Effectively negotiates small-to-medium scale initiatives.Establishes and discusses project plans before starting. Builds consensus around initial direction. Maintains consensus among stakeholders as project progresses and plans change. Delivers work in incremental phases instead of mammoth blocks. Effectively negotiates large initiatives with product.Writes complex RFC's and/or design docs and gets full buy-in for project plans that span teams. Keeps stakeholders coordinated. Serves as primary driver of project progress and coordination.Writes RFC's and gets full buy-in for project plans that span the whole organization.90#DIV/0!
Software EngineerToolingComfortable with basic computer operation, plus at least one "simple" editor (e.g. Jupyter). Understands why we have git & uses its basic features.Comfortable with basic unix commands + at least one "full" editor. Uses some intermediate git features like rebasing.Strongly proficient with at least one editor (using hotkeys etc). Comfortable with all the command line tools useful to her work. Understands the basics of git's data model. Can untangle most complicated git messesGenerally comfortable with the unix command line and underlying unix model. Fluent with an IDE, or is a power-user of at least one text editor.Demonstrates strong care-for-tools, and strives to maximize her velocity and efficency by seeking out and mastering the best tools.Demonstrates broad mastery of the tools of the trade. Creates new tools for her own use (when useful).Creates powerful and widely adopted tools for the whole organization, or for the wider world75#DIV/0!
Software EngineerInnovationNotices and points out gaps in our existing methods / systems.Proposes occasional ideas for new methods / approaches.Proposes well-grounded, useful ideas for new methods / approaches. Proposals are occasionally adopted.Proposes novel methods and approaches. Provides compelling explanation for why these methods are useful. Proposals are often adopted.Proposes pathbreaking and/or sui generis methods and approaches. Makes a clear case for and builds consensus around adoption of unfamiliar ideas. Innovations materially affect success of the business.Proposes fleshed-out, highly effective, highly insightful and original novel methods and approaches. Unsticks difficult problems and pushes the entire field forward (at least by a small amount). Innovations become key business differentiators and/or successful new products/strategies.Proposes novel methods of sufficient calibre to push forward the state of the art and revolutionize the business and/or industry.60#DIV/0!
Software EngineerLegacy CodeCan make minor additions / improvements to existing codebasesCan make material additions to existing code bases. Can refactor and improve tested legacy codeCan make substantial additions to existing code bases. Can substantially refactor tested code, or do minor refactorings on untested code. Can work effectively on adding to or refactoring any well-written legacy code, tested or not. Strategically adds tests to legacy code to make it more manageable. Works effectively on legacy code, even if poorly written and untested. Demonstrates strong strategies for improving legacy code bases with testing and refactoring. Can deeply internalize the meaning and original intent of legacy code. Finds ways to prevent it from becoming an impediment to rapid progress60#DIV/0!
Software EngineerTestingUnderstands the basic types of testing, and writes simple tests for her codeIs comfortable with the distinction between unit, integration, E2E tests. Understands strengths / weaknesses of each type. Produces tests that cover most serious and obvious failure casesThinks about testing before building. Consistently tests any non-throwaway code. Writes tests that run efficiently and cover most failure / regression casesUnderstands subtle tradeoffs in testing. Balances appropriately between different types of tests. Produces code with high logical coverage and good defense against serious regressions. Thinks creatively about how to make code easier to testConsistently writes thoroughly tested code, and code that can be thoroughly tested. Serves as a model of good testing for more junior engineers. Rarely has a regression not caught by a testWrites tests that provide high assurance on mission critical code. Demonstrates extreme thoughtfulness about testing strategy, and clearly discusses testing decisions55#DIV/0!
Software EngineerTechnical ResearchEfficiently explores the problem space in unfamiliar territory. Generates and defends reasonable recommendations for moderately complex problems.Develop comprehensive solutions to problems in unfamiliar territory. Critically (and accurately) evaluates external tools and libraries and makes consistently strong recommendations.Demonstrates broad perspective and judgement when evaluating tools/approaches (e.g. keeps in mind the likely longevity of a tool before adopting it). Isn't overly swayed by popularity, but appreciates the value of familiarity.Paves paths through uncharted territory, relying only on fragmentary available information.50#DIV/0!
Software EngineerSystems ThinkingThinks through how her work impacts the immediately adjacent systemsThinks through how her work impacts the team and overall architecture of her area.Thinks through impacts of her work on the overall technical architecture and long-term velocity of the team. Views human and technical systems as interconnected, and makes changes deliberately and carefully.Keeps human and technical systems front-of-mind when making decisions. Strives to only implement solutions that will be systemically viable and sustainableHas a strong intuition for far-reaching effects of technical and organizational solutions. Develops strategies that effectivelly and sustainably modify existing systems or create new onesIs a primary leader of designing human and technical systems across the whole organization45#DIV/0!
Software EngineerSystems AdministrationUses her computer effectively and debugs most of her own IT problemsAt least roughly understands file systems, memory, networksCan comfortably do core operations on a Unix machine. Able to use a cloud provider to create basic supplementary infrastructure (e.g. add an entry to Route 53, or spin up a machine on EC2)Deploys and administers complex software (e.g. databases, elasticsearch, docker). Configures and uses complex cloud systems (e.g. RDS, DynamoDB)Understands and articulates tradeoffs in different system setups (e.g. managed service vs installed-on-EC2). Understands physical limitations of computers and how to design around themUnderstands and proposes ideal solutions for using computing power to solve problems. Teaches others about computers30#DIV/0!
Backend Web EngineerRESTCan add methods to an existing REST APIUnderstands the core operations of the REST model and can layout a straightforward API for a resource.Fully versed in the core REST methods and their nuances and appropriate usages. Can design and implement a full, easy-to-consume REST API for a set of interlocking resources. Can set up a basic microservice.Deeply understands tradeoffs in the REST model. Knows when the model needs to be compromised for usability, and knows how to elegantly avoid unnecessary compromises. Can design and implement a complete API for a complete data model. Can create a complete microservice from scratch.Understands the limitations of REST and benefits of alternative paradigms like event sourcing and RPC. Knows when and how to use each type of API. Can anticipate and avoid landmines in API design. Her APIs are consistently a pleasure to consume.Can design and implement an elegant API of any type, for any use. Educates the rest of the team about effective API design.180#DIV/0!
Backend Web EngineerData ModelingBuilds basic models (e.g. user, author, book). Understands data relationship types (e.g. many-to-many) and how they map to database tables. Can handwrite simple SQL.Understands basics of ORM meaning and usage. Has a general understanding of ORMs and SQL interrelate, and can produce simple new domain classes.Understands basics of relational algebra. Can create a schema and domain classes for a basic project. Understands basics of migrations. Understands and avoids common ORM pitfalls (e.g. N+1 queries).Can create an effective schema and domain classes for a medium-complexity project. Understands migrations (and their dangers). Makes effective tradeoffs in design. Meaningfully understands how ORMs produce SQL and how to avoid producing degenerate SQL.Designs effective data models for complex projects. Grounds data models in reality, and builds models that play nicely with object-oriented programming. Designs data models that effectively span systemsDesigns data models that span systems / teams Designs data models that span the whole organization180#DIV/0!
Backend Web EngineerDeploymentCan run a service locally, or deploy by following a step-by-step guideUnderstands basics of CI/CD. Can deploy via a PaaS (e.g. ELB) without detailed instructionsUnderstands basic tradeoffs of deployment options. Can debug basic deployment problems (e.g. bad machines). Can create a k8s configuration for a basic service.Makes intelligent recommendations about deployment strategies. Can set up CI/CD with some fiddling. Thinks reasonably about scalability. Can set up moderately complex K8s configurations for services.Deeply understands tradeoffs in deployment options. Makes compelling recommendations. Can set up CI/CD comfortably or integrate advanced K8s features when necessary. Thinks effectively about scalabiltyProposes solutions that are effective at the appropriate scale (whether large or small)Can manage services at the highest scales50#DIV/0!
Data EngineerETLWrites simple scripts to move reasonable volumes of data from point A to point BWrites scripts that apply non-trivial transformations, and/or work with medium-sized or imperfect datasetsWrites scripts that function smoothly with existing pipelines. Can perform semi-complex transformations and work with arbitrarily large datasets. Has strong familiarity with some key big data tools (e.g. Cassandra, Airflow)Can design and implement an end-to-end pipeline on "medium" data with difficult transformations/aggregations etc. Keeps up-to-date with the landscape of available data processing tools (e.g. Apache projects).Can design and implement a end-to-end pipelines on arbitrarily large data with with arbitrarily difficult transformations/aggregations etc. Consistently knows the right tools for the job, even when the right tool is little known.Can design and implement interlocking data management systems at any scale and complexity, to solve any ETL problem.Expands what's possible in data management. May create or contribute to novel tools that deliver crucial ETL functionality that's unavailable in existing open source projects.140#DIV/0!
Data EngineerData Modeling / ManagementWorks comfortably with elementary data serialization formats like JSON and CSV and serializes/deserializes well-behaved data. Can read and write basic SQL.Comfortably serializes/deserializes data into modern formats like Parquet and ORC. Basically understands and can explain the tradeoffs between common formats. Understands basics of relational algebra and can articulate the tradeoffs in varying degrees of normaliation vs. denormalization. Reads/writers intermediate level SQL. Understands all major approaches to data storage and retrieval. Clearly articulates the tradeoffs between database paradigms (e.g. distributed KV vs. RDMBS) and knows which type to use when. Proposes and implements effective data layouts that model real business domains. Rarely stumped by how to accomplish something in SQL. Can repair moderately defective data (e.g. data with broken quoting schemes).Understands and has informed opinions on the major Apache big data projects. Knows the respective strengths and weakness and limitations of those projects, and selects tools appropriately. Has strong nose for "suspicious" data and can often identify and repair problems with datasets before they surface downstream. Broadly and deeply proficient with SQL.Has a nuanced understanding of the tradeoffs inherent in different approaches to data storage and management. Has an expert-level understanding of relevant data storage frameworks (e.g. DynamoDB). Demonstrates at least a basic understanding of how databases work under the hood and how limitations of computers inform storage and processing decisions (e.g. around redundancy or compression). Can do anything in SQL that can be done in SQL.Regarded across the team as an expert in data modeling and management. Deeply familiar with the database ecosystem, including cutting edge projects. Consistently able to recommend data models and layouts that minimize cost of operation and latency while maximizing downstream utility and developer productivity. Consistently demonstrates foresight in data modeling by anticipating future usage patterns in order to minimize the need for migrations.Considered an industry expert in databases and data management. Her data models always optimally satisfy the tradeoff between fidelity to the domain and suitability to the machine. Deeply familiar with even esoteric and historical approaches to data management, and can develop completely new (but still robust) data management solutions when necessary.140
Data EngineerScalabilityUnderstands the basics of computational complexity and doesn't wantonly waste computational resources.Decently understands complexity -- considers resource constraints and avoids waste.Thinks carefully about scalability at the design phase and avoids designs with unfavorable scaling characteristics. Can predict the conditions under which existing systems will break down.Thinks carefully and perceptively about scalability in all parts of design and implementation. Carefully stewards resources and seizes opportunities to improve resource efficiency.Takes a global perspective on resource usage and deploys resources frugally. Able to design systems to reach arbitrary scale, and able to retrofit existing systems to reach higher tiers of scalability.Able to squeeze existing systems down to their minimium plausible resource requirements. Able to design systems that gracefully anticipate and can be adapted to all foreseable future demands.Breaks the speed limits of scalability and makes it possible for us to operate at previously impossible scale.90#DIV/0!
Data EngineerDeployment / DevopsCan run a service locally, or deploy by following a step-by-step guideUnderstands basics of CI/CD. Can deploy via a PaaS (e.g. ELB) without detailed instructionsUnderstands basic tradeoffs of deployment options. Can debug basic deployment problems (e.g. bad machines)Makes intelligent recommendations about deployment strategies. Thinks carefully about tradeoffs in different platforms. Can maintain and extend complex platforms (e.g. Kubernetes) and can set up CI/CD with some fiddling.Deeply understands tradeoffs in deployment options. Makes compelling recommendations. Can set up CI/CD comfortably. Can setup complex platforms (e.g. Kubernetes) from scratch and make them available and accessible to other developers.Deeply familiar with the options for deploying and maintaining data pipelines at arbitrary scale. Can optimize existing platforms, or migrate existing key projects to new platforms.Invents radically new and better options for deploying and operating data services. Perhaps contributes meaningfully to open source projects.75#DIV/0!
DevopsCloud KnowledgeUnderstands the building blocks of the cloud (compute, storage, networking, virtualization). Can work effectiffvely with basic AWS services like S3, ELB.Understands at least the basics of the AWS services Upwave relies on. Understands Docker, basic Kubernetes, and the basics of permissions and networking. Has effective learning strategies for onboarding with unfamiliar cloud services.Understands most or all of the AWS services Upwave uses and can guide engineers in how to use them effectively. Understands tradeoffs between various similar services and is aware of pitfalls. Has a clear mental model of Kubernetes + Docker + cloud networking (ingress, VPN's, etc) and can explain their proper usage to engineers.Is a clear team expert on AWS services Upwave currently uses or might reasonably use in the future. Deeply understands their proper usage patterns and anti-patterns. Has a view on the trajectory of AWS and how its offerings may evolve over time. Solidly understands the substrate of the cloud (computers and networks) and can debug leaky abstractions.Deeply understands all cloud offerings and frameworks that may have potential relevance to Upwave. Helps drive Upwave's cloud strategy and actively educates engineers on how to make better use of services and resources. Deeply understands infrastructure and can debug extremely thorny leaky abstractions.Deeply understands the entire cloud ecosystem and where it's going. Has a clear view to the horizon and a highly refined and accurate intuition about the promise and perils of various offerings.Collaborates with engineers to devise and build powerful and novel uses of the cloud.100#DIV/0!
DevopsAdministrationCan do simple AWS administration via the GUI. Understands the basics of infrastructure as code and can write simple Terraform definitions and CI scripts.Is comfortable with the infrastructure-as-code paradigm. Can Terraform her way out of most situations. Can comfortably set up and administer a CI/CD platform. Writes helpful documentation.Deeply comfortable with the infrastructure-as-code paradigm. Can use Terraform to solve any problem Terraform can solve. Can configure CI/CD platforms to accomplish any standard usage. Provides thoughtful documentation and helpful proactive education to engineers.Develops and guides our cloud administration strategy. Refines and improves our methods of using infrastructure-as-code. Thoughfully explores and adopts new tools and retires obsolete ones.Finds creative ways to dramatically improve the reliability and ease of use of our system while reducing the effort and team size necessary to administer it.100#DIV/0!
DevopsObservabilityConsiders logging and metrics in implementations.Uses logging and metrics strategically to make understanding system status easier.Thinks holistically about observability when considering infrastructure design. Actively encourages thoughtful logging and metric collection, and ensures that logs and metrics are easily accessible to engineers and system administrators.Consistently looks at all infrastructure designs through a lens of observability. Actively facilitates more observable designs, and pushes back against implementations that will be hard to understand and debug. Understands and applies a robust set of tools to facilitate observability.Drives forward Upwave's observability strategy across our system as a whole. Is consistently clever and resourceful in finding ways to make our systems materially easier to understand and maintain. Has a strong intuition about anti-patterns, and consistently educates engineers about how to build observability into their designs from the beginning.100#DIV/0!
Front End EngineerJavaScriptCan implement straight-forward business logic in JavaScript componentsCan implement medium complexity business logic in JavaScript componentsCan implement complex business logic in JS components. Can wire together components with existing systems to produce medium-complexity system behavior. Writes readable, mostly idiomatic JS.Can implement arbitrarily complex business logic across an entire business system. Writes elegant, idiomatic, readable, reliable JS.If it can be done in JavaScript, she can do it.Writes powerful-but-usable JavaScript libraries that meaningfully enhance the productivity of other engineers. Generously and meaningfully educates the rest of the team on JavaScript and JS best practices.Pushes forward the broader JavaScript community180#DIV/0!
Front End EngineerInterface ImplementationAble to turn a high fidelity mock of a component into a working, mostly visually accurate component.Able to turn a high fidelity mock of a low-to-medium complexity interface into a working, nearly-visually-perfect interface.Able to turn a high fidelity mock of a complex interface into a working, nearly-visually-perfect interface.Able to turn a high fidelity mock of a complex interface into a working, pixel-perfect interface.Able to turn mocks (even low fidelity ones) into usable and visually perfect working interfaces.100#DIV/0!
Squad CaptainProject OversightDemonstrates awareness of what's on the critical path of her projects. Takes actions to unblock others if they're on the critical path. Makes effective use of status reporting tools to keep management and team up to date. Elicits feedback on interim deliverables and adjusts course accordinglyGathers status from the entire team working on her projects. Can clearly and crisply summarize progress, obstacles, and plans to management. Demonstrates understanding of the full dependency structure of projects on her squad. Plans ahead for and mitigates threats to the critical path. Makes and carries out plans to parallelize work and shorten the critical path.Maps out dependency structure of complex projects. Moves aggressively to clear the critical path, even when it passes through other teams. Demonstrates active and perceptive resource management. Helps others understand and avoid blockages. Improves systems for gathering and reporting status.Serves as a (friendly) bulldozer to keep the critical path clear even on large, multi-team complex projects. Projects get done materially sooner because she's involved.200#DIV/0!
Squad CaptainCoachingProvides specific (if limited) feedback and concrete suggestions to help teammates improve performance in specific domains.Demonstrates at least a modest understanding of the strengths and weaknesses of her teammates. Willing and able to help teammates develop plans to improve in one or more dimension of this matrix. Provides support and coaching without inducing defensiveness or hostility.Demonstrates a robust understanding of the strengths and weaknesses of her teammates and has an informed perspective on the highest ROI areas for improvement. Provides helpful, meaningful guidance on how to improve. Is at least occasionally sought out for advice and guidance.Is regarded by her team as a helpful and (at least somewhat) inspiring coach. Teammates actively seek her out for advice, and have confidence that she'll be able to help them noticeably improve performance. Demonstrates and articulates a deep understanding of what constitutes "success" in (at least) her own areas of expertise and communicates those standards and methods clearly to the people she coaches.Bill Belichick comes to her for coaching advice.150#DIV/0!
Squad CaptainContinuous ImprovementUnderstands and acts on the imperative for teams to continously improve. Has theories about the sources of friction in her workflow and on her team and acts to smooth out points of friction. Makes noticeable investments in making her team and herself more effective over time.Has a keen eye for sources of friction and waste that might not be evident to others. Actively leans into reducing waste, even when it requires uncomfortable conversations. Demonstrates a commitment to consistently improving her own craft.Demonstrates a keen understanding of sources of waste and friction at a department and cross-team level. Successfully persues and implements interventions to reduce waste. Makes other people on the team want to improve themselves.Serves as a power-sander for any organizational inefficiencies. Models the ideal of continuous improvement and never rests on her laurels.130#DIV/0!
Squad CaptainCultural StewardshipAvoids discouragement. Looks for ways to reach positive outcomes. Embodies the Upwave values (though perhaps not overtly).Demonstrates a realistic understanding of difficulties and challenges, while still presenting and following a practical path to success. Consistently and publicly emobodies Upwave values. Participates in team building events and makes an effort to make them more fun for other participants.Lifts the mood across the whole team. Proactively helps others maintain positivity. Makes suggestions for ways to help improve morale or reenforce the culture/values for other engineers. Is widely regarded as a cultural exemplar.Publicly and obviously embodies the Upwave culture and values. Mentors others on how to be an Upwaver, and confronts culturally inappropriate behavior. Proactively organizes social / team-building events to build comaraderie.Lifts the mood and creates optimism across the whole organization110#DIV/0!