10

I'm stuck in an extremely well paid job where my daily routine involves being more or less a sysadmin for other IT-less-competent people. (edit: I am a software engineer, it's just that I'm being underestimated/less used as sysadmin :( )

I graduated as a software engineer and I worked at some other companies before where I didn't have the salary and privileges I do now, but I learned lots of valuable skills.

Right now I'm trying to grow by myself (implementing new projects, studying new techniques and the like) but I really feel I'm getting nowhere: there is no senior software engineer to learn something from and I'm unfortunately the most competent guy in this company by a long shot.

I'm afraid I'm stuck in a limbo and by not learning new things and techniques that I'll gradually become less and less hireable in the future: what is this company will eventually collapse or go bankrupt? I should probably move to another country in that case and having real valuable market skills will be a dealbreaker thing not to underestimate.

Is there a strategy/advice for people who have found themselves in my same situation?

Edit as asked: How can I learn when I have no senior colleagues to learn from?

  • 5
    Why do you need a senior to learn from? I've almost never had a senior to learn from - read and do - try things – HorusKol Feb 25 '17 at 10:51
  • 16
    @HorusKol: senior devs know and have experience with concepts, tools and languages you might not even know to look for. Then you can learn from them the best practices without repeating their mistakes. It's invaluable to have a senior peer to learn from. Standing on the shoulders of giants and all that. – Juha Untinen Feb 25 '17 at 11:17
  • 4
    Are you sure you job is really that well-paying? If you find this job so easy, maybe you need to raise your expectations about what you could be earning. – Calchas Feb 25 '17 at 16:38
  • 2
    @user3834459 - seniors can be beneficial - but - they can also be dangerous - many "seniors" I've encountered are people who have been doing things for so long and in a certain way that they've become exactly what you are trying to avoid - stale, out-of-date and rigid. You would not want to learn from that. Instead you should be trying to improve your environment - and the best way to learn is to make mistakes and recover - fail fast and get better. You are in a sweet position to do exactly that with cutting edge technology. Take advantage of it. – user45269 Feb 25 '17 at 20:37
  • 4
    @Prinz well, it's also dangerous to think that when something is newer, it must be better :) A proper engineer knows both the old and the new, and selects the correct tool for the task at hand, or uses whatever is available. – Juha Untinen Feb 25 '17 at 21:17
17

Well, change your routine so it involves learning.

Imagine someone asks you to deploy a new server for a project, and you know that in this company, this sort of tasks is done manually. You spend the next hour creating the virtual machine and installing and configuring the operating system. The next day, another person asks you to create another server. Day after day, you do it, and notice that you're not learning anything.

A different approach would be to automate the task. You do the manual deployment a few times, and then you learn about automatic provisioning and other stuff. Now, when someone asks you for a new server, instead of wasting an hour of your work, you barely run a command, and while the server is being created, you do something else.

This “something else” could be actually be making your users' lives better. For instance, why would you make them wait for one hour for a new server? You start researching about the subject, and you discover Docker, which seems promising. You try it, and find that it responds to the needs of 80% of your users—the remaining 20% still need a fully-featured VM.

And so, now that you implemented Docker, in most cases, the users can have their environment provisioned in seconds instead of an hour. They find it so great that you have more and more requests for provisioning new environments. That's boring! What if you could learn a bit of software development? In a matter of months, you can create basic intranet sites. They are not secure or particularly comfortable to use, but they do their job: instead of calling you by phone and asking to provision a new server, users may simply do a request through your site. They like it, and you have even more free time to do more great stuff.

The result? When the company eventually collapses (and it has much less risk to collapse, thanks to this great system administrator who automated everything and make the system tasks much less expensive than before!), you have a lot to tell to the potential employers. Not only do you know a lot of new technologies, but you can also tell them how you changed the sysadmin culture in your previous company and how you lowered system administration costs for the company.

“But wait!” you'll tell me, “How would I learn if I have no seniors to learn from in the first place?”—this is what most comments to the question are about.

Learning from peers who are more skilled than you is a great way to learn. Not the only one, indeed, but it's still important to do it. This doesn't mean those peers should be at your workplace.

  • There is Stack Exchange. Here, I came across much more talented people than in any workplace where I've been previously. And the good part is that Stack Exchange is not limited to software engineering, or servers administration, or security, or user experience. It's all those experts, together, in all those diverse fields, and that's just great!

    Back to my Docker example. Imagine you search for your own how to reduce time spent provisioning new environments. You may find some techniques which reduce it from an hour to a few minutes, but if you're unlucky, you may miss the Docker option. However, if you ask on ServerFault how to solve the time problem you have, there are chances someone will suggest Docker as an alternative to your current approach.

  • There are meetups and conferences.

  • And blogs. Don't forget blogs. There are obviously skilled system administrators who love talking about the things they are doing. Learn from their experience.

As an example:

  • I started my career of software developer as a freelancer. While it's a good opportunity to learn stuff by discovering a lot of projects, it doesn't necessarily mean that the projects you work on will actually be worth discovering, nor that you'll meet talented people. Personally, I did, but not every project was really worth it.

  • In 2013, I was financially forced to spend a year in a company where there were no professional developers whatsoever. There were so-called coders who knew nothing about programming. Still, during this year, I learned a lot, both in terms of technologies and in terms of general software development skills, by participating on Stack Exchange, reading books and articles and going to conferences. The time I was spending in the company was a total waste of time; despite that, I learned a lot during the year.

  • In 2014, I joined a different company. While there were a few people more skilled than I, we never had an opportunity to talk much. Still, thanks to the books and to Stack Exchange, I learned a lot as well.

  • Now, I have a chance to work in a company where most people are more skilled than I. This is an excellent opportunity for me to learn from them; this doesn't mean I will stop reading books and participating on Stack Exchange.

  • A good way to always learn is to always try to improve a bit something. "You have everything setup ? Check if there is something you can improve : perf, time of installation, unnecessary steps ?" – Walfrat Feb 27 '17 at 9:47
  • As a SysAdmin I must say: this is excellent feedback! – SamAndrew81 Aug 15 '18 at 0:07
