This will be a long post, because it was a long year.

I’m a very organized person. I know this because I love lists.

I write lists everywhere. In my notebook, in my Notes app, on empty envelopes, receipts, paper bags. As a kid I would write them on my wrists (my mother hated that). Periodically I compile the lists together, figure out which items to do first, and scribble them out when complete. And I know the system is working because everything gets done, mostly, eventually, at some point.

It doesn’t work very well.

I’ve been giving talks and ranting in tweets for several years now, and the same question crops up again and again: “How do I get into SRE? How do I get there from here?”

My answer is usually rambling and long. So long, that sometimes I don’t even write back. There is simply too much to say! Too much history. Too much context. Too many factors for each person’s individual situation.

So, here it is. My formal ramblings on how to get into SRE: what I think it is, how I got there, how you can get there, and how to do it. This post is a guide and meant for bookmarking, referencing, and sharing. It provides insights that you can map to your specific situation to get you started on your specific path.

I hope you find this useful in your journey.

One of the most powerful concepts in programming is branching, which most new programmers learn as If-Else statements. This approachable logic flow makes it easy to navigate choices and is present in nearly every codebase out there. In some languages there is a variation of this logic flow called a case statement (or switch statement), which is a cleaner way of dealing with many If-Else sequences.

However, there is yet another variation that, when used in the right circumstances, can make your code more elegant and your program more performant: the function dispatch table.

2018, the year that felt like ten. Time hopped and jogged and stood still, twisted me all around, chewed me up and spat me out with every horrible update of the news cycle.