54 karma · joined January 15, 2021
https://home.web.cern.ch/science/accelerators/accelerator-co...
I've never looked into it myself, but they do advertise a service like this around the Seattle offices
2. CS stuff is widely available for self-study if you've got good discipline. "The Algorithm Design Manual" by Skiena is my favorite textbook on algorithm fundamentals. CLRS is a bigger book with more mathy crunch, if you're into that.
There's a lot more to computer science and software engineering than just algorithms, but it's what you'll get grilled on the most in junior level interviews. By the same token, the skills you need as you get more senior in this industry aren't really taught in school.
I've never found it particularly useful, but then I'm also too chicken to put up serious cash. I figure I put a high price on having to be disciplined :)
Some people are natural archivists and love that second-brain stuff though, and this is a pretty sweet example :). One area I strongly relate to Karlicoss is how bad it is getting data out of my bank; as a regular non-institutional customer I don't get API access, so I have to download a PDF manually every month and run it through some script to parse out the line items.
One thing that struck home with me was this line:
> Some of these source files were corrupted by byte exchanges, and their owners were forced to the ultimate end-to-end error check: manual comparison with and correction from old listings.
At work I sometimes joke that us SWEs are the last line of retry-and-checksum defense, but it's not a joke! This paper argues correctly that engineering extreme reliability into lower level common components is uneconomical, but on the other hand pushing reliability all the way up the stack doesn't work either. If you surface the jank all the way up to your customers you just have a buggy, crappy product and your business will fail. One level down, if you rely on talented engineers to fight operational fires all the time you have to pay a lot of expensive engineers to not make progress delivering features.