Hacker News new | past | comments | ask | show | jobs | submit login
School of SRE: Curriculum for onboarding non-traditional hires and new grads (github.com/linkedin)
253 points by DarkContinent 5 months ago | hide | past | favorite | 70 comments

As a junior SRE that got hired in this role as a new grad, I find these resources quite handy for anyone that would like to step into SRE. I would like to add three other ideas

- Reading the SRE book from Google to get a glimpse of the SRE philosophy. A lot of companies rebrand their Sysadmin or DevOps roles as SRE because it's trendy. Many businesses do not need SRE and need to make sure they understand the idea behind it before doing so.

- Learning Golang for such a role is becoming increasingly vital. So many SRE tools including Kubernetes, Prometheus, and Terraform are written, and extended, in Go that it's almost a requirement next to learning Bash.

- A lot may disagree on this one, but get yourself some certifications. SRE is kind of a broad role and companies do not know how to assess the skills of candidates, and unfortunately they often rely on certifications to do so. You don't have to enroll in the most challenging ones as a junior, but just one or two basic certifications to get a rough idea of a provider or service capabilities. Choose wisely.

It can be difficult to show off any personal project in such a field, but you could try to create your own infrastructure as a side project, self-host some services and provision them with Ansible for example.

But most importantly as a new SRE, find yourself a good team and good mentors within that team. Getting into SRE without any previous experience is a hell of a ride, but a very rewarding one. Like previously said, SRE roles are jack of all trades and the field is so broad you never stop learning :)

As a non-developer whose code would probably make your average SRE's brain implode, how competent would this 'course' make me?

I started my IT career 2 years ago and my programming isn't that strong. I got pinged for a SRE job recently (my background so far is very much Linux based so I must have matched some filter) but I'm not strong in development, k8s (or even containers), or all of the other cool stuff I see on HN. I know I can lab stuff out, but that's not anywhere close to doing it live.

I don't want to be a SRE for Google, but I'd like to learn some more on the reliability side of my world and bring things like Git, Puppet, System design, etc and not be left behind in this wave that's approaching. My organization isn't too involved in the cloud, so a lot of upcoming tech seems out of reach.

I'm a little confused by the other responses you're getting here. I don't have these kinds of expectations for recent college grads. The breadth of the document is impressive to me, and as someone with decades of technical experience, I see plenty that I could brush up on. And the Linux basics section seems to do a pretty good job of starting from foundations. It's a bunch of the things I had to figure out myself starting at a command line with little to no help.

I wouldn't treat this as a course to be completed. Think of it as a guide, or a map, on your journey to getting smarter about tech. And it's a lifelong journey. Don't let anybody here convinced you that you're supposed to know everything, because technology is so complex at this point that nobody knows all of it. Just keep broadening your skills, and deepening them where you are passionate, and you will build yourself an enjoyable and productive career.

It's a good recap but it's all things I expect a college grad to just know or be able to grok pretty fast.

Also why not Google?

I'm just not there from a skills perspective. I feel like being a SRE at Google is the top of the food chain which I'm no where near.

Not trying to bring myself down but trying to be realistic :)

Unless you already know this really well, I'd start even at a more fundamental level than what is suggested by LinkedIn. I'd try learning Unix and a little bit of C by using The Unix Programming Environment by Kerninghan & Pike plus Kerninghan & Ritchie. It's quite timeless. Files, pipes, pointers, etc. That's the plumbing of software engineering.

Then also learn the calculus of software engineering: Logic. A good short intro is Huth & Ryan. The book covers some advanced topics in later chapters, but you don't need that if you don't want to. Logic is also timeless, and very practical. You can gain the ability to model check things, which is really really cool and used pretty often for e.g. distributed systems. This can unlock many cool positions for you.

Logic can also take you to logic and declarative programming. Something also worth investing into, and pretty addictive. For that, there's nothing better than The Art of Prolog.

Could you actually get an SRE job if you went through this?

You could probably at least get a phone interview if you did...

This is just positioned weirdly. They use it for on-boarding, which means you already got the job without knowing it or only partially knowing it, so it's not a hard requirement. The real requirement is the ability to learn. But if that's true, they shouldn't have much trouble finding people to train into SREs:

>Because of the lack of these resources, we felt that individuals have a tough time getting into open positions in the industry

I don't really understand, how going through this will get you a phone interview? I mean, it doesn't change anything on your resume...

Source: I'm a new grad, I went through almost all this, but my application wasn't shortlisted.

Not a native speaker, so maybe I just don't understand what you're saying.

It's good with these sorts of things to simply get an understanding of the terminology used by these teams. Going through a guide like this won't get you 100% of the way, but it'll let you have conversations with someone over the phone.

