Career advice

From the mailbox

I get email…

What are your thoughts about making a career out of specialising in Unix? It seems like you’ve done quite well…

Interesting question…

Realise that I started doing this 30 years ago. At that time there was no Windows (Windows 1.0 was around the corner). We had DOS. Networking was mostly serial based; if you were (un)lucky you might have had Banyon Vines or Novell or some other proprietary network stack.

Since my course work was hosted on Sun machines and the Microcomputer Society had access to the Physics Dept Unix machines, I kinda fell into Unix my default. So I taught myself DOS, PC hardware… and Unix.

If the coursework had been on the Vax cluster then I might have been a VMS person instead :-) [ I just built a virtual cluster, using simh so I can see what I missed out on! ]

I got lucky; in particular the TCP/IP networking stack finally got ported to the Microsoft world so I didn’t really miss anything by avoiding all that messy stuff!

But what I also learned was the lower levels; cabling, networking, telecoms, databases, appdev, security…

So I’m a generalist, but with a Unix speciality focus. After all, I’ve been doing Unix for 30 years; I can do a lot of it in my sleep :-)

Now, for you, it depends on what you want to be.

Looking forward, I can see Unix (Linux, really) remaining a core product on the internet. I read a story recently (I can’t find the link) that said that even on Azure, half of the VMs running are Linux based. On AWS, of course, it’s the vast majority.

If you want to be a “full stack” developer, understanding Linux is very beneficial; it’ll let you tune your app, understand why things work the way they do.

If you want to be a server sysadmin then Linux is the way to go; Windows servers are great for supporting windows workstations but I can see that become less important as things go cloudy (why run Active Directory servers, when Microsoft can do it for you? Why run fileservers when… When all your desktop apps are cloudy SaaS offerings in Office365, who needs on-prem servers?). But sysadmin will be more “Infrastructure as Code” related, so learning to script and automate will be essential.

Desktop side is going to be Windows for a long time, even with the cloud; they may be virtual desktops running in Azure, but they’ll still be there, so will have all the requirements around management (antivirus, privilege control, etc etc). Personally I find that tedious, but there’s a lot of engineering work going into taking the Microsoft product and making it suitable for Enterprise deployments.

If you want to be an architect then spreading your awareness out of one area and looking at others will help. Or you could look at stuff higher up the stack (eg Identity and Access Management; firewalls; intrusion detection/prevention; monitoring; vulnerability scanning) which may cross technology towers.

Ugh, this got a bit long…

Summary: I don’t think you can go wrong, learning Unix. This can be the foundation and core skill set. But it shouldn’t be the only skill. The more you know around how things fit together the better a technologist you’ll be, and the more valuable your core skills become. “I can do this with Unix” is great; “Here’s a problem, I know how to put A, B, C together and solve it” is even better!

Hope this helps :-)