School of SRE: Curriculum for onboarding non-traditional hires and new grads
github.com
github.com
How to actually be an SRE, bullshit at a high level, work on a redhat cert, don't implement anything of value, bikeshed about issues with the people actually getting work done and pretend that writing yaml in git is "coding". What a demoralizing career.
Every sre job is going to quiz you on stuff like terraform knowledge, and then expect run their ci tools and manage aws.
When was the last time you changed jobs?
Anyways, the point is it doesn't matter who is "right" or "wrong" and really we should be treating this role what it's being hired for, and as such education and training should reflect that.
> SWEs don't know how to use a DB
If by "use" you mean access it through an ORM, they do. If you mean "have an inkling about normalization, index design, and the query planner" then no, they absolutely do not.
Have to use some half-assed YAML based solution that compiled into Airflow DAGs. I'm basically a YAML "engineer" wondering what should I write in my resume: "I implemented hundreds of DAGs in YAML", while the other team bags all the credits and pat on back because they made a "great data platform".
BTW how does one get into a real SRE job? Or maybe I should just realize I'm not good enough for most of the "better" jobs out there, and should stick with whatever I have and hop once 4-5 years until retirement.
Do you understand the business and can contribute to it? As SRE you can help save cost in production (harder to make money directly by building products or features). That's a way to a more senior position.
Can you automate the task you were given? can you use you new free time to identify where else you can save cost?
I used to think knowing the business is important, but now I understand that it's impossible to know every business I'm in. I should rely on the BI for requirements and just do my job and do very well. I don't want to be a product manager or a manager so I prefer to stay in the technical side.
About the other questions, yes I automate as much as possible. I don't have any free time sadly as I'm just one man team (previously we have 6). I'm overwhelmed by this YAML engineering.
Anyway I'm starting interviewing soon.
As somebody else pointed out in this thread, The trick is to refine your training in real situations as quickly as possible. The SRE Padawan isn't there to watch, they are there to grill me as to why certain things aren't in my documentation.
they are there to help me eventually raise up the operational excellence of our team.
With the jr-sre by my side, Refuse to perform a task in a vacuum, or jump into meeting alone....their success is our victory (and probably my vacation.)
I think that this is a great starting point, but there is some fun nuances to teaching how to survive a shitstorm that are so rarely brought up. Communication protocols, database warming, orders of operations.
you can teach these things but until you get them wrong you risk not learning them.
TLDR: good but missing a Kobayashi Maru.
In general, the "onboarding" I have seen for non-trad hires and new grads at several companies has been absolutely non-existent... they pair these newbies with senior devs who either spend a lot of hours per week pairing and mentoring, or they ignore their mentees who then typically flounder.
It's an enormous wasted opportunity. A proper onboarding curriculum has a tremendous return on investment. While perhaps impossible to measure, you can't tell me that it's not easily 10x or something like that.
I am more of a traditional SWE, not an SRE, so I can't comment on this one directly. But in general, more of this.
The more experienced engineers helped me with clarifying questions as they came up, but were otherwise not busied-out teaching the newbie.
1. As an SRE, it becomes even more important to get the big picture of all things that make the a company’s systems and services tick. I’ve been surprised by the lack of high level block diagrams explaining from this perspective. The diagrams are often from the perspective of devs as they build the nitty gritty details. It can be quite daunting for a new SRE, even more so for a new grad. On the other hand, I usually spend my first month documenting everything I learn in the first month as an SRE, and it becomes the guide that gets passed on to future SREs.
2. The thought of preparing educative materials to onboard a new grad(vs an experienced engineer who is expected to only match their experience to the company specifics) is often missing even in highly organised and functional shops. Nurturing and helping a new grad into the company specific things is a lot more rewarding and advantageous in the long run. There are almost always these pockets of tribal knowledge that exists among the senior folks who were there when some problems were solved. It is counter productive to the team as every time someone touches those sections, they seek the review/approval from those that possess that tribal knowledge.
The Missing Semester of Your CS Education https://missing.csail.mit.edu/
Check the playlists that say fundamentals https://www.youtube.com/@LearnCantrill/playlists
Thanks for the tip about that Missing Semester course.
https://www.quora.com/Who-produces-better-computer-engineers...
This isn't surprising given the common strategy of replacing senior SWEs with junior ones (who are simply relabelled "senior" after a few years training).
Or shorting senior SWEs by giving them mentoring tasks, while keeping their normal duties - and evaluating them (wrt advancement) primarily on their normal duties.
In addition, Operations is much more of a traditional trade than a technical skillset. You can't read a book about being an electrician and then expect to do a good job wiring up a 100 amp panel and not killing somebody. You have to be an apprentice first, then after a few years a journeyman, and after a decade or more a master. Until you work under someone and have years of experience, you're not going to be very good.
This LinkedIn curriculum is just one example of many companies that misunderstand and underappreciate the true nature and purpose of the role, and make a sad attempt to cut corners by hoping they can turn a total newbie into a journeyman by learning some Linux commands. Doesn't work that way. (But thanks, LinkedIn, for telling me that I don't want to work there)
I can see the need for project management, ownership and processes being needed on top of the previously mentioned skills, but skills in the link are exactly what most SRE jobs ask for.
Hiring managers are morons. They don't know what SRE or DevOps actually is. They think it's a systems administrator who can write Python.
That's not a good sign IME[1] but it seems inevitable, so it's crucial to make the best of it - I think standard intro curricula are a great way to do it.
It's also a pretty clear "canary in the coalmine" indicator. If a "nontraditional hire" cannot master or simply can't be bothered to learn the onboarding curriculum, that's a clear warning sign w.r.t. the viability of that hire.
______
[1] To be clear I'm not entirely against inexperienced/nontraditional hires. I'm against the situation where a company wants to make the absolute newbies a majority of their hires because like, hey, they can learn from the senior devs by osmosis or whatever.
Even funnier, my extended team requires further education in the particular skills we need here. Even an internal transfer with years of Google SRE experience needs to go through it. It’s just cheaper to spend some months on probably repeated training, than to discover a knowledge gap/misaligned intuitions in the form of a large post-mortem.
I don't know what LinkedIn is doing and how many SREs they've got sitting around "writing SLAs", but I'm not sure you should even be passing an interview for an internship if your operating system fundamentals are that weak. In anything anywhere near a production Unix system.
Perhaps I just don't understand what the actual role of an SRE is. I'm fully aware of what an SLA is. What I suppose is confusing is how the role of SRE came out of nowhere fairly recently. I know what a systems administrator does, and what a systems programmer does, and of various forms of title inflation that can be applied to both. SRE remains a mystery to me that crawled out of the web title soup sometime in the last decade.
Is it operations? Is it writing contracts and badgering programmers about that time they broke production? Are they like auditors? Do I need to take the SRE out to dinner and butter them up? I'm not quite sure based off of this content.
I've got nothing against nontraditional hires. I never finished college. But I absolutely despise the idea of somebody educated in this way being put in a position of authority.
SRE onboarding is about showing how everything connects, SLAs, lifecycle management, etc. Essentially, anything you wouldn't put in a public repository.
RDBMS:
> A subquery is generally a smaller resultset that can be used to power a select query in many ways. It can be used in a ‘where’ condition, can be used in place of join mostly where a join could be an overkill.
In nearly all cases, a join will out-perform a subquery. If you don't need the joined table in the result, a semi-join is usually a good idea.
Unrelated, in discussing MySQL configs, they link to the docs for 5.7, not 8.x.
> Adaptive hash index: Supplements InnoDB’s B-Tree indexes with fast hash lookup tables like a cache. Slight performance penalty for misses, also adds maintenance overhead of updating it.
IME, on high-traffic DBs the hit ratio is so low (not to mention the mutex locks) that it's faster to just disable the AHI.
> [Joins are] powerful but also resource-intensive and makes scaling databases difficult. This is the cause of many slow performing queries when run at scale, and the solution is almost always to find ways to reduce the joins.
This seems to imply that the answer to slow queries involving joins is to denormalize, which while sometimes valid, is definitely not the preferred solution. If you have a slow query, odds are high that something isn't properly indexed, or your schema design is poor to begin with.
Bash scripts:
* Inconsistently quoting variables
* Exit status 2
* Seemingly being unaware of else if
* Backticks instead of $()
* Little to no discussion on pipes, and the vagaries they introduce
Call me a purist, but there is nothing in SRE that relates to what I consider the engineering discipline of Systems Engineering e.g. https://www.nasa.gov/sites/default/files/atoms/files/nasa_sy... & https://sebokwiki.org/wiki/Guide_to_the_Systems_Engineering_...
This sounds more like the intersection of software development, applications, and operating systems
True Engineering is not software development, and vice versa. The knowledge required to be an excellent engineer is not the same knowledge required to be an excellent software developer, and vice versa.
Even if we look at the most software centric parts of engineering in the fundamentals exam for the PE, we see a huge emphasis on the physical world that is key for Electronics Engineers, but not for a software developer https://ncees.org/wp-content/uploads/2022/09/FE-Electrical-a...
This hr-speak is terrible. “Entry-level talents”, omg.
Juniors usually implies generally no experience with anything. For example, I wouldn't call someone a junior if they had 15 years of Windows UI programming experience but for some reason decided to switch to a Linux / SRE careeer. But they would be entry level in their new field.
https://linkedin.github.io/school-of-sre/level102/containeri...
>Container engine is the intermediary between containers and Host OS
This is wrong. Both the containers and the "container engine" runs on the host OS.
https://linkedin.github.io/school-of-sre/level102/linux_inte...
>Below are the most popularly used file systems:
>ext
I have never in my life seen ext used. ZFS, XFS, and BTRFS are way more popular.
>https://linkedin.github.io/school-of-sre/level101/databases_...
None of the advantages of NoSQL given are true advantages over SQL. They are mostly just based off the database itself and not whether it that database is SQL or not.
>NoSQL systems tend to map data based on the programming data structures
Surely the authors must know ORMs exist for SQL databases too.
I seriously doubt that any of those are more popular (ZFS is out of tree, BTRFS is starting to get traction but only just, XFS I'll grant in the RPM distros but it's mixed outside of that), and also I'm curious how you managed to get very far without seeing ext2 or ext4 at all; most cloud instances I've seen use ext4 for root, and some form of ext is popular for /boot anywhere that isn't merging /boot with the EFI partition.
In regards to ext2 and ext3 I have seen them, but not in the context of being on a server.
Kubernetes just default to ext4 over xfs. https://kubernetes.io/docs/concepts/storage/storage-classes/
Don't take this personally, but this is super naive.
I have over quarter of century of experience and I am far, far from knowing everything. And even if I do, it is still useful to sometimes find materials that present the information in an organised way.
When we talk about people applying for jobs... you would be surprised. Majority candidates don't know more than a small portion of it. The best you hope is they are good at couple things and then know something about a lot of others.
I would say, looking at this site, if a person actually knows, understands and had experience with most of these things in their career (without using resources like this site), they are likely already well above SRE level.
Most of those things rely on some additional management/leadership skills. Yes, manager, tech lead, architect, startup co-founder etc. That's natural, because that's how you get more leverage to have more impact/return for your skills.
But that's not the only way to make more money. If you don't like management path you could, for example, become highly paid consultant.