IME, SRE roles are jack of all trades position, so you're not necessarily expected to be an expert in any one thing, which makes it easier to learn many things at the surface level, instead of learning a few things in depth. Which practically means that you will learn a lot on the job. This is especially true, since you're expected to learn some technology that's only seen internal to the company. So, showing they you have the ability to learn can perceived as much more important than specific knowledge.

My implication is that you either somehow indicate on your resume that you've done all this work, or better yet, take up a small project that lets you apply some of the skills.

As a hiring manager there is no way to know you've done this unless you somehow demonstrate it.

Classic software chicken and egg problem.

It's an amazing phenomenon. In order to get industry experience using a tool/skillset you need to be part of that industry using that tool/skillset. It's becoming more apparent to me that in order to pivot in IT, you need to do something (ie a project) on your own time or just lie.

Build some personal projects. Try and use various popular tools and frameworks. Build an app. Doesn’t need to be good. Just show initiative to improve.

I normally won’t hire a jr. But I have made exceptions if they have clearly worked through a lot of code exercises, koans, etc.

My daughters boyfriend thought he was hot stuff for getting a masters degree. After a friendly chat, I informed wife that boy was going to have a bad time getting anything. This is someone that had a lot of connections.

A year later and he sells mortgages.

The alternative strategy is just make sure when you change jobs you're getting hired for 2x skills you know deeply well and the job offers you the chance to pivot into a new technology that is a gap in your skills.

It's harder if you're trying to get hired specifically for a technology that's a gap in your skills.

It is easier to pivot to a new job within an organization, where you already have trust and a good reputation. Supporting these lateral moves was part of LinkedIn's motivation in putting this resource together.

Well the part that companies don’t say out loud is that college recruitment is the source of most of their new grads. Which colleges becomes a function of alums with influence in the company.

Oddly, the Linked-in SRE interview is more challenging, than this.

Although the degree of difficulty w.r.t a question may differ, I think being proficient in these concepts can get you a job. It’s just that most of us struggle with solving problems(in an interview). I think these concepts cover pretty much everything a SRE would need to know.

Knowing these things will absolutely help you get a job. The problem is that most SRE positions expect significant experience, so a "non-traditional" or "college grad" hire will not even be considered regardless of what they know.

That's another thing that was bugging me: this is pretty easy level stuff for an SRE position from what I know.

The other surprise was new grads being directly hired to SRE positions and it was my impression you needed professional skills in another area (at least sysadmin/cloud or programming) to transition over. That means there's a whole isolated career track for SREs now, but maybe LinkedIn hiring new grads for SRE is an anomaly.

Can almost be better not to transition.

Newer Devops / SRE is about be declarative, letting them system build itself up.

Mindset of old sysadmins is more tribal knowledge. You can get stuff done crazy fast are are awesome. But heaven help anyone that needs to mess with it.

LinkedIn has so many tools you just have to be really good at a lot and hope the panel isn’t full of asshats.

yes by being good at solving programming puzzles, which is the big irony.

As former Presidents of the USA have proved time and again, qualifications are no barrier to getting a job. You could get an SRE job without this. But could you get a decent SRE job with this? Nope.

Can someone decode the term "non-traditional hire"? I'm sure I knew what this meant at one point but forgot.

Traditional = CS degree

20 years traditional often meant dropped out of CS to join/start your company. Gain useful skills.

Well placed like MIT were actually good

Typically means someone without traditional credentials, such as a college degree or any work experience.

Wish the article would explicitly spell it out. It wasn't obvious from reading it that traditional == college degree (or work experience).

What do you think the traditional education is for a software engineer?

Well, for the first few decades it was math or EE....

A math or EE... what? A degree, right? A relevant degree is the traditional education. If you don't have one - you're non-traditional. Get it?

Oh, thanks for spelling it out for me. Being incredibly stupid, it's valuable for me when people treat me as such. (:

Traditional education for practical purposes was, for much of human history, focused much more on apprenticeship-style learning than degrees. Colleges and universities were not considered a prerequisite for lots of technical jobs such as carpentry, architecture, toolmaking, clockmaking, or even banking and accounting.

If we look at the last century or so, instead of the breadth of human history, we'll see a different story. Perhaps this is a good scope to consider, seeing as the history of Computer Science and programming largely falls into this time period.

If we want to consider digital computing, the dawn of our field had plenty of people coming to programming "from industry", to use a modern term. Experienced professionals learned to program outside of degree programs, because there were no degrees to be had in computer science or programming.

Many early pioneers in programming and digital computing came from EE programs and Mathematics departments.

This is the early tradition of programming and computer science.

Today, though, if you were looking to start a career as an SRE or as a programmer, a Math degree would be a poor choice. It is traditional, in that it was a common early path, but it is much less likely to prepare you for the type of job relevant to this thread.

An individual with a degree in Literature would likely be considered a non-traditional candidate for a programming job. An individual with a degree in Mathematics may be considered the same. A Math degree may have a lot of computational focus, or none at all.

Get it?

