.

Compiled by sistemshikhttp://nixsrv.com

.

Credit for the idea and and several entrieshttp://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm

.

Sage Level Job Description http://static.sage.org/field/jobs-descriptions.html

.

One cannot reach level cap in all areas, so this matrix should be viewed as development branches. A good sysadmin must be an expert in one chosen area, so he usually will know other areas totally not as deeply.

Attention! This leveling matrix has an obvious bias towards Unix-like systems, but entries often can be directly interpreted towards Windows platform. For example, in the row «System configuration control» entry «Centralized configuration management using tools like chef, puppet, cfengine» may be interpreted as «System confirutations are managed with SCCM».

.

Domain knowledge

.

level 1level 20level 50level 80 (level cap)comments

.

Operating systems/
platforms
Almost no understanding yet

"Knows" that <your distro name here> is an OS

Is able to:
Install an OS to his computer
Basic understanding of operating systems
RHCT, RHCSA
MCSA, MCITP: Server Administrator

Know:
What an OS is
What a kernel is

Is able to:
Install an OS to server
Add, remove users
Install software using package manager of choice
Good understanding of what an OS is
RHCE
MCSE, MCITP: Enterprise Administrator

Knows:
difference between kernel and user mode
what are system call and how they are used
OS process model
OS security model, limits, how to use access use control lists
OS user model
OS boot process, what happens when OS starts, stops, what runlevels or similar concepts in os of choise are
OS networking model

Is able to:
read and sometimes understand source code of OS of choice
use strace, ltrace, ktrace or similar for toubleshooting
make packages from sources using pakage format of OS of choice
set up and use console redirection
troubleshout networking problems using tools available
limit proccesses using mandatory access control
Expert understanding of an OS of choice
RHCA
MCA

Knows:
Understands the whole process execution: hardware (CPU + memory + cache + interrupts + microcode), assembly code, static and dynamic linking, interpreting, heap, memory allocation...
OS kernel options, process schedulers, IO schedulers, memory allocation

Is able to:
Build any package from source
Patch package for compatibility
Use gdb to fix broken software
Working with someone who has a superstar ranking would be an unbelievable piece of luck!

.

Computer architectureAlmost no understanding yet

Know how computer peripherals connect to the computer

Is able to connect monitor, keyboard and printer to the computer
Basic understanding of Von Neuman architecture, different system components like CPU, memory, hdd and how this components inter-operateGood overall knowledge of computer architecture

Knows processor types, motherboard types, memory types (ECC, FB-, ...), how this components are clocked, how cache works, how memory architecture works (NUMA, UMA), what expansions slots there are, what parameters in UIFI/BIOS mean, etc.
Expert knowledge of contemporary computer architecture and how to design and implement, using available technology, complex clustering solutions

.

File SystemsKnows:
File system is that thing which keeps files on it

Is able to:
write a CD, format a USB-dongle
transfer >4GB files using USB-dongle
Basic filesystem understanding

Knows:
What partition table is
What journal is

Is able to:
Patition disks
Check filsystem
Install bootloader
Good understanding of filesystems

Knows:
What i-node is
What filesystem journal is
What files there are (block, char...)
stat command output
How ACL works
What umask is
What copy-on-write is and why it's good
What FHS is and why it's needed
What parition alignment is
What VFS is

Is able to:
Partition disks properly depending on usage scenario
Use LVM or similar partition management tool
Modify filesystems with tune2fs
Resize filesystems
Use debugfs
Expert knowledge of filesystems

Knows:
Read and understood File System Forensic Analysis and/or filesystem code of the OS of choice

Is able to:
Find and read file using HEX-editor only
Repair badly damaged filesystem

.

StorageAlmost no understanding yetBasic storage systems understanding

Knows:
There are many different types of storage out there

Is able to:
Use RAID-1 for redundancy
Good storage systems understanding

Knows:
All RAID levels
Why one almost never should use RAID-5
What storages there are: NAS,SAN,DAS
What iSCSI is
What contemporary hdd interfaces are

Is able to:
Employ a decent storage model for the tasks
Expert storage systems understanding

Is able to design and implement storage system for many highly-loaded systems, with geographically distributed replication

.

NetworkingAlmost no understanding yes

Knows:
What an IP-address is

Is able to:
Use ping utility
Basic to mediocre networking understanding, CCNA

