I think there are two ways to go about this. You can either go deep in Systems Engineering or the reliability aspects of Software Engineering.
I'm a Systems Engineer myself. I think I got the job because I knew quite a bit about Linux internals (read Linux Kernel Development by Robert Love and no you don't need to be a kernel developer) AND Non-Abstract Large System Design (aka NALSD, read https://landing.google.com/sre/workbook/chapters/non-abstract-design/). I had experience running ISPs (DNS, Email, etc) and automating myself out of many SysAdmin tasks as well. It's also helped that I had a track record of contributing to open source projects.
On the Software Engineering side, NALSD comes up again. I'd also study SREcon talks about software projects developed by SREs while at the job, e.g libraries to make it harder for human mistakes to surface as production incidents, writing software for all kinds of automation and tooling, etc.
I'd recommend reading all SRE related books as well then trying to practice some of it in your lab at home or at work even. http://www.google.com/sre has 2 for free online. There are probably 3-5 more out there as we speak.