From 98b8d6e992ff173ab824714df9bc4d63c69460db Mon Sep 17 00:00:00 2001 From: Russell Jones Date: Fri, 2 Sep 2022 14:13:41 -0700 Subject: [PATCH] Refactored levels guide. (#68) Updated Engineering Levels Guides * Updated Makefile to use Docker to create levels guides. * Cleaned up systems engineer levels guide. * Added fullstack levels guide. Co-authored-by: Zac Bergquist --- Dockerfile | 13 ++ Makefile | 27 ++-- README.md | 2 +- levels.pdf | Bin 39464 -> 27239 bytes levels.tex | 103 +------------- levels/README.md | 23 ++++ levels/fullstack.pdf | Bin 0 -> 55748 bytes levels/fullstack.tex | 322 +++++++++++++++++++++++++++++++++++++++++++ levels/systems.pdf | Bin 0 -> 55571 bytes levels/systems.tex | 309 +++++++++++++++++++++++++++++++++++++++++ 10 files changed, 683 insertions(+), 116 deletions(-) create mode 100644 Dockerfile create mode 100644 levels/README.md create mode 100644 levels/fullstack.pdf create mode 100644 levels/fullstack.tex create mode 100644 levels/systems.pdf create mode 100644 levels/systems.tex diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fd6bdfa --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +FROM ubuntu:22.04 + +RUN apt-get update && \ + apt-get install -y --no-install-recommends cmake && \ + rm -rf /var/lib/apt/lists/* + +RUN apt-get update -y --fix-missing && \ + apt-get -q -y upgrade && \ + apt-get install -q -y --no-install-recommends \ + texlive \ + texlive-base + +WORKDIR /tmp diff --git a/Makefile b/Makefile index 1af3c66..6ae85d6 100644 --- a/Makefile +++ b/Makefile @@ -1,23 +1,12 @@ -export TEXINPUTS := $(TEXINPUTS):$(abspath styles) - -TEX_SOURCES := $(shell find -name '*.tex') -GENERATED_PDFS := $(TEX_SOURCES:.tex=.pdf) - .PHONY: all -all: $(GENERATED_PDFS) - -%.pdf: %.tex - cd $(@D) && pdflatex $(abspath $<) - -.PHONY: install-ubuntu -install-ubuntu: - sudo add-apt-repository ppa:jonathonf/texlive-2019 - sudo apt-get update - sudo apt-get install texlive xzdec - cd $(HOME) && tlmgr init-usertree - tlmgr option repository ftp://tug.org/historic/systems/texlive/2017/tlnet-final - tlmgr install listings csquotes +all: + docker build -t latexbox -f Dockerfile . + docker run -v $$(pwd)/levels:/tmp -t latexbox pdflatex /tmp/systems.tex + docker run -v $$(pwd)/levels:/tmp -t latexbox pdflatex /tmp/fullstack.tex + $(MAKE) clean .PHONY: clean clean: - rm -f $(GENERATED_PDFS) + rm -f $$(pwd)/levels/*.aux + rm -f $$(pwd)/levels/*.log + rm -f $$(pwd)/levels/*.out diff --git a/README.md b/README.md index 1540403..49183cd 100644 --- a/README.md +++ b/README.md @@ -7,5 +7,5 @@ Thank you for visiting the Teleport Engineering recruiting, promotion and traini * [Open Positions](https://jobs.lever.co/teleport) * [Our Engineering Teams](./teams.md) * [Coding Challenges](./challenges) -* [Engineering Levels](./levels.pdf) +* [Engineering Levels](./levels) * [Team Leaders Training](./plans/teamleads.md) diff --git a/levels.pdf b/levels.pdf index cdee0ea0f24d36ff6d74dbd15e849534f081f1a2..e4e0293df053456e47eb5bba1b3ed46ab7b4d070 100644 GIT binary patch literal 27239 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

0NeXwLlc^Srxxorfr|_jQ&&fd_h^F)?;U{ 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 literal 39464 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 z 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 diff --git a/levels.tex b/levels.tex index 47473c4..b0d88dc 100644 --- a/levels.tex +++ b/levels.tex @@ -1,105 +1,16 @@ \documentclass{article} -\usepackage{graphicx} -\usepackage{listings} -\lstset{language=C} -\graphicspath{ {images/} } -\usepackage{hyperref} -\hypersetup{ - colorlinks=true, - linkcolor=blue, - filecolor=magenta, - urlcolor=cyan, -} -\lstset{basicstyle=\sffamily} -\usepackage{array} -\usepackage[table]{xcolor} -\usepackage{geometry} - \geometry{ - a1paper, - left=20mm, - top=20mm, - } - -\begin{document} -\title{Engineering Levels} -\section{Legend} +% Don't show page numbers. +\pagenumbering{gobble} -The matrix below explains the requirements for engineering levels. Each level has to match at least one of the requirements for the level and the level before it. +\usepackage{hyperref} -Not all skills go to level 6. This is determined by the focus of Teleport. -For example, security skills are more relevant, as we are a security oriented company, and we are interested in R\&D level 6 engineers, however OS/tooling is not the primary focus, so basic levels are satisfactory. -As the level advances past 4, the focus shifts from technical skills to bringing products to market, as it's more relevant to Teleport as a for-profit startup. +\begin{document} -Skills are a mix of technical and communication abilities. Some references to security are based on the coding challenge. +Teleport Levels Guides have moved to: -\section{Skills} +\bigbreak -\begin{center} -\rowcolors{2}{gray!80!gray!50}{gray!50!gray!20} -\begin{tabular}{ | m{15em} | m{15em} | m{15em} | m{15em} | m{15em} | m{15em} | m{15em} | m{15em} |} - \hline - \rowcolor{blue!60!black!10} - Level/Skill & Data structures/Algorithms & Product Output & Security & Communication/Writing & Networking & Systems Engineering & OS/Tooling \\ - \hline - 1 & - Demonstrates good understanding of basic data structures - hash tables, linked lists, trees. Can reason about algorithm complexity. - Applies relevant data structures in day to day activity, can implement a production quality. It might be not the most efficient or secure, but correct. & - Creates a design document based on well-defined scoped requirements and implements it. & - Applies basic security principles to program design. For example, can set up HTTPS and password based auth. & - Reports progress on a regular basis as required by the team's operational requirements. Actively solicits feedback.Participates on interview panels. & - Understands and reasons about networking concepts. Understands and can write production quality web servers. Understands common networking issues and troubleshooting techniques. & - Understands the usage of POSIX and other APIs for Linux systems. Understands synchronization primitives and their application, including reasoning about deadlocks and data races. - Can write basic system-level code using the different types of memory and allocation. - Understands inter process communication and can build systems leveraging it. - Can implement data race and deadlock free code using basic production guidelines - using synchronization primitives and properly sharing state between components of the system.& - Understands the usage of compilers, interpreters, build tools at the organization. \\ - \hline - 2 & & & - Applies industry best practices and security guidelines, like setting up strong TLS, can pick strong authentication and authorization mechanisms.& - Provides constructive review on peers' code and design. Helps new team members during their first weeks. & - Has more granular understanding of the networking design, for example can reason about using GRPC vs HTTPS-JSON and their networking and scalability trade-offs. - Can do the same for UDP vs TCP and lower level protocols.& - Can reason about performance implications and risks of using synchronization primitives, understands granularity of locking, can debug and troubleshoot memory and synchronization issues.& - Understands tools and compilers as an advanced user - for example, can refactor Makefiles to make them more efficient and parallel execution friendly or select the optimal set of compiler flags for Linux and MacOS. \\ - \hline - 3 & - Uses advanced data structures and algorithms, such as consensus, gossip protocols to implement key product features.& - Collaborates with the team to scope requirements, based on good understanding of existing longer term product vision and estimates of the system design of a feature of a product.& - Understands security aspects of protocols on a deeper level, for example can explain differences between TLS 1.2 and 1.3 and security implications. - Understands common attack vectors for server side or client side applications and can build secure systems that will pass quality security audit that will uncover no critical system design errors.& - Supports less experienced peers' technical skills, answering questions and being a resource. Documents and improves team practices.& - Understands scalability and resilience aspects of practical implementation of systems leveraging networking. - Can write fast, scalable servers and troubleshoot common networking issues such as connection lifecycle, pooling, backpressure and other aspects of the application design. & - Not only can write data-race and deadlock free code, but implements safe and concurrent and/or parallel systems using minimum amount of shared state, granular locking - systems that are easy to read, extend and troubleshoot. - Senior engineers are not expected to find any faults or provide any further suggestions in the systems design document submitted by the Level 3 engineer. - & \\ - \hline - 4 & - Leads implementation of products and standalone systems using advanced data structures and algorithms, such as upgrade/install distributed framework.& - Leads the implementation of the isolated feature/improvement that measurably and significantly impacts business outcomes from gathering requirements to getting to the market stage.& - Can apply production quality novel cryptographic to build security systems. For example, can implement strong security support for the system with eBPF from scratch.& - Writes technical articles/blog posts, delivers tech and lightning talks representing the company's technical vision.& - & - Can implement production grade systems leveraging advanced low-level and novel components of the Linux design like BPF, control groups. - & \\ - \hline - 5& - Implements customer facing features and systems using advanced data structures and algorithms.& - Leads the implementation of a new product line or significant part of the product to deliver it to the market in collaboration with all other teams.& - Writes technical articles on security aspects of the system, implements significant security product innovations in the area delivered to customers.& - Writes advanced technical articles/blog posts, gaining significant industry traction or delivers technical talks on major conferences representing the company's vision. - & & - Applies system level design to deliver new products or significant new components of an existing product to the market. - & \\ - \hline - 6& - Designs new data structures and algorithms solving relevant business problems and creating competitive advantage for the company.& - & - Researches and designs new security systems, cryptography and protocols.& - Produces peer-reviewed research papers or patent applications. - & & & \\ -\end{tabular} -\end{center} +\url{https://github.com/gravitational/careers/tree/main/levels} \end{document} diff --git a/levels/README.md b/levels/README.md new file mode 100644 index 0000000..7046564 --- /dev/null +++ b/levels/README.md @@ -0,0 +1,23 @@ +# Engineering Levels + +The linked matrices below explain the requirements for all engineering +specialities and levels at Teleport. + +For Levels 1-3 engineers must meet the requirements for all specialities. +Starting from Level 4 engineers will typically focus on one specialty. + +Not all skills go to Level 6. This is determined by the focus of Teleport. + +For example, security skills are more relevant, as we are a security oriented +company, and we are interested in R&D Level 6 engineers, however OS/tooling is +not the primary focus, so basic levels are satisfactory. + +As the level advances past 4, the focus shifts from technical skills to +bringing products to market, as it's more relevant to Teleport as a for-profit +startup. + +Skills are a mix of technical and communication abilities. Some references to +security are based on the coding challenge. + +* [Systems Engineering](./systems.pdf) +* [Fullstack Engineering](./fullstack.pdf) diff --git a/levels/fullstack.pdf b/levels/fullstack.pdf new file mode 100644 index 0000000000000000000000000000000000000000..532fb517e8869c9691e52c4149b6df1d29f34a18 GIT binary patch literal 55748 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 YTYJKNJ+b42O{o%*Amrp!(N-n=FEGH<*8l(j literal 0 HcmV?d00001 diff --git a/levels/fullstack.tex b/levels/fullstack.tex new file mode 100644 index 0000000..adf5337 --- /dev/null +++ b/levels/fullstack.tex @@ -0,0 +1,322 @@ +\documentclass{article} + +\usepackage[table]{xcolor} +\usepackage[paperwidth=800mm, paperheight=500mm]{geometry} + +% Don't show page numbers. +\pagenumbering{gobble} + +% Column settings for skills able. +\newcolumntype{C}{p{18em}} + +\begin{document} + +% Title of matrix. +\begin{center} +\begin{huge} +Fullstack Engineering +\end{huge} +\end{center} + +\bigbreak + +% Alternating row colors. +\rowcolors{2}{gray!80!gray!50}{gray!50!gray!20} + +% Padding for each cell. +{\renewcommand{\arraystretch}{2} + +% Skills table. +\begin{center} +\begin{tabular}{|C|C|C|C|C|C|C|C|} + \hline + \rowcolor{blue!60!black!10} + \textbf{Level/Skill} + & + \cellcolor{blue!25} + \textbf{Product Output} + & + \textbf{Communication/Writing} + & + \textbf{Data structures/Performance} + & + \textbf{Security} + & + \textbf{Networking} + & + \textbf{Fullstack Engineering} + & + \textbf{Tooling} + \\ + \hline + % Level + 1 + & + + % Product Output + \cellcolor{blue!25} + Collaborates with product through designs, mockups, and demos of product + features before implementation. + & + + % Communication/Writing + Reports progress on a regular basis as required by the team's operational + requirements. Actively solicits feedback. Participates on interview panels. + & + + % Data structures/Performance + Demonstrates good understanding of basic data structures like hash tables, + linked lists, and trees. Can reason about algorithm complexity. Applies relevant + data structures in day to day activity. + + \bigbreak + + Can implement a production quality software - it might be not the most + efficient or secure, but correct. + & + + % Security + Understands basics of web security (can configure TLS on a standalone web + server like nginx). + & + + % Networking + Understands and reasons about browser networking concepts. Understands + common networking issues and can troubleshoot issues using the developer + console. + & + + % Fullstack Engineering + Understands Javascript, HTML, CSS, and DOM. Can fix bugs or add small + features to frontend applications. + & + + % Tooling + Understands and can use build tools (like npm and yarn), Docker, and + Makefiles. + \\ [13em] + \hline + % Level + 2 + & + + % Product Output + \cellcolor{blue!25} + Can write high quality user and product focused documentation. + & + + % Communication/Writing + Provides constructive review on peers' code and design. Helps new team + members during their first weeks. + & + + % Data structures/Performance + & + + % Security + Understands how to utilize browser security features (like headers and + cookie attributes) to secure web applications. + & + + % Networking + Has more granular understanding of the networking design, for example can + reason about using gRPC vs HTTP/JSON and websockets and their networking + and scalability trade-offs. + & + + % Fullstack Engineering + Can write frontend applications. + & + + % Tooling + Understands and can use transpilers (TypeScript to Javascript) and SPA + frameworks (React, Angular). Can leverage components and styles from + third-party libraries to implement designs. + \\ [13em] + \hline + % Level + 3 + & + + % Product Output + \cellcolor{blue!25} + Collaborates with the team to scope requirements, based on good + understanding of existing longer term product vision and estimates of the + system design of a feature of a product. + & + + % Communication/Writing + Supports less experienced peers' technical skills, answering questions and + being a resource. Documents and improves team practices. + & + + % Data structures/Performance + Understands browser-based event handling and event propagation. + Understands the use and implications of closures. + & + + % Security + Can use frameworks to mitigate common attack vectors for server side (like + secure password storage) or client side web applications (like XSS, CSRF, and + SSRF) security vulnerabilities. + & + + % Networking + Understands scalability and resilience aspects of practical implementation + of systems leveraging networking. + + \bigbreak + + Understands certificate-based mutual authentication network protocols like + mTLS and SSH. + + \bigbreak + + Frontend designs are informed by scalable backends, networking techniques + such as pagination, connection pooling, backpressure and other aspects of the + application design. + & + + % Fullstack Engineering + Can write web applications that have frontend and backend components. + Understands web application session and state management techniques. + + \bigbreak + + Writes high quality design documents with few to no critical system design + errors. + & + + % Tooling + Strong understanding of CSS and TypeScript. Can build and style components + to spec without leveraging third-party libraries. + \\ [13em] + \hline + % Level + 4 + & + + % Product Output + \cellcolor{blue!25} + Leads the implementation of the isolated feature/improvement that + measurably and significantly impacts business outcomes from gathering + requirements to getting to the market stage. + & + + % Communication/Writing + Writes technical articles/blog posts, delivers tech and lightning talks + representing the company's technical vision. + & + + % Data structures/Performance + Can profile web applications and understands how to minimize webpage + re-rendering and painting. + & + + % Security + Understands and can implement mitigations for common attack vectors for + server side (like secure password storage) or client side web applications + (like XSS, CSRF, and SSRF) security vulnerabilities from scratch. + + \bigbreak + + Can build secure systems that will pass quality security audit that will + uncover few to no critical system design errors. + & + + % Networking + & + + % Fullstack Engineering + Understands how to build consistent end-to-end user experiences. + Understands principals of information architecture. + + \bigbreak + + Can write data-race and deadlock free code. Can implement safe and + concurrent and/or parallel systems using minimum amount of shared state, + granular locking - systems that are easy to read, extend and troubleshoot. + & + + % Tooling + Expert level understanding of TypeScript. Could add typings to a untyped + package. Understands when it is appropriate to leverage advanced TypeScript + features. + \\ [13em] + \hline + % Level + 5 + & + + % Product Output + \cellcolor{blue!25} + Leads the implementation of a new product line, like native applications, + or significant part of the product to deliver it to the market in collaboration + with all other teams. + & + + % Communication/Writing + Writes advanced technical articles/blog posts, gaining significant industry + traction or delivers technical talks on major conferences representing the + company's vision. + & + + % Data structures/Performance + Posesses a deep understanding of web frameworks like React, Angular, or Vue. + Can use this understanding to reason about the performance of web applications. + Can contribute fixes and improvements to upstream projects. + & + + % Security + Has a deep understanding of the browser security model and the web. + Understands how browsers make network requests (and which requests they will + refuse to make) as well as cross-origin authentication. + & + + % Networking + & + + % Fullstack Engineering + Applies system level design to deliver new products or significant new + components of an existing product to the market. + & + + % Tooling + \\ [13em] + \hline + % Level + 6 + & + + % Product Output + \cellcolor{blue!25} + & + + % Communication/Writing + Produces peer-reviewed research papers or patent applications. + & + + % Data structures/Performance + Designs new data structures and algorithms solving relevant business + problems and creating competitive advantage for the company. + & + + % Security + Researches and designs new security systems, cryptography and protocols. + & + + % Networking + & + + % Fullstack Engineering + & + + % Tooling + \\ [13em] +\end{tabular} +\end{center} + +% End renewcommand wrapping. +} + +\end{document} diff --git a/levels/systems.pdf b/levels/systems.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cb69b92db180bcccd009ccb7ab06f54bff0af3e7 GIT binary patch literal 55571 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 M0`Tyt>D>eT7Y8c+CjbBd literal 0 HcmV?d00001 diff --git a/levels/systems.tex b/levels/systems.tex new file mode 100644 index 0000000..5f89283 --- /dev/null +++ b/levels/systems.tex @@ -0,0 +1,309 @@ +\documentclass{article} + +\usepackage[table]{xcolor} +\usepackage[paperwidth=800mm, paperheight=500mm]{geometry} + +% Don't show page numbers. +\pagenumbering{gobble} + +% Column settings for skills able. +\newcolumntype{C}{p{18em}} + +\begin{document} + +% Title of matrix. +\begin{center} +\begin{huge} +Systems Engineering +\end{huge} +\end{center} + +\bigbreak + +% Alternating row colors. +\rowcolors{2}{gray!80!gray!50}{gray!50!gray!20} + +% Padding for each cell. +{\renewcommand{\arraystretch}{2} + +% Skills table. +\begin{tabular}{|C|C|C|C|C|C|C|C|} + \hline + \rowcolor{blue!60!black!10} + \textbf{Level/Skill} + & + \cellcolor{blue!25} + \textbf{Product Output} + & + \textbf{Communication/Writing} + & + \textbf{Data structures/Performance} + & + \textbf{Security} + & + \textbf{Networking} + & + \textbf{Systems Engineering} + & + \textbf{Tooling} + \\ + \hline + % Level + 1 + & + + % Product Output + \cellcolor{blue!25} + Creates a design document based on well-defined scoped requirements and + implements it. + & + + % Communication/Writing + Reports progress on a regular basis as required by the team's operational + requirements. Actively solicits feedback. Participates on interview panels. + & + + % Data structures/Performance + Demonstrates good understanding of basic data structures like hash tables, + linked lists, and trees. Can reason about algorithm complexity. Applies relevant + data structures in day to day activity. + + \bigbreak + + Can implement a production quality software - it might be not the most + efficient or secure, but correct. + & + + % Security + Applies basic security principles to program design. For example, can set + up HTTPS and password based auth. + & + + % Networking + Understands and reasons about networking concepts. Understands and can + write production quality web servers. Understands common networking issues and + troubleshooting techniques. + & + + % Systems Engineering + Understands the usage of POSIX and other APIs for Linux systems. + + Understands synchronization primitives and their application, including + reasoning about deadlocks and data races. Can write basic system-level code + using the different types of memory and allocation. Understands inter process + communication and can build systems leveraging it. Can implement data race and + deadlock free code using basic production guidelines - using synchronization + primitives and properly sharing state between components of the system. + & + + % Tooling + Understands the usage of compilers, interpreters, build tools at the organization. + \\ [13em] + \hline + % Level + 2 + & + + % Product Output + \cellcolor{blue!25} + Can write high quality user and product focused documentation. + & + + % Communication/Writing + Provides constructive review on peers' code and design. Helps new team + members during their first weeks. + & + + % Data structures/Performance + & + + % Security + Applies industry best practices and security guidelines, like setting up + strong TLS, can pick strong authentication and authorization mechanisms. + & + + % Networking + Has more granular understanding of the networking design, for example can + reason about using GRPC vs HTTPS-JSON and their networking and scalability + trade-offs. Can do the same for UDP vs TCP and lower level protocols. + & + + % Systems Engineering + Can reason about performance implications and risks of using + synchronization primitives, understands granularity of locking, can debug and + troubleshoot memory and synchronization issues. + & + + % Tooling + Understands tools and compilers as an advanced user - for example, can + refactor Makefiles to make them more efficient and parallel execution friendly + or select the optimal set of compiler flags for Linux and macOS. + \\ [13em] + \hline + % Level + 3 + & + + % Product Output + \cellcolor{blue!25} + Collaborates with the team to scope requirements, based on good + understanding of existing longer term product vision and estimates of the + system design of a feature of a product. + & + + % Communication/Writing + Supports less experienced peers' technical skills, answering questions and + being a resource. Documents and improves team practices. + & + + % Data structures/Performance + Uses advanced data structures and algorithms, such as consensus, gossip + protocols to implement key product features. + & + + % Security + Understands security aspects of protocols on a deeper level, for example + can explain differences between TLS 1.2 and 1.3 and security implications. + Understands common attack vectors for server side or client side applications. + + \bigbreak + + Can build secure systems that will pass quality security audit that will + uncover few to no critical system design errors. + & + + % Networking + Understands scalability and resilience aspects of practical implementation + of systems leveraging networking. + + \bigbreak + + Can write fast, scalable servers and troubleshoot common networking issues + such as connection lifecycle, pooling, backpressure and other aspects of the + application design. + & + + % Systems Engineering + Not only can write data-race and deadlock free code, but implements safe + and concurrent and/or parallel systems using minimum amount of shared state, + granular locking - systems that are easy to read, extend and troubleshoot. + + \bigbreak + + Writes high quality design documents with few to no critical system design + errors. + & + + % Tooling + \\ [13em] + \hline + % Level + 4 + & + + % Product Output + \cellcolor{blue!25} + Leads the implementation of the isolated feature/improvement that + measurably and significantly impacts business outcomes from gathering + requirements to getting to the market stage. + & + + % Communication/Writing + Writes technical articles/blog posts, delivers tech and lightning talks + representing the company's technical vision. + & + + % Data structures/Performance + Leads implementation of products and standalone systems using advanced data + structures and algorithms, such as upgrade/install distributed framework. + & + + % Security + Can apply production quality novel cryptographic to build security systems. + For example, can implement strong security support for the system with eBPF + from scratch. + & + + % Networking + & + + % Systems Engineering + Can implement production grade systems leveraging advanced low-level and + novel components of the Linux design like BPF, control groups. + & + + % Tooling + \\ [13em] + \hline + % Level + 5 + & + + % Product Output + \cellcolor{blue!25} + Leads the implementation of a new product line or significant part of the + product to deliver it to the market in collaboration with all other teams. + & + + % Communication/Writing + Writes advanced technical articles/blog posts, gaining significant industry + traction or delivers technical talks on major conferences representing the + company's vision. + & + + % Data structures/Performance + Implements customer facing features and systems using advanced data + structures and algorithms. + & + + % Security + Writes technical articles on security aspects of the system, implements + significant security product innovations in the area delivered to customers. + & + + % Networking + & + + % Systems Engineering + Applies system level design to deliver new products or significant new + components of an existing product to the market. + & + + % Tooling + \\ [13em] + \hline + % Level + 6 + & + + % Product Output + \cellcolor{blue!25} + Designs new data structures and algorithms solving relevant business + problems and creating competitive advantage for the company. + & + + % Communication/Writing + Produces peer-reviewed research papers or patent applications. + & + + % Data structures/Performance + & + + % Security + Researches and designs new security systems, cryptography and protocols. + & + + % Networking + & + + % Systems Engineering + & + + % Tooling + \\ [12em] +\end{tabular} + +% End renewcommand wrapping. +} + +\end{document}