Knows:
What is OSI-model
What is MAC-address
What is a switch, how it differs from a hub
What is a subnet
What is DNS
What is DHCP

Is able to:
Configure networking on the workstations using DHCP or static networking
Confgure static routing on a workstation
Good networking understanding, CCNP

Knows:
OSI model
What OSI level means in network gear specifiations
What is network mask
What is classless networking
TCP/IP stack, which headers are add on which level
VPN and VLANs and how to use them
Routing protocols and how to use them
Wireless networking and how to use it and secure it

Is able to:
Design and implement company network
Set up VPN for remote access
Use telnet, netcat, tcpdump for troubleshooting
Use telnet for checking www, mail servers, etc.
Expert networking understating, CCIE

Is able to design and implement geographically distributed highly-loaded network with thousands of users. Is and expert is one or several of the following areas:
http://www.cisco.com/web/learning/le3/ccie/track_comparison/index.html

.

VirtualizationAlmost no understanding yet

Maybe heard the word "Cloud"
Basic virtualizatoin understanding

Knows:
What you can get a Virtualbox or VMWare and run an os inside an os

Is able to:
Install an OS in Virtualbox or VMWare workstation
Good virtualization uderstanding

Knows:
Theory, how virtualization works
What difference there is between full virtualization and paravirtualization
What binary translation is
What Ring -1 is
What AMV-V/Intel-VT is
What SR-IOV is
What live-migration is
What storage system to use and why partitin aligment in virtualization is especially important

Is able to:
Use virtualization in production using Citrix XEN server, KVM, VMware ESXi, etc.
Migrate physical servers to virtual machines and vice versa
Expert virtualization understanding

Has expert-level understing of virtualization system of choice. Is able to design and implement higly-avaliable, georaphically distributed solution.

.

SecurityAlmost no understanding Basic security understanding
Maybe CCSA, SGFWA

Knows:
What permissions are
Why one shouldn't install software from untrusted sources
Why one shouldn't work on the system using administrator privileges

Is able to:
Run antivirtus solution
Good security understanding
Comptia Security+, SSCP, CCNP Security

Knows:
What is information security, and that it is protecting information from internal and external threats, which are:
-- illegitimate access and usage
-- disclosure
-- loss
Main goals of information security, which are:
-- integrity
-- confidentiality
-- availability
What is the RFC2196 Site Security Handbook
What is CVE

Is able to:
Securely configure a system
Implement least needed priviligies security policy
Update the systems using security patches
Track security vulnerabilities for software for which he is responsible using security advisory mailining lists and online security databases
Expert security understanding
CISSP+CISA+CISM, CCIE Security

Is able to design and implement company-wide security policy including protection from techical threats and protection from malicious people as well

.

System administration

.

level 1level 20level 50level 80 (level cap)

.

System configuration controlcp conf conf.bakVCS, RCS basicsAll configuration files are managed through SVN/GIT/etc.Centralized configuration management using tools like chef, puppet, cfengine

.

OS installation automationInstalls OS manuallyIs able to create unattended install imageUses automated installation over networkAll OS images are configured via configuration management tools and deployed automatically

.

MonitoringThinks that monitoring is then users are screaming "It doesn't work!"Uses basic monitoring tools like ping monitoring Uses monitoring server with agents on the monitored hostsUses monitoring server with agents on monitored hosts and in-depth monitoring scripts for automated checking of ability to perform usage scenario, for example logging into the system, executing queries on the databases, etc.

.

Best practicesWhat's that?Doesn't work under rootGood understanding of best practices, knows where to get them and follows them for the platform of choiceWrites them

.

Number of supported serversZero1--1010--100Many hundreds

.

Problem decompositionReinstall is the only wayIs able to basic problem decomposition, check hardware, software, network...Is proficient with problem decomposition, understands that contemporary systems consist of many components, breaks up the problem and troubleshoots it piece by piece. Is proficient with log analysis, OSI-model for networking troubleshooting, etc.Expert understanding of different levels on which the problem may lie. Creates a model for each problem and uses systemic methods to troubleshoot it

.

System decompositionUnable to think of more than one computerAble to break up problem space and design solution as long as it is within the same platform/technologyAble to design systems that span multiple technologies/platforms. Able to visualize and design complex systems with multiple product lines and integrations with external systems. Also should be able to design operations support systems like monitoring, reporting, fail overs etc.

.

CommunicabilityCannot express thoughts/ideas to peers. Poor spelling and grammar. Peers can understand what is being said. Good spelling and grammar. Is able to effectively communicate with peers Able to understand and communicate thoughts/design/ideas/specs in a unambiguous manner and adjusts communication as per the context This is an often under rated but very critical criteria for judging a
system administrator. With the increase in outsourcing of programming tasks to
places where English is not the native tongue this issue has become more
prominent. I know of several projects that failed because the
programmers could not understand what the intent of the communication
was.

.

Configuration files organizationAbsentConfiguration files are grouped logicallyConfiguration files are grouped logically and referenced to related configuration files.

Big configuration files are split in several small using includes.
Every configuration file has a summary, is well commented, consistent white space usage. The file should look beautiful.

.

Services data organizationGenerally, just a mess.One directory per serviceGenerally, one partition per serviceOne partition per service, all names are consistent between all servers

.

Configuration files readabilityNo comments, just a messSimple commentsComments, configuration parameters are grouped logicallyAdditionally has explanations as to why parameters are chosen as such

.

Ability to read manualsAlmost absent, tries first google resultIs able to read man, does this oftenKnows many solutions from experienceIs able to use application source code as documentation

.

ScriptsUnable to scriptSimple bash scriptsPerl/Python/Ruby/VBScript/PowershellWrites and published good scripts which can be reused

.

SpecificationImplements solution according to specificationCome up with questions regarding missed cases in the spec Understand complete picture and come up with entire areas that need to be speced Able to suggest better alternatives and flows to given requirements based on experience

.

DatabasesThinks that Excel is a database Knows basic database concepts, normalization, ACID, transactions and can write simple selectsCan do basic database administration, performance optimization, index optimization, write advanced select queries, able to replace cursor usage with relational sql, understands how data is stored internally, understands how indexes are stored internally, understands how databases can be mirrored, replicated etc. Understands how the two phase commit works.Good understanding of database administration, is able to design and implement geographically distributed highly available redundant system

.

Experience

.

level 1level 20level 50level 80 (level cap)

.

Platforms with professional experience12--34--56+

.

Years of professional experience12--56--910+

.

Domain knowledgeNo knowledge of the domain Has worked on at least one product in the domain. Has worked on multiple products in the same domain.Domain expert. Has designed and implemented several products/solutions in the domain. Well versed with standard terms, protocols used in the domain.

.

Knowledge

.

level 1level 20level 50level 80 (level cap)

.

Instrument knowledgeAlmost noneBasic CLI skillsAdvanced CLI skills, is able to use filtersHas actually written tools and scripts, added bonus if they've been published.

.

OS source code knowledgeHas never looked at the codebase Basic knowledge of the code layout and how to build the system Good working knowledge of code base, has implemented several bug fixes and maybe some small features. Has implemented multiple big features in the codebase and can easily visualize the changes required for most features or bug fixes.

.

Knowledge of new and emerging technologiesHas not heard of the upcoming technologies Has heard of upcoming technologies in the field Has downloaded the alpha preview/CTP/beta and read some articles/manuals Has played with the previews and has actually built something with it and as a bonus shared that with everyone else

.

Platform internalsZero knowledge of platform internals Has basic knowledge of how the platform works internally Deep knowledge of platform internals and can visualize how the platform takes the program and converts it into executable code. Has written tools to enhance or provide information on platform internals. For e.g. disassemblers, decompilers, debuggers etc.

.

BooksGoogle HOWTO, for Dummies seriesO'Reilly Network Administration, other O'Reilly books
UNIX and Linux System Administration Handbook"
"Modern Operating Systems"
"Computer Networks"
O'Reilly Network Administration, other O'Reilly books
UNIX and Linux System Administration Handbook"
Jeffrey Friedl's Mastering Regular Expressions
Fundamental books like "The Practice of System and Network Administration", "Windows Internals"; Linux source code, "Lions' Commentary on UNIX 6th Edition, with Source Code"

.

BlogsHas heard of them but never got the time. Reads tech/programming/software engineering blogs and listens to podcasts regularly. Maintains a link blog with some collection of useful articles and tools that he/she has collected Maintains a blog in which personal insights and thoughts on system administration are shared