10 Year Linux Challenge

Hi - My name is cotton and I like to hack and use Linux.

That’s okay to say around here right?

I’ve been a quite member around here since 2015, and I figured I’d write a blog post about my one year linux challenge, which started in 2012 and still goes.

I entered the fire service in 2010 as a firefighter/emt. After two years of fixing computers around the stations, the training division came to me and asked if I could create a training web application. I figured I could give it a shot.

This is where I get introduced to Linux. You see, I started watching videos on about HTML, CSS, PHP, MYSQL and Javascript. At this time, Nodejs was just breaking about. So in my course of learning I found a series on nodejs.

The guy popped open a terminal on his Macbook Pro and ran a npm command to download stuff. I said to myself, “Self - this is important and you should figure this out.” Only problem is I’m poor and can’t afford a Macbook Pro. Luckily the guy mentions that node and bash are available on linux for free.

This is when it starts. I remember standing up with my laptop, walking to the local library, buying a flash drive, downloading ubuntu linux, and unsuccessfully installing Linux several time. Finally, I got it up and running. This was my first day on linux sometime in January 2012. Since that day, I can’t remember a day I haven’t been on a bash terminal.

My first year consisted of building a print server in my house that my IPad could print to via wifi using CUPS. I built two web apps using a lamp stack. I also picked up on some things. All nix systems have perl, vi and bash. So for system adminstration I used my terminal, edited text in vi and would use either bash scripts or perl to do tasks on the nix machine. During my first yearI probably installed linux at least a hundred times.

By the start of my second year I had basic logic and coding down. Could write web apps from scratch using PHP and Javascript. I was hosting them on Apache Web Servers, but was still a newb. I’d say a solid newb, but newb none-the-less.

In my second year using linux I learned about virtualization and focused on object oriented programming in C++. Virtualization was cool because I could setup coding environments and deploy changes on my local lan and see how it would affect my applications before changing them on the production systems. It also taught me more about networking.

On the C++ front I was writing my code using vi (duh) and also compiling it using gcc and other tools like valgrind, on that beat up laptop I first installed ubuntu on the last year. The instructor for my C++ class thought it was cool (everyone else was using windows with visual studios code). He would spend his office hours with me teaching me how to use linux. He had over a decade in financial trading software development on linux. This was one of those special people you come across on your journey.

I was going to take Java, but they didn’t offer it on my days off from the firehouse so I had to take C++. I’m so glad that I took C++ because, still to this day, C++ taught me more about computers and engineering than any other study. I think a lot has to do with the fact I used linux while learning it, but it was very eye opening.

So by the end of my second year, I’m still running full stack web apps, my programming knowledge is past basic logic and now understand object oriented programming, compilation, and memory management.

It’s about this point I start coming around here. I’m a big lurker, unless I have an interesting problem I’ve solved and want to share, answer a question for someone, or the occasional shit post in the lounge. However, here I’ve found the single best Linux Community, hands down.

For the next several years I’m employed as a Linux Adminstrator at a University. This is my first time in an enterprise environment. Domain controllers, switches, email servers, etc. I get put as the admin for the programmers. These weren’t your typical programmers, they were database programmers. They teach me a lot about databases.

Consequently, I get close with a lot of the comp science professors and math PhDs. This is where I learn about algorithmic efficiency and data structures. Basically, they taught me to program “smart” and not just to get it to work. I learn about cryptography from the Math Department.

Interestingly, enough, I get really good at perl here. Mostly because everything was written in the 90’s using perl. This is where I learned regex also.

I write some interfaces and an ETL pipeline for the university, fix failing process because they compared lists using a double for loop (O n^2), so I introduce a hash table and loop over it and get it down to (O n), and get some open source bug reports in.

I hang up my fire helmet at this point. This is what I’m supposed to be doing with my life.

So, at this point I’m probably 6 years into this Linux thing. I get an offer from a software development company who wants me to build a cloud. So I take the challenge.

This is where I deploy a multiregional cloud using OpenStack. I learned a lot about networking, overlays, and web services. By this time, I’m good at debugging issues with linux, and the whole application stack runs on CentOS. This is where I learn about Kubernetes, containers, and microservice software architecture.

This is still the cloud platform the company’s application runs there app in. I’m promoted to cloud engineer.

Still since my goal is to become a software engineer I learn about software design patters with Object Oriented Languages and SOLID development practices. I read the Gang of Four, and realize that systems can treated in the same conceptual light as software systems. So I actually start actually implementing those practices in application I developed to maintain our cloud infrastructure and application deployment.

This is a very high level run through of a decade of my life, but I can tell you Linux can be a catalyst to a great career, but loads of hard work. I’ve greased over the all nighters, failures, and diffuculities that comes with this, but if you dedicate to learning linux as a tool, you will become a very knowledge computer technologist. For me, it’s as far as you want to take it.

At this point I’m going to hope out of operations and cloud engineering and take a job as a software dev.

Can I get my 1 year linux badge now?

cotton

16 Likes

Hmm lets see, I see that you have still not installed Arch or compiled the Linux kernel from source yet. But if you post hear the mods might make an exception and give you the 1 year badge https://forum.level1techs.com/t/1-year-linux-challenge/ But seriously good work on all the self taught skills and the career you’ve built on it.

1 Like

absolutely!

Great post. This is a great overview and was a joy to read. Here’s to 10 more years!

5 Likes

@SgtAwesomesauce - lol thank you!

@pepsi Actually, I have done that.

Arch was probably probably between year 2 and 4. Used it for like a year on one of my machines. Later I used that laptop to install FreeBSD, which it still runs.

I’ve compiled quite a bit of code during my time, including linux. It’s just not something I’ve needed to do as part of my job except for python and maybe a few other things. It was something I did when learning C++ because I was learning about make and makefiles.

2 Likes

It was meant to be a joke because that’s how sometimes people percieve whether you’re a linux veteran or not. May I also add tiling window managers? :smile:

Window managers? You mean you don’t pipe raw binary to your eyes? Noob.

4 Likes

Great story, how you went from tinkering with things to make a career out of it. You definitely earned that badge!

3 Likes

Oh please, I am not an animal. tty at least.

1 Like

BSD Challenge badge, when?

2 Likes

Was linking your story elsewhere, and I just noticed - good job on that avatar. Just noticed it’s Tux in firefighter gear.

1 Like

I didn’t understand most of what you referred to, but nevertheless it was great to read your personal evolution from an unlikely starting point, thanks and best of luck in the future! :+1: