If you’re wondering whether or not a System Administration career is right for you, this article might help. Someone just sent me some questions about what a career in System Administration is like, and asked some questions that I hadn’t thought to answer on YouTube or here on the tutorialinux blog. Since I’ve been working in various IT Operations and Software Development disciplines professionally for the last 7 years, I love talking about this stuff. Here are my two cents:
What are the Responsibilities a Linux / Unix System Administrator?
Architecting, Building, and Troubleshooting/Maintaining the technical infrastructure for a company or software product. At a high level, you’re responsible for figuring out what the technical requirements are and using existing software/products/tools to provide those requirements (or occasionally writing your own). Early-career focuses on implementing predefined task-chunks:
- Figure out why this server is doing XYZ
- Fix a problem with our software deployment automation code
- Increase storage size for one of the database clusters
- Replace failed disks at a datacenter
- Create a web server configuration file for a new project that Dev is working on
Senior-level positions often have more design/architecture:
- Deep introspection of the OS and the software product you’re supporting
- Design a new deployment pipeline
- Build a technical team for a new project
- Evaluate new software that would change how we run our infrastructure (e.g. containers + scheduler vs. VMs + config management)
- Troubleshoot tough problems (OS-level issues, bugs arising from a confluence of several edge cases across the stack, etc.)
What education/experience/credentials are required to do this job?
Above all, interest, motivation, and ability to learn are the requirements. Although a formal education makes the first ~year of the career path easier, it’s mostly self-learning after that.
What is a typical entry-level job for System Administration? What is the usual path of advancement?
I’m not sure if there is a typical entry-level job. User administration is a common entry into the field, with people usually trying to switch over to infrastructure administration as soon as they possibly can. Other entry points are from software development, networking, and database administration.
A stereotypical entry-level -> mid-level -> senior path goes like this:
- Start by doing user support at a company with a few small servers to run (internal web servers, etc.). Before you start, secure a guarantee that you will be allowed to do small tasks/troubleshooting on the servers.
- Show excellence and interest at working with the infrastructure.
- Transition to a pure system administration (as opposed to User Administration) role, internally if you’re still having fun at that company.
- Work more and more independently for a few years, building your skills and getting experience in new areas (database administration, networking, security, automation and software development)
- And then, EITHER:
- Transition into management if you want to (companies are dying for good technical managers). Technical management tends to be a high-stress job, and tends to demand *lots* of hours.
- Become a Principal Engineer or Architect (the ‘top’ of the technical career track). In these roles you’ll make large architectural decisions, explore/plan/evaluate/test/write new systems, and work closely with the business and development side.
This can vary wildly, though, depending on which sub-discipline you are interested in: Database Administration? DevOps? Automation? Software Engineering? Storage? Networking? Security? Cloud Migration? Hundreds of sub-fields exist, and you can have a happy career in all of them (or many of them, over the course of your career).
What skills and abilities are needed for a job in System Administration?
The ability to learn efficiently, think logically, communicate well, and handle pressure (“Everything is on fire, we’re losing $10,000/minute, when will this be fixed?”). Most of all, a passion for the technical aspect is necessary to stay motivated and happy.
What work/life style is associated with this job? (i.e. indoor/outdoor? weekend or shit work?)
To excel, you need to spend a *lot* of extracurricular time on learning, industry news, skill development, crosstraining in other IT skills, etc. The job itself is indoor work. If you’re doing user support, you’ll be running around a lot. If you’re doing Infrastructure or Automation/Development work, you’ll be sitting on a chair/couch all day.
On-call rotations are normal, so usually you’ll be on call for a few days out of a ~14-day rotation. It depends on the company, the product, and the team. Actual alerts/work during on-call are usually ~1 hour of work, but a few times a year will turn out to be 8-hour emergencies. On-call is like a box of chocolates :-D.
Remote work is possible (less accepted than with Dev work, but not uncommon). It’s getting more common.
What is the forecast for growth and change for this job/career? Are there job opportunities in Maine [my state]?
I see good things for this career in the future. Companies are adding more automation (and creating more software products) than ever, and all of that needs to be supported by technical people at some level.
What is the salary range for System Administration?
It depends on your location. Sites like payscale.com are a good start. In a major American city, entry level is ~60k, mid-range is ~80k, senior is ~90-120k. In Western Europe, the benefits tend to be better but the salaries lower (maxing out around ~70k).
Cost of living, healthcare costs, and other costs tend to be a bit lower there, so the lifestyle you can afford is very similar. For Eastern Europe, Russia, India, and South America, salaries are far lower (to varying degrees), but so is cost of living.
What are job benefits like for System Administrators, Software Engineers, and other tech workers?
Benefits are usually fairly good — health insurance, 5-10% yearly bonus, 2-4 weeks of vacation, relaxed work atmosphere. Many companies are trying to keep the “fun startup” image, and as a result have things like ping-pong tables, nap/chillout rooms, free food, craft beer, and arcade machines at work. At large tech companies, stock grants are usually part of your compensation package.
List two positive and two negative aspects of this career.
- Being a system administrator is a great excuse to get paid to learn and do fun tech stuff, and play with toys and systems that you otherwise wouldn’t be able to afford.
- It’s also one of the few careers in the U.S. where people are still treated well by management. Developers have it a bit better than Ops people, in general, since Ops people are seen largely as an expenditure instead of a value-add. This is wrong, but most management teams don’t understand that yet.
- Occasionally, Linux System Administration is high stress; 40-50 hours/week and extracurricular skillbuilding are often expected.
- As mentioned above, very few companies really understand how to manage technology projects; this often leads to painful, preventable hilarity.
What are some tech occupations that are similar to System Administration?
There’s lots of job roles in technology. The list grows every year. Some of my suggestions:
- Software Developer
- Automation Engineer
- DevOps Specialist (everyone has a different definition of this)
- Security Specialist
- Database Administrator
- Network Administrator
- Storage Systems Administrator
- Performance Engineer
- Security Engineer or Penetration Tester
What are some suggestions for someone entering the System Administration field?
Do lots of hobby projects. Host websites for family and friends. Set up chat & voice servers for gaming. Volunteer to do small IT projects for school, local businesses, local charities. The keys to getting a job are skills and experience — even a little bit helps.
Avoid Windows User Administration like the plague. Take it only as a last-ditch option to pay for groceries or get experience.
I’ve heard the workload for System Administrators and Infrastructure Engineers can get a bit insane. What’s your experience with this?
There are definitely “crunch time” moments — a few weeks, or a month, where you’re working 60+ hour weeks trying to get something done. Most places I’ve worked are pretty good at evening this out with time off, flexible working hours, and periods of low stress.
Especially later on in your career (after the first ~2 years), this is a *really* great career for work-life balance.
What’s one of the most interesting things you’ve had to troubleshoot / do while maintaining a system?
This is a great question. I’m writing a separate post on it :-). I’ll link it here when it’s done!
What’s your favorite branch of IT that you’ve worked in?
I keep going back and forth between Dev and Ops in my career. The sweet spot is somewhere in there, somewhere between Infrastructure Automation and Software Development. I love the creative fun of building new systems (Software Development), and I love the awesome elegance and power of Unix operating systems (Infrastructure/Ops).
I’m not sure where I’ll end up — I’m a Platform Engineer now, which is very close to that sweet spot, and a *lot* of fun.
Which Operating Systems do you use? What’s your favorite type of system to maintain?
FreeBSD is my favorite so far, although I’ve been getting more and more interested in Solaris (specifically SmartOS) for a while now. OpenBSD and DragonflyBSD seem great, too, but I have almost no experience with them. Solaris is a personal interest right now; for most of my career I’ve been dealing with RedHat and Debian-based systems. For my own day-to-day/development work, I use Mac OS (work) and Arch Linux (home).
Linux is awesome — don’t get me wrong — but there are some really grown-up features and great communities that make Solaris and BSD Unix so much nicer to work with. Not always, not everywhere, but in many ways this is true.
I hope that’s useful!