What are some projects that you can build to demonstrate SRE knowledge

I'm going to have to check this out. My knowledge concerning some of the topics is relatively ragged, and this could go far in strengthening that base.

Noticed in the NoSQL section that they still call Cassandra as wide column DB. It’s not true for a long time - CQL requires schema definition, and although it’s possible to emulate old behavior, it’s not wide column anymore - people just copy old things...

I'm not 100% sure, but I think LinkedIn still uses it as a wide column store. At least, they've been using it a very long time and certainly used it that way before.

Even in 2019 it was late to use Thrift... And with C* 4.0 it should go away completely

This is less of an SRE school and more of a Systems Admin school. The Systems Design section is neat but quite bare.

Sre is a glorified sys admin for the most part.

What is a "non-traditional" hire?

Someone who hasn't done a 4-year bachelors degree in CS/CE or a related field, or doesn't have previous industry experience in the role.

a quick search for LinkedIn SRE jobs returns:

  - Senior SREs
  - Staff SREs
  - Manager, SRE
  - SRE Intern
assuming senior, staff and manager roles would not accept non-traditional candidates...so this applies to interns?

We hire entry level SREs (new grads) as well. The job listing might have been closed already for this year, though. I also saw a couple junior SRE listings (as in not new grad but not senior level either).

Disclaimer: work for LinkedIn

There are Senior/Staff SREs with non-traditional backgrounds at Linkedin

with cloud being the talk of the industry these days. how pervasive are SRE roles. I would wager a good system admin | SRE can save a company thousands if they provisioned their own hardware i.e colo instead of cloud instances etc

Do you think SRE talent isn't needed for cloud?

There is an incredible number of metrics around every AWS service, and the decoupling of things via queues, topics, APIs etc. mean there are a lot of moving parts.

They could also cost the company ludicrous amounts if they built a Frankenstein at the software layer which made a mess of operations, security or performance.

It’s unlikely that a “good” sysadmin / SRE, or even a team of them, could efficiently replicate the versatility and reliability offered by cloud services.

Thats true. But you don't need that versatility or reliability a lot of the time. For a bog-standard webapp that talks to a database, gets decent traffic, and is growing at a reasonable pace (say doubling every year), dedicated hosting or colo will save you a LOT of money.

You still need SREs for using cloud services at large scale, and they can manage more cloud infrastructure per person than if it was colocated

It's the opposite. A good SRE can build a system faster and cheaper in the cloud, and only self-host the things that make sense.

You need a half dozen engineers working full time to replicate what the cloud gives you, and still buy the hardware ahead of time. That's 6 months of straight project development with 6 people and capital for a rack full of gear.. that's like $1.5M USD outlay for one year. For close to feature parity for core services I mean, nobody would normally build all that just to put a crappy web app online.

OR hire one SRE to set up a cloud stack in two months and only pay for what you use, $200K for one year or $100K for a short contact.

Well, given how expensive cloud services are compared to provisioning hardware, a good SRE can save a ton of money in just utilizing cloud services more effectively.

The decision for where the hardware will exist may be advised by SREs, but is generally not exactly in their wheelhouse. SREs tend more towards lowering the cost and maximizing the utilization of whatever methods the company as a whole decides to use.

Yep. We run almost all our systems on our own hardware. (We do use cloud VMs for random things.) It is much cheaper.

Running our primary DB cluster in AWS for a month costs more than the purchase price of the hardware the cluster runs on.

Considering LinkedIn is owned by Microsoft they don't exactly need their own hosting.

For LinkedIn that number can be 7+ figures saved per year by a single employee.

I'm not sure, but maybe this is only for internal transfers? I mean this is obviously less difficult than the interviews of the big ones, or maybe Linkedin doesn't have difficult interviews?

Where are people getting that this is their interview process (or a prep book of some sort)? This afaik from the intro page is that they use this for onboarding. It’s to make sure everyone’s on the same page.

No, what I meant is, since the interview is more difficult than this onboarding doc (I could be wrong though, so if I'm wrong the whole thing doesn't stand), why did they bother to introduce this onboarding doc to anyone who already familiar with each part of it?

looks pretty good but still missing a lot of other things such as CI/CD, Software Testing, Bug management, Feature Development, Code Review as per Styleguide etc that should be taught to any newbie SWE based on the team/company workflow

As a self-learnt developer I know a little bit about those things on my stack. Do you think I could try and recompile that info into blogposts or a repo or ebook or whatever?

sure, it will only help others

Why does this exist?

can you elaborate?

Why are there curriculums for post-grads? They have already completed a curriculum.

this focuses on SRE parts which are not taught explicitly/comprehensively.

Title nitpick but this curriculum is for not just for non traditional hires—

> At Linkedin, we are using this curriculum for onboarding our non-traditional hires and new college grads into the SRE role.

Thanks for the comment! I updated the title.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact