"How many of you are from consulting? Oh that's bad. You should do something.
No seriously, I don't think there nothing inherently evil in consulting, I think that without owning something over an extended period of time, like a few years, where one to take responsibility for one's recommendations, where one has to see one's recommendations through all action states and accumulate scar tissue for those mistakes and to pick oneself up off the ground and dust oneself off, one learns a fraction of what one can.
Coming in and making recommendations and not owning the results, not owning the implementation I think is a fraction of the value and a fraction of the opportunity to learn and get better.
You do get a broad cut at companies but it's very thin, it's like a picture of a banana, you might get a very accurate picture but it's only 2 dimensions, and without the experience of actually doing it you never get 3 dimensional, so you might have a lot of pictures on your walls, you can show it off to your friends, I've worked in bananas, I've worked in peaches, I've worked in grapes, but you never really taste it, that is what I think."
I'd argue the opposite really, re: 'using C/C++ at all is probably "too clever"'. By using modern C++ features it is possible to enforce a Rust-like model of ownership, without any memory management (eg. we don't use 'new' or 'delete' anywhere in our codebase). This helps reduce what the author calls "complicated, Klein-bottle-wannabe tricks", labyrinthine Java classes of GC goodness where you don't know where the code begins/ends.
The weed work is the most painful though. We get through it at work because we have to. But for any personal hobby projects, I feel nails scraping blackboard level of frustration when some build issue or other trivial minutiae come up.
I so wish all of this content was public. How lovely would it be for skill development if all of us had access to these assignments and projects with auto-graded tests.
Yes, I've had the opportunity to contribute to some existing projects but I've been limited to making feature contributions. I feel like my "system design" skills don't get exercised as much which is why I wanted to go for a greenfield thing.
Could you please point me to any which don't have a turn-key solution like Etcd for Raft (and also have a need like consensus is a need for most distributed applications)?
I feel the opposite way. When I was studying at university, I found it quite hard to motivate myself to do boring assignments, but after joining a BigCo and talking to customers who are direct beneficiaries of my work, it is much more rewarding and I feel more naturally motivated.
PG was also involved in the inception of Reddit: It was PG who gave Alexis and Steve the idea to make something like reddit, and also gave them the tagline "the front page of the internet".[0]
PG had vetoed their initial idea to create a food-delivery app and then called them back and asked them to come up with something new.
[0]: https://www.youtube.com/watch?v=5rZ8f3Bx6Po
"Developers are really particular about their setup, and choosing an editor is one of the most personal decisions a developer makes. Languages change, jobs change, you often get a new computer or upgrade your OS, but you usually pick an editor and grow with it for years. The last thing I would want to do is take that decision away from Atom users.
Atom is a fantastic editor with a healthy community, adoring fans, excellent design, and a promising foray into real-time collaboration. At Microsoft, we already use every editor from Atom to VS Code to Sublime to Vim, and we want developers to use any editor they prefer with GitHub.
So we will continue to develop and support both Atom and VS Code going forward."
Just to add on to the fantastic article: Designing Data‑Intensive Applications is a great book which tries to bridge the gap between distributed systems theory and practice.
It's astounding how much of Kubernetes is simply marketing. Google doesn't even use it internally.
Service Fabric[0] is leagues ahead of any cluster orchestration framework, heck, it's a complete distributed systems platform which powers all critical Azure services (Cosmos DB, Cortana, SQL DB). It is the only framework that allows native stateful applications; your state doesn't need to be delegated to another service. It offers Reliable Collections (Java and C#) which are persistent, replicated and sharded native collections.
“It's not that students don't "get" Kafka's humor but that we've taught them to see humor as something you get -- the same way we've taught them that a self is something you just have. No wonder they cannot appreciate the really central Kafka joke -- that the horrific struggle to establish a human self results in a self whose humanity is inseparable from that horrific struggle. That our endless and impossible journey toward home is in fact our home. It's hard to put into words up at the blackboard, believe me. You can tell them that maybe it's good they don't "get" Kafka. You can ask them to imagine his art as a kind of door. To envision us readers coming up and pounding on this door, pounding and pounding, not just wanting admission but needing it, we don't know what it is but we can feel it, this total desperation to enter, pounding and pushing and kicking, etc. That, finally, the door opens...and it opens outward: we've been inside what we wanted all along. Das ist komisch.”
― David Foster Wallace, Consider the Lobster and Other Essays
"When we were learning about manufacturing at Mac, we hired a Stanford Business School Professor at the time named Steven Wheelwright, and he did a neat thing. He drew on the board a little chart, first time I met him. He said, you can view all companies from a manufacturing perspective this way.
"You can say there's five stages-- one, two, three, four, five. They have all these things. And stage one is companies that view manufacturing as a necessary evil. They wish they didn't have to do it, but damn it, they do. And all the way up through stage five, which is companies that view manufacturing as a competitive opportunity for competitive advantage. We can get better time to market, and get new products out faster. We get lower costs. We get higher quality.
"And in general, you know, you can put the American flag here [puts it under 1], and put the Japanese flag here [puts it under 5] [Laughter] [Applause]. And that's changing, however.
"By the way, just going back to software for a minute, I often apply this scale to computer companies, and how they look at software. See, I think most computer companies are stage one. They wish software had never been invented. I put Compaq in that category. And IBM is maybe stage two, and things like that. And I think there's only three companies in here [pointing at 5] and that's us, Apple and Microsoft, in stage five. We start everything with the software and work back."
Wow. I think this is a great way to look at how companies look at ML/AI: You have Facebook, Google, MS, Amazon trying to use it as a competitive advantage, whereas I'm sure there are some companies (medical?) that wish these systems were never invented.
This also shows why you would want to be at companies that look at software as a competitive advantage: as an engineer you are the profit centre and not the cost centre.
No seriously, I don't think there nothing inherently evil in consulting, I think that without owning something over an extended period of time, like a few years, where one to take responsibility for one's recommendations, where one has to see one's recommendations through all action states and accumulate scar tissue for those mistakes and to pick oneself up off the ground and dust oneself off, one learns a fraction of what one can.
Coming in and making recommendations and not owning the results, not owning the implementation I think is a fraction of the value and a fraction of the opportunity to learn and get better.
You do get a broad cut at companies but it's very thin, it's like a picture of a banana, you might get a very accurate picture but it's only 2 dimensions, and without the experience of actually doing it you never get 3 dimensional, so you might have a lot of pictures on your walls, you can show it off to your friends, I've worked in bananas, I've worked in peaches, I've worked in grapes, but you never really taste it, that is what I think."