forked from Medium/snowflake
-
Notifications
You must be signed in to change notification settings - Fork 3
/
constants.js
1312 lines (1281 loc) · 59.2 KB
/
constants.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// @flow
import * as d3 from 'd3'
export type TrackId = 'MOBILE' | 'WEB_CLIENT' | 'FOUNDATIONS' | 'SERVERS' |
'PROJECT_MANAGEMENT' | 'COMMUNICATION' | 'CRAFT' | 'INITIATIVE' |
'CAREER_DEVELOPMENT' | 'ORG_DESIGN' | 'WELLBEING' | 'ACCOMPLISHMENT' |
'MENTORSHIP' | 'EVANGELISM' | 'RECRUITING' | 'COMMUNITY'
export type Milestone = 0 | 1 | 2 | 3 | 4
export type MilestoneMap = {
'MOBILE': Milestone,
'WEB_CLIENT': Milestone,
'FOUNDATIONS': Milestone,
'SERVERS': Milestone,
'PROJECT_MANAGEMENT': Milestone,
'COMMUNICATION': Milestone,
'CRAFT': Milestone,
'INITIATIVE': Milestone,
'CAREER_DEVELOPMENT': Milestone,
'ORG_DESIGN': Milestone,
'WELLBEING': Milestone,
'ACCOMPLISHMENT': Milestone,
'MENTORSHIP': Milestone,
'EVANGELISM': Milestone,
'RECRUITING': Milestone,
'COMMUNITY': Milestone
}
export const milestones = [0, 1, 2, 3, 4]
export const milestoneToPoints = (milestone: Milestone): number => {
switch (milestone) {
case 0: return 0
case 1: return 1
case 2: return 3
case 3: return 6
case 4: return 12
default: return 0
}
}
export const pointsToLevels = {
'0': '1.1',
'5': '1.2',
'11': '1.3',
'17': '2.1',
'23': '2.2',
'29': '2.3',
'36': '3.1',
'43': '3.2',
'50': '3.3',
'58': '4.1',
'66': '4.2',
'74': '4.3',
'90': '5.1',
'110': '5.2',
'135': '5.3',
}
export const maxLevel = 135
export type Track = {
displayName: string,
category: string, // TK categoryId type?
description: string,
milestones: {
summary: string,
signals: string[],
examples: string[]
}[]
}
type Tracks = {|
'MOBILE': Track,
'WEB_CLIENT': Track,
'FOUNDATIONS': Track,
'SERVERS': Track,
'PROJECT_MANAGEMENT': Track,
'COMMUNICATION': Track,
'CRAFT': Track,
'INITIATIVE': Track,
'CAREER_DEVELOPMENT': Track,
'ORG_DESIGN': Track,
'WELLBEING': Track,
'ACCOMPLISHMENT': Track,
'MENTORSHIP': Track,
'EVANGELISM': Track,
'RECRUITING': Track,
'COMMUNITY': Track
|}
export const tracks: Tracks = {
"MOBILE": {
"displayName": "Mobile",
"category": "A",
"description": "Executes assigned responsibilities in an effective and timely manner. Finds balance between what is ideal and what is optimal under present constraints.",
"milestones": [{
"summary": "Works effectively within established iOS, Android or Hybrid architectures, adding minor improvements and following current best practices.",
"signals": [
"Understands the basics of UI components and their hierarchy for at least one platform, efficiently distinguishes which UI component should be used at the right time",
"Delivers simple features that don't require major changes in the UI and app flow",
"Understands the basics of UI thread and avoids blocking operations",
"Reuses existing UI components appropriately",
"Follows project architecture and doesn't reinvent the wheel",
"Follows projects best practices",
"Tests code before sending pull requests and avoids breaking the CI unit tests",
"Understands algorithms and data structure concepts"
],
"examples": [
"Creates simple new Activities on Android",
"Adds a field to a form in the UI",
"Changes the color of a button",
"Knows and uses HTTP clients framemworks",
"Replicates the like UI component in other areas of the app",
"Follows source formatting patterns",
"Follows project structure organization",
"Makes HTTP requests to web services in an asynchronous way"
]
},
{
"summary": "Designs major new features and demonstrates a nuanced understanding of mobile platform constraints and their architectures.",
"signals": [
"Applies and refactors to existing code patterns and architectures ",
"Understands each platform's lifecycle and uses it efficiently ",
"Delivers complex features that require major changes in the UI or app architecture",
"Is aware of platform new version updates and can apply changes to projects",
"Delivers changes that require few modifications by the reviewer",
"Is able to monitor performance analysis and can find memory leaks",
"Uses components that performs better than others in different contexts"
],
"examples": [
"Sends a pull request that only requires source formatting and no major change in the code or architecture",
"Changes a project to use MVVM in replacement of MVC",
"Applies a new library to several parts of a project",
"Saves and restores Activities states in the right lifecycle methods",
"Adds support for new Swift language features after a major iOS version upgrade",
"Uses iOS Instruments to detect memory leaks",
"Knows the different RecyclerView and ListView and their impact in the app's performance"
]
},
{
"summary": "Builds complex, reusable architectures that bring best practices and enable engineers to work more effectively.",
"signals": [
"Works effectively with Reactive Programming paradigm",
"Pioneers architecture migration strategies that reduce programmer burden",
"Has deep knowledge of memory and thread management",
"Creates reusable cross-project libraries",
"Creates patterns and best practices that can be applied to several projects",
"Creates delightful UIs, interactions, animations that blow up the designer's minds"
],
"examples": [
"Creates source formatting and project structure conventions",
"Uses RxJava effectively",
"Benchmarks dependency injection frameworks and decides which one should be used by all mobile projects",
"Creates the Mobile SDK",
"Creates the Screens project"
]
},
{
"summary": "Is an industry-leading expert in mobile engineering or sets strategic mobile direction for an eng team.",
"signals": [
"Defines long-term goals and ensures active projects are in service of them",
"Designs and builds innovative, industry-leading UI interactions that can used by projects outside the compahy",
"Invents new techniques to responsibly stretch limits of a mobile platform",
"Be a committer to a large mobile platform, language or library",
"Participates on standards definition committees ",
"Is a technical reference to the open source community"
],
"examples": [
"Defined and drove complete migration plan to Swift or Kotlin",
"Implemented Android recycler views before platform support existed",
"Sends a pull request to Retrofit",
"Is a member of Kotlin Language Committee",
"Has many points in Stackoverflow",
"Is the maintainer of a GitHub project that has hundreds of stars"
]
}]
},
"WEB_CLIENT": {
"displayName": "Frontend",
"category": "A",
"description": "Develops expertise in web client technologies, such as HTML, CSS, and JavaScript",
"milestones": [{
"summary": "Works effectively within established web client architectures, following current best practices",
"signals": [
"Understand the basics of the HTTP protocol and RESTful services",
"Can fix simple bugs",
"Use effectively 3rd party frameworks",
"Eager to learn new things and apply this knowledge on day by day",
"Analyze performance issues",
"Keep code maintanable",
"Practice Test Driven Development",
"Follow project's best practices",
"Fix minor visual issues",
"Run quality assurance tools before sending pull requests",
"Know how to use developer tools and tasks automation",
"Find the root cause of bug by debugging the code",
"Has a good knowledge of Object Oriented and Functional Programming",
"Use version control tools",
"Follow UI patterns established by designers"
],
"examples": [
"Choose the correct HTTP method to use depending on the circumstances",
"Fix wrong UI colors, elements alignment, font size, etc",
"Can debug Liferay",
"Can debug Liferay",
"Follow patterns defined in Lexicon and Clay, reuse their components"
]
},
{
"summary": "Develops new instances of existing architecture, or minor improvements to existing architecture\n",
"signals": [
"Implement new features from scratch",
"Comfortable with the pattern and structure of projects",
"Care about user experience and usability when creating views and APIs",
"Has good knowledge of browser rendering, render tree, CSS inheritance",
"Have some sense of performance issues",
"Implement UIs with high fidelity to what has been created by designers",
"Write code that is easy to understand and with quality",
"Create UI components that can be reused in other places by extending existing components",
"Review code from others, suggesting changes and improvements",
"Make changes that require few corrections during code review by reviewer",
"Write code with good test coverage",
"Automate day to day tasks",
"Make changes that have noticeable impact in products",
"Care about end-users when implementing features",
"Understand the needs of the product owner and translate them to code",
"Work side by side with designers",
"Have a good knowledge of the stack used by projects",
"Create unit tests"
],
"examples": [
"Implement the drag and drop feature for Forms",
"Create a new class based on a well known pattern",
"Create reusable UI components like buttons, modals, dropdowns, etc, avoiding duplication of code",
"Implement a view that doesn't require many changes after reviewed by the designer",
"Send pull request that doesn't require major changes from the reviewer"
]
},
{
"summary": "",
"signals": [],
"examples": []
},
{
"summary": "",
"signals": [],
"examples": []
}]
},
"FOUNDATIONS": {
"displayName": "Foundations",
"category": "A",
"description": "Develops expertise in foundational systems, such as deployments, pipelines, databases and machine learning",
"milestones": [{
"summary": "Works effectively within established structures, following current best practices",
"signals": [
"Writes thorough postmortems for service outages",
"Makes simple configuration changes to services",
"Performs backfills safely and effectively, without causing pages",
],
"examples": [
"Made safe and effective Ansible changes",
"Implemented new ETL pipelines based on existing ones",
"Resolved out of disk errors independently",
],
}, {
"summary": "Develops new instances of existing architecture, or minor improvements to existing architecture",
"signals": [
"Made minor version upgrades to technologies",
"Builds machine learning jobs within the ML framework",
"Triages service issues correctly and independently",
],
"examples": [
"Upgraded NodeJS from 8.0 to 8.1.1",
"Built custom packages for RPMs",
"Improved ETL efficiency by improving Dynamo to S3 loading",
],
}, {
"summary": "Designs standalone systems of moderate complexity, or major new features in existing systems",
"signals": [
"Acts as primary maintainer for existing critical systems",
"Designs moderately complex systems",
"Makes major version upgrades to libraries",
],
"examples": [
"Designed Ansible configuration management",
"Built Medium's realtime stats pipeline",
"Designed flexible framework for writing machine learning jobs",
],
}, {
"summary": "Builds complex, reusable architectures that pioneer best practices for other engineers, or multi-system services",
"signals": [
"Designs complex projects that encompass multiple systems and technologies",
"Demonstrates deep knowledge of foundational systems",
"Introduces new databases and technologies to meet underserved needs",
],
"examples": [
"Designed and built BBFD",
"Designed AWS configuration management",
"Introduced Kinesis and pioneered streaming events pipeline",
],
}, {
"summary": "Is an industry-leading expert in foundational engineering or sets strategic foundational direction for an eng team",
"signals": [
"Designs transformational projects in service of long-term goals",
"Defines the strategic vision for foundational work and supporting technologies",
"Invents industry-leading techniques to solve complex problems",
],
"examples": [
"Invented a novel ML technique that advanced the state of the art",
"Defined and developed Medium's continuous delivery strategy",
"Developed and implemented HA strategy",
],
}],
},
"SERVERS": {
"displayName": "Backend",
"category": "A",
"description": "Develops expertise in server side engineering",
"milestones": [{
"summary": "Works effectively within established server side frameworks, following current best practices",
"signals": [
"Nice storytelling, code and commits are self explainable, facilitates code reviews by others",
"Writes code with quality and automated tests",
"Understands test types and knows when to write them",
"Can write and understands SQL queries and understands the basics of relational databases",
"Adds simple features to existing products",
"Understands the MVC design pattern",
"Is able to use debug tools and knows how to find the root cause of bugs",
"Understands how version control systems work",
"Knows how to write Views (from MVC) in template languages",
"Writes code documentation when applicable",
"Has basic knowledge of most used frameworks and libraries",
"Fixes simple bugs that don't require major refactor in the code",
"Understands what are the most common Design Patterns",
"Undertands the most common Data Structures, Algorithms, Programming Paradigms, etc."
],
"examples": [
"Write a unit or integration test, using JUnit, Mockito and Arquilian",
"Write bug fixes with tests covering them, avoiding regressions",
"Send a pull request that is easy to review",
"Fix a custom SQL bug",
"Add a new MVC command to an existing portlet",
"Debugs Java code in order to find what's causing NullPointerExceptions",
"Analyze HTTP requests and responses bodies in order to debug code and understand its root cause",
"Fix a JSPs tags and its parameters",
"Make a change to an existing Service Builder entity",
"Use git's basic commands",
"Add a delete button to an entity row in a JSP",
"Create a JSP to display a list of Service Builder entities",
"Write a query to fetch entities from database",
"Respect source formatting rules",
"Create a JSP or Soy Template from scratch",
"Understand OSGi's lifecycle",
"Uses Gogo Shell basic commands",
"Uses Mockito in unit tests",
"Understand basic Spark transformations and actions (map, flatmap, reduce, collect, count, etc)",
"Understand the difference between lists, hashtables, stacks, queues, trees and when to use them",
"Use composition or inheritance when applicable"
]
},
{
"summary": "Develops new instances of existing architecture, or minor improvements to existing architecture",
"signals": [
"Effectively reviews others' code",
"Is concious about how major changes impact in external dependencies and upgrade processes",
"Identifies improvements in an existing architecture and makes changes to them",
"Implements a new instance of an architectural interface",
"Develops new features from scratch to an existing product",
"Reuses code and extracts reusable code when needed",
"Estimates stories with some accuracy and knows how to break them in small subtasks",
"Notices when changes may have a high performance impact",
"Identifies what are the code patterns used in a project",
"Models data entities",
"Fixes complex bugs that affect many parts of the code",
"Applies Design Patterns in an optimal way",
"Writes code with high cohesion and low coupling"
],
"examples": [
"Write an UpgradeProcess instance",
"Create a new Rule for the Forms portlet",
"Implement a new AssetEntryImpl",
"Implement a new Spark Job",
"Create a new CRUD portlet",
"Implement a new custom Finder",
"Implement a portlet DataHandler",
"Fix a bug that changes many code layers (JSP, *ServiceImpl, *LocalServiceImpl, *FinderImpl, etc)",
"Reviews and changes pull requests that are not following the project code patterns and source formatting rules",
"Create a new entity from scratch in Service Builder",
"Creates a Builder or a Factory when it makes sense"
]
},
{
"summary": "Designs standalone systems of moderate complexity, or major new features in existing systems",
"signals": [
"Develops integrations with third-party systems or APIs that can be consumed by them",
"Suggests new technologies and good practices that can be used by several projects",
"Suggests changes to frameworks with minimal impact",
"Handles escalated issues from other teams",
"Implements complex features in an optimal way",
"Comes up with technical solutions for complex problems and bugs",
"Understands and fixes performance and memory leak issues and knows how to use profiling tools",
"Helps defining new product's architecture",
"Detects common problems to several projects and can fix them with a single solution",
"Understands project details enough to discuss with external stakeholders about their needs",
"Estabilishes best practices and patterns to be used by a project"
],
"examples": [
"Implement a connector with Salesforce for the Commerce project",
"Create the architecture of Forms rules",
"Help defining the Analytics' architecture",
"Choose to use Scala in all Spark Jobs because it has better performance than Java",
"Drives the Reactive Programming adoption to many projects",
"Create APIO, a new REST framework that can be used by all projects",
"Is the front facing person for Support and Global Services",
"Fix a bug related to Staging that requires many lines of changes",
"Use JProfiling and thread dump toold to find memory leaks and performance bottlenecks",
"Uses Gogo Shell to track why a Component or Service is not active",
"Add support to translations in Forms that requires a major refactoring",
"Implement a new Servlet Filter",
"Create the Analytics SDK",
"Meet with a client to discuss the technical solution for a potential sponsored development contract",
"Propose a new patttern to extract logic from several JSPs and convert their logic to Java Beans",
"Use Protobuffer to mitigate performance issues"
]
},
{
"summary": "Builds complex, reusable architectures that pioneer best practices for other engineers, or multi-system services",
"signals": [
"Researches and chooses the technology stack and frameworks to be used by projects",
"Updates an existing product with new architectures and patterns",
"Translates business needs to technical solutions",
"Is a reference to the technical community and industry",
"Guides and changes the direction of the Engineering department",
"Conceives and designs new products",
"Globally coordinates adoption on new patterns and technologies",
"Last resource for architectural problems escalation",
"Decides on deprecation of products or libraries",
"Evaluates the technical feasibility of new products",
"Defines the non-functional requirements for products (scalability, security, maintances and performance requirements)",
"Defines how applications will integrate with others",
"Develops new frameworks or libraries that can be used by external developers"
],
"examples": [
"Decide to use OSGi in all portal projects",
"Participate o JSRs specification committees ",
"Give a presentation at JavaOne",
"Decide to user Hibernate, Spring and Tomcat for a given project",
"Help the product manager to find a technical solutions for a new product",
"Partipate on the definition of the Portlet 3.0 specification",
"Envisions and creates the WeDeploy product from market needs, creating a new revenue stream for company",
"Define the protocol to be used by Experience Cloud to integrate with Customer Service",
"Create the jodd open-source library"
]
}]
},
"PROJECT_MANAGEMENT": {
"displayName": "Project management",
"category": "B",
"description": "Delivers well-scoped programs of work that meet their goals, on time, to budget, harmoniously",
"milestones": [{
"summary": "Effectively delivers individual tasks",
"signals": [
"Estimates small tasks accurately",
"Delivers tightly-scoped projects efficiently",
"Writes effective technical specs outlining approach",
],
"examples": [
"Wrote the technical spec for featured post images",
"Delivered stream item support for email digests",
"Delivered payment history dashboard",
],
}, {
"summary": "Effectively delivers small personal projects",
"signals": [
"Performs research and considers alternative approaches",
"Balances pragmatism and polish appropriately",
"Defines and hits interim milestones",
],
"examples": [
"Delivered promo editor",
"Delivered audio uploading for web client",
"Executed the recommends to claps backfill",
],
}, {
"summary": "Effectively delivers projects through a small team",
"signals": [
"Delegates tasks to others appropriately",
"Integrates business needs into project planning",
"Chooses appropriate project management strategy based on context",
],
"examples": [
"Ran project retro to assess improvement opportunities",
"Completed launch checklist unprompted for well controlled rollout",
"Facilitated project kickoff meeting to get buy-in",
],
}, {
"summary": "Effectively delivers projects through a large team, or with a significant amount of stakeholders or complexity",
"signals": [
"Finds ways to deliver requested scope faster, and prioritizes backlog",
"Manages dependencies on other projects and teams",
"Leverages recognition of repeated project patterns",
],
"examples": [
"Oversaw technical delivery of Hightower",
"Managed infrastructure migration to VPC",
"Involved marketing, legal, and appropriate functions at project start",
],
}, {
"summary": "Manages major company pushes delivered by multiple teams",
"signals": [
"Considers external constraints and business objectives when planning",
"Leads teams of teams, and coordinates effective cross-functional collaboration",
"Owns a key company metric",
],
"examples": [
"Managed technical migration to SOA",
"Lead technical delivery of 10/7",
"Delivered multi-month engineering project on time",
],
}],
},
"COMMUNICATION": {
"displayName": "Communication",
"category": "B",
"description": "Shares the right amount of information with the right people, at the right time, and listens effectively",
"milestones": [{
"summary": "Communicates effectively to close stakeholders when called upon, and incorporates constructive feedback",
"signals": [
"Communicates project status clearly and effectively",
"Collaborates with others with empathy",
"Asks for help at the appropriate juncture",
],
"examples": [
"Updated The Watch before running a backfill",
"Updated project status changes in Asana promptly",
"Gave thoughtful check-in and check-out comments",
],
}, {
"summary": "Communicates with the wider team appropriately, focusing on timeliness and good quality conversations",
"signals": [
"Practises active listening and suspension of attention",
"Ensures stakeholders are aware of current blockers",
"Chooses the appropriate tools for accurate and timely communication",
],
"examples": [
"Received and integrated critical feedback positively",
"Created cross-team Slack channel for payments work",
"Spoke to domain experts before writing spec",
],
}, {
"summary": "Proactively shares information, actively solicits feedback, and facilitates communication for multiple stakeholders",
"signals": [
"Resolves communication difficulties between others",
"Anticipates and shares schedule deviations in plenty of time",
"Manages project stakeholder expectations effectively",
],
"examples": [
"Directed team response effectively during outages",
"Gave a substantial Eng All Hands presentation on React",
"Gave notice of upcoming related work in Eng Briefing",
],
}, {
"summary": "Communicates complex ideas skillfully and with nuance, and establishes alignment within the wider organization",
"signals": [
"Communicates project risk and tradeoffs skillfully and with nuance",
"Contextualizes and clarifies ambiguous direction and strategy for others",
"Negotiates resourcing compromises with other teams",
],
"examples": [
"Lead off-site workshop on interviewing",
"Wrote Medium's growth framework and rationale",
"Aligned the entire organization around claps",
],
}, {
"summary": "Influences outcomes at the highest level, moves beyond mere broadcasting, and sets best practices for others",
"signals": [
"Defines processes for clear communication for the entire team",
"Shares the right amount of information with the right people, at the right time",
"Develops and delivers plans to execs, the board, and outside investors",
],
"examples": [
"Organized half year check-in company offsite",
"Created the communication plan for a large organizational change",
"Presented to the board about key company metrics and projects",
],
}],
},
"CRAFT": {
"displayName": "Craft",
"category": "B",
"description": "Embodies and promotes practices to ensure excellent quality products and services",
"milestones": [{
"summary": "Delivers consistently good quality work",
"signals": [
"Tests new code thoroughly, both locally, and in production once shipped",
"Writes tests for every new feature and bug fix",
"Writes clear comments and documentation",
],
"examples": [
"Caught a bug on Hatch before it went live",
"Landed non-trivial PR with no caretaker comments",
"Wrote hermetic tests for the happy and sad cases",
],
}, {
"summary": "Increases the robustness and reliability of codebases, and devotes time to polishing products and systems",
"signals": [
"Refactors existing code to make it more testable",
"Adds tests for uncovered areas",
"Deletes unnecessary code and deprecates proactively when safe to do so",
],
"examples": [
"Requested tests for a PR when acting as reviewer",
"Reduced the number of zelda fitzgerald exceptions",
"Fixed a TODO for someone else in the codebase",
],
}, {
"summary": "Improves others' ability to deliver great quality work",
"signals": [
"Implements systems that enable better testing",
"Gives thoughtful code reviews as a domain expert",
"Adds tooling to improve code quality",
],
"examples": [
"Improved PRB to run the same volume of tests faster",
"Simplified hermetic test data modification",
"Created fixture system for visual quality",
],
}, {
"summary": "Advocates for and models great quality with proactive actions, and tackles difficult and subtle system issues",
"signals": [
"Builds systems so as to eliminate entire classes of programmer error",
"Focuses the team on quality with regular reminders",
"Coordinates Watch priorities and projects",
],
"examples": [
"Added code coverage reporting to iOS CI pipeline",
"Iterated repeatedly to develop Medium's underlines solution",
"Defined and oversaw plan for closing Heartbleed vulnerability",
],
}, {
"summary": "Enables and encourages the entire organization to make quality a central part of the development process",
"signals": [
"Defines policies for the engineering org that encourage quality work",
"Identifies and eliminates single points of failure throughout the organization",
"Secures time and resources from execs to support great quality",
],
"examples": [
"Negotiated resources for Fix-It week with exec team",
"Instituted and ensured success of a 20% time policy",
"Started The Watch",
],
}],
},
"INITIATIVE": {
"displayName": "Initiative",
"category": "B",
"description": "Challenges the status quo and effects positive organizational change outside of mandated work",
"milestones": [{
"summary": "Identifies opportunities for organizational change or product improvements",
"signals": [
"Writes Hatch posts about improvement opportunities",
"Raises meaningful tensions in tactical meetings",
"Asks leadership team probing questions at FAM",
],
"examples": [
"Wrote about problems with TTR on Hatch",
"Wrote about content policy problems on Hatch",
"Reported a site issue in Github",
],
}, {
"summary": "Causes change to positively impact a few individuals or minor improvement to an existing product or service",
"signals": [
"Picks bugs off the backlog proactively when blocked elsewhere",
"Makes design quality improvements unprompted",
"Takes on trust and safety tasks proactively when blocked elsewhere",
],
"examples": [
"Advocated on own behalf for a change in role",
"Implemented flow typing for promises",
"Audited web client performance in Chrome and proposed fixes",
],
}, {
"summary": "Causes change to positively impact an entire team or instigates a minor feature or service",
"signals": [
"Demonstrates concepts proactively with prototypes",
"Fixes complicated bugs outside of regular domain",
"Takes ownership of systems that nobody owns or wants",
],
"examples": [
"Defined style guide to resolve style arguments",
"Proposed and implemented at-mentions prototype",
"Implemented video for Android independently, unprompted",
],
}, {
"summary": "Effects change that has a substantial positive impact on the engineering organization or a major product impact",
"signals": [
"Champions and pioneers new technologies to solve new classes of problem",
"Exemplifies grit and determination in the face of persistent obstacles",
"Instigates major new features, services, or architectures",
],
"examples": [
"Created the interviewing rubric and booklet",
"Implemented and secured support for native login",
"Migrated medium2 to mono repo and bazel",
],
}, {
"summary": "Effects change that has a substantial positive impact on the whole company",
"signals": [
"Creates a new function to solve systemic issues",
"Galvanizes the entire company and garners buy in for a new strategy",
"Changes complex organizational processes",
],
"examples": [
"Migrated the organization from Holacracy",
"Built Medium Android prototype and convinced execs to fund it",
"Convinced leadership and engineering org to move to Medium Lite architecture",
],
}],
},
"CAREER_DEVELOPMENT": {
"displayName": "Career development",
"category": "C",
"description": "Provides strategic support to engineers to help them build the career they want",
"milestones": [{
"summary": "Gives insight into opportunities and helps identify individuals' strengths and weaknesses",
"signals": [
"Advocates on behalf and in defense of a group member",
"Shares opportunities for improvements and recognises achievements",
"Explains appropriate available industry paths",
],
"examples": [
"Collected and delivered feedback",
"Discussed career options and areas of interest informally",
"Hosted a Floodgate Academy intern",
],
}, {
"summary": "Formally supports and advocates for one person and provides tools to help them solve career problems",
"signals": [
"Ensure a group member has an appropriate role on their team",
"Offers effective career advice to group members, without being prescriptive",
"Creates space for people to talk through challenges",
],
"examples": [
"Set up and attended regular, constructive 1:1s",
"Provided coaching on how to have difficult conversations",
"Taught group members the GROW model",
],
}, {
"summary": "Inspires and retains a small group of people and actively pushes them to stretch themselves",
"signals": [
"Discusses paths, and creates plans for personal and professional growth",
"Advocates to align people with appropriate roles within organization",
"Works with team leads to elevate emerging leaders",
],
"examples": [
"Reviewed individual group member progression every 6 weeks",
"Suggested appropriate group member for Tech Lead position",
"Arranged a requested switch of discipline for a group member",
],
}, {
"summary": "Manages interactions and processes between groups, promoting best practices and setting a positive example",
"signals": [
"Manages team transitions smoothly, respecting team and individual needs",
"Develops best practices for conflict resolution",
"Ensures all group members' roles are meeting their career needs",
],
"examples": [
"Completed training on situational leadership",
"Built a resourcing plan based on company, team, and individual goals",
"Prevented regretted attrition with intentional, targeted intervention",
],
}, {
"summary": "Supports the development of a signficant part of the engineering org, and widely viewed as a trusted advisor",
"signals": [
"Supports and develops senior leaders",
"Identified leadership training opportunities for senior leadership",
"Pushes everyone to be as good as they can be, with empathy",
],
"examples": [
"Provided coaching to group leads",
"Devised Pathwise curriculum for group leads",
"Advocated to execs for engineer development resources and programs",
],
}],
},
"ORG_DESIGN": {
"displayName": "Org design",
"category": "C",
"description": "Defines processes and structures that enables the strong growth and execution of a diverse eng organization",
"milestones": [{
"summary": "Respects and participates in processes, giving meaningful feedback to help the organization improve",
"signals": [
"Reflects on meetings that leave them inspired or frustrated",
"Teaches others about existing processes",
"Actively participates and makes contributions within organizational processes",
],
"examples": [
"Facilitated effective tactical meeting with empathy",
"Explained tactical meeting format to a new hire",
"Provided feedback on sprint planning meeting",
],
}, {
"summary": "Identifies opportunities to improve existing processes and makes changes that positively affect the local team",
"signals": [
"Defines meeting structure and cadence that meets team needs",
"Engages in organizational systems thinking",
"Advocates for improved diversity and inclusion, and proposes ideas to help",
],
"examples": [
"Defined Frankenmeeting structure for small team",
"Improved Watch on-call rotation scheduling",
"Defined standard channels for inter-team communication",
],
}, {
"summary": "Develops processes to solve ongoing organizational problems",
"signals": [
"Creates programs that meaningfully improve organizational diversity",
"Solves long-standing organizational problems",
"Reallocates resources to meet organizational needs",
],
"examples": [
"Developed baseline team templates for consistency",
"Created bug-rotation program to address ongoing quality issues",
"Defined Guilds manifesto and charter",
],
}, {
"summary": "Thinks deeply about organizational issues and identifies hidden dynamics that contribute to them",
"signals": [
"Evaluates incentive structures and their effect on execution",
"Analyzes existing processes for bias and shortfall",
"Ties abstract concerns to concrete organizational actions or norms",
],
"examples": [
"Connected mobile recruiting difficulties to focus on excellence",
"Raised leadership level change discrepancies",
"Analyzed the hiring rubric for false negative potential",
],
}, {
"summary": "Leads initiatives to address issues stemming from hidden dynamics and company norms",
"signals": [
"Builds programs to train leadership in desired skills",
"Creates new structures that provide unique growth opportunities",
"Leads planning and communication for reorgs",
],
"examples": [
"Lead efforts to increase number of mobile engineers",
"Directed resources to meaningfully improve diversity at all levels",
"Built the growth framework rubric",
],
}],
},
"WELLBEING": {
"displayName": "Wellbeing",
"category": "C",
"description": "Supports the emotional well-being of group members in difficult times, and celebrates their successes",
"milestones": [{
"summary": "Uses tools and processes to help ensure colleagues are healthy and happy",
"signals": [
"Keeps confidences unless legally or morally obliged to do otherwise",
"Applies the reasonable person principle to others",
"Avoids blame and focuses on positive change",
],
"examples": [
"Ensured group members were taking enough vacation",
"Put themself in another's shoes to understand their perspective",
"Checked in with colleague showing signs of burnout",
],
}, {
"summary": "Creates a positive, supportive, engaging team environment for group members",
"signals": [
"Sheds light on other experiences to build empathy and compassion",
"Validates ongoing work and sustains motivation",
"Proposes solutions when teams get bogged down or lose momentum",
],
"examples": [
"Coordinated a small celebration for a project launch",
"Connected tedious A|B testing project with overall company goals",
"Noted a team without a recent win and suggested some easy quick wins",
],
}, {
"summary": "Manages expectations across peers, leads in the org, promotes calm, and prevents consensus building",
"signals": [
"Trains group members to separate stimulus from response",
"Maintains a pulse on individual and team morale",
"Helps group members approach problems with curiosity",
],
"examples": [
"Completed training on transference and counter transference",
"Completed training on compromise and negotiation techniques",
"Reframed a problem as a challenge, instead of a barrier, when appropriate",
],
}, {
"summary": "Advocates for the needs of teams and group members, and proactively works to calm the organization",
"signals": [
"Ensures team environments are safe and inclusive, proactively",
"Grounds group member anxieties in reality",
"Tracks team retention actively and proposes solutions to strengthen it",
],
"examples": [
"Relieved org tension around product direction by providing extra context",
"Encouraged group members to focus on what they can control",
"Guided people through complex organizational change",
],
}, {
"summary": "Manages narratives, channels negativity into inspiration and motivation, and protects the entire team",
"signals": [
"Recognizes and points out narratives when appropriate",
"Works to reshape narratives from victimization to ownership",
"Increases the psychological safety of the entire team",
],
"examples": [
"Converted group member from a problem haver to a problem solver",
"Challenged false narrative and redirected to compassion and empathy",
"Cultivated and championed a culture of empathy within the entire team",
],
}],
},
"ACCOMPLISHMENT": {
"displayName": "Accomplishment",
"category": "C",
"description": "Inspires day to day excellence, maximises potential and effectively resolves performance issues with compassion",
"milestones": [{
"summary": "Helps individuals identify blockers and helps them identify next steps for resolution",
"signals": [
"Notices when someone is stuck and reaches out",
"Helps others break down problems into feasible, tangible next steps",
"Talks through problems non-judgmentally",
],
"examples": [
"Completed training on diagnosing problems",
"Unblocked a group member",
"Reinforces and affirms positive feedback for good work",
],
}, {
"summary": "Helps individuals resolve difficult performance issues, with insight, compassion, and skill",
"signals": [
"Gathers context outside the immediate problem",
"Recognizes issues within local environment and suggests change",
"Works to encourage ownership of actions and responsibilities",
],
"examples": [
"Completed training on decision making",
"Convinced a group member to solve a problem directly, rather than doing it for them",
"Gave honest feedback about poor performance, with compassion",
],
}, {
"summary": "Intervenes in long-standing performance issues with targeted behavior change or performance plans",
"signals": [
"Aggregates signals of poor performance and creates process for improvement",
"Investigates motivation and externalities for consistent poor performance",
"Puts together comprehensive, achievable performance plans",
],
"examples": [
"Worked with group member to address persistent communication failures",
"Arranged a transfer to another team, resulting in improved performance",
"Managed group member closely to maximise chances of PIP success",
],
}, {
"summary": "Mediates escalated situations, empowers underperforming teams, and resolves conflict",
"signals": [
"Recognizes heightened situations and toxic or aggressive interactions",
"Inserts themself into conflict where appropriate to calm and mediate",
"Encourages open dialog and builds trust between parties in conflict",
],
"examples": [
"Empowered a team to drive forward amidst uncertainty",
"Protected team from externalities so they could focus on goals",
"Mediated sit-down between team members to address tension",
],
}, {
"summary": "Resolves complex organizational dysfunction, or persistent conflict at senior levels",
"signals": [
"Takes control of dysfunctional teams to organise chaos",
"Repairs broken team dynamics and builds harmony",
"Presides over a well-oiled team of teams",
],
"examples": [
"Turned around the performance of a problematic team",
"De-escalated serious tensions between teams",
"Rebuilt trust between senior team leads",
],
}],
},
"MENTORSHIP": {
"displayName": "Mentorship",
"category": "D",
"description": "Provides support to colleagues, spreads knowledge, and develops the team outside formal reporting structures",