I would advise not looking at libraries as a beginner; because they’re meant to be as generic as possible, they tend to abuse the type system and are overall a lot harder to parse for a beginner. Stick to reading the Rust code for standalone programs.
Yeah, gRPC is mainstream at this point -- much better to generate API clients when you can, instead of hand-rolling your own, especially as the number of engineers and teams in an organization grow.
I think most people just use the AWS Console. By the way, compared to regular CloudWatch, CloudWatch Insights has faster searches and a SQL-like query language, so it's better to use that if you can.
Are you sure you’re specifically interested in Raft/Paxos/consensus algorithms? Distributed systems is more general than that. A lot of software engineers working on cloud services are basically doing distributed systems, if they are building multiple interconnected services. Where I work, our team has 10-15 services that communicate with each other, with databases, caches, and with other dependencies/consumers. This could also be considered distributed systems.
I'm more interested in the general problem of building those interconnected services, figuring out how to verify correctness, and scaling them to service the traffic they get. I think consensus might be a part of that (maybe for garbage collection?), but it's not something I'm specifically interested in.
Right. Then it might be worth applying to cloud software engineer roles in general, and be sure to ask your interviewers about what sort of architecture they work on. In your case, seems like you’ll be more keen to work on those teams that have multiple services, not those that have monoliths.
Distributed would basically mean that a good portion of the core logic of the system is executed across multiple entities. So it can be scaled by simply adding more nodes. This is a specific niche, and engineers gain experience in that specific area. Am i right?
Kind of? I mean, if you’re working on an infrastructure or platform team, and building some distributed database or data pipeline, that would be more “distributed systems”, in the strict definition of the term. However, I doubt there are very many teams working on these sorts of problems —- it’s a very specific niche.
Edit: I might have misinterpreted your comment. The actual architecture of scaling by adding more hosts is quite common, if you’re processing independent messages.
Over the years I’ve remade my blog several times but these days I try to keep it as simple as possible to maintain. I’ve come to realize the biggest obstacle when it comes to putting my writing on the web is the tendency to get sidetracked tweaking the html/css instead of actually writing.
I write in Org-mode.
To generate the static files I use org-publish with some handspun emacs lisp on top.
Not to be rude, but that sounds like a horrible introduction to a language for a beginner.
If you're intermediate and want to gain more insights sure. But if you don't even know the syntax it seems like an extremely inefficient way of learning any language.
The first papers in the list explain the "why" of functional programming, and later on more concrete Haskell topics are covered. Papers shouldn't be the only resource but you can supplement them with tutorials and skimming Real World Haskell. This approach of reading papers is intended to be holistic, of course you won't be churning out Haskell code within a couple days, but when learning Haskell or FP, syntax shouldn't be one of the primary focuses imo. Unless you're learning lisp.
I'm also a Haskeller, and have been writing OCaml for a few months. Some things I liked include (1) really straightforward imperative programming (2) really straightforward mutable data structures like hash tables (3) module system (sort of like typeclasses but much more expressive) (4) named parameters (5) easy-to-understand/straightforward assembly (6) eager by default
Agree with everything you said, and I'd also add polymorphic variants. I too am a Haskeller now writing mostly Ocaml. I view the two languages as cousins. Both have great features the other doesn't. Both are worth learning and using.
I've toyed with the idea of vanishing completely, but nowadays employers often want to see a web presence.... if it weren't for that, and the convenience of Facebook Messenger, I might have disappeared already.
I was just thinking about how since one usually uses the same identity for many different accounts and interests online, it would be very easy to find someone by looking for people that match those specific sets of interests. You would have to make separate identities for every sort of interest, and never mention the other from a different profile.
Well, most people on Facebook just share links. So it's not hard to look normal. Maybe a little more boring than most, but hey, you work hard and all ;)
If you're going to use multiple identities, they shouldn't have overlapping interests, or common friends, accounts, etc, etc. And they shouldn't ever refer to each other. However, it's fine to have a bunch of identities that break all of those rules, just for the fun of it. You have unassociated clouds of associated identities.
Dig into Mirimir, if you're interested. There are several more-or-less associated identities. Some of them are obvious. Some would take a little work to find. But then, Mirimir is just a relatively superficial pseudonym.