3

What you can do is learn your role thoroughly and as completely as possible. Sysadmins are very valuable assets. Most companies don't need them to be on the cutting edge, they need them to be competent and professional.

I have never seen a network yet that couldn't be tweaked a bit better in numerous ways. I've spent productive weeks just doing documentation properly. These aren't fancy things to work on, but they give you a solid grounding on the most efficient way to accomplish things which you can't learn through theory.

I'm quite competent these days, and solely self-taught. Once you have a solid grasp of the entirety, troubleshooting can look like magic even to other engineers.

You are in a position right now where you can do this, take advantage of it. Get down to basics and work your way up.

Just an idea anyway.

3

The word for the day is "VIRTUAL MACHINES".

Get yourself a Vmware, Hyper-v, or Virtualbox instance. Try different stuff in all that free time you've got. Do what interests you, and if it gets boring or you get stuck, flush the virtual machine down the toilet and try something else. Read up on current trends, and just try stuff out. You might find something that interests you in a completely different direction than the stuff you've already learned... go with it! If you've got the time on your hands and the situation is more or less peaceful, then consider where you're at as a walk-in-the-park.

Someone's paying you great money to sit on your duff and 'mind the shop'??? What part of that are you complaining about? (smile!)

  • > Someone's paying you great money to sit on your duff and 'mind the shop' You have no idea how much I'm getting it already.. – user3834459 Mar 6 '17 at 13:58
2

My situation was a little bit different because I was a software developer, not a sysadmin. That said I was in a broadly similar situation a couple of jobs ago where I worked with really nice people in an office where everyone went home on time every day and we had a schedule where we worked a little extra over a two week period and got every second friday off. There were a lot of things to like about that job, but I just wasn't learning anything and my boredom was showing in my work.

For me, the answer was to leave. I was very lucky in that I got a large raise for leaving (although I still miss having every second friday off), but even taking a pay cut would have been better for my career in the long run. Since you're especially well paid, I would recommend saving as much as you can while you're looking for a new job to ease the pain of potentially taking a lower salary.

I was also afraid I would become unhirable in the future, the organization my office was a part of didn't have the best reputation and sadly it wasn't entirely undeserved - while my office was pretty good, other offices weren't quite as good.

tl;dr if you're bored, leave. Taking a pay cut to start learning again does not mean your career is going backwards.

  • That is true but there's another factor involved in my case: I'm in a country with few IT jobs. Leaving this one would almost be suicide if I intended to remain here. Moving abroad is something I'm slowly accepting – user3834459 Feb 27 '17 at 12:34
  • That's rough, moving is bad enough when you're just getting a new apartment in the same city. Silly question, but would working remotely be an option for you? Depending where you are, it could either be pretty easy to work with a remote team in a close timezone or it could be great for the company to have off hours coverage. – Mel Reams Feb 28 '17 at 6:55
  • Remote work would never pay this much here (Italy) and even if it did taxes would eat the profits entirely :( – user3834459 Mar 6 '17 at 13:58
2

Having a job that pays above average is not necessarily bad. Wether it is a trap between you and more experience, is up to you to decide.

I also worked a lot in places were I was the most technically experienced person - I still do, again. Having seniors around also does not mean they have the time or inclination to teach you. Likewise, being the most senior around and it also means you face hands on interesting projects and it is you that are going to important conferences.

Besides the required self-learning, ask for:

  • attending conferences on the field, and thus exchange ideas with peers;
  • use online resources, free or paid, like youtube and udemy;
  • be on the lookout for free quality lessons, for instance the excellent free webinars of Percona in what touches MYSQL DBA skills;
  • request a entreprise monthly signature to safari/o´reilly books;
  • request for test machines, and put together a private/cloud / test network at work;
  • subscribe some magazines like Linux Journal;
  • join our sister communities Unix&Linux and exchange ideas with others;
  • Learn a new programming language;
  • propose yourself for certifications and get certified in a few core relevant technologies.

The proliferation of open source, also will help put together a lab on the cheap, with virtualisation hypervisors like Xen, kvm or even bhyve. And other techonologies like docker or FreeBSD jails. For instance, for a interesting pre-made package to get your feet wet, have a look at proxmox.

The key is to take the maximum advantage of your situation and be proactive in learning and experimenting. Use resources around. Read a lot.

You will find out that with time, the concepts will start being more solid, things will be making more sense, and with experience the pieces of puzzle will start fitting together.

As for my personal case, I was (almost) always the most senior person in my first sysadmin and network job, in my first consulting job, and in my first ISP job.

It meant I had to put insane hours to get work done AND study at the same time, however it also enabled me to grasp things beyond what normally a singlehanded person knows. You really have to have an hand ons approach, and I ended up dealing with a lot of technology and situations that I would have had otherwise.

Having almost said everything in contrary, I would advance that I had a position in a 3rd world country paid handsomely, and I left it after 5 years...and it was very good coming back to the "real world", and contacting with new technologies and methods. If I might do things differently if I could go back...I certainly would. The difference in the pay check makes a world of a difference.

If I were in your shoes I would talk with your bosses about financing learning opportunities and establish a (formal) training plan for the near future.

Not the answer you're looking for? Browse other questions tagged or ask your own question.