This is a genre of post that I've never really understood. Klabnik is great and all, but, ok? Sure? Were people really record-scratching over his totally reasonable decision to take a good-paying job at a big company?
It's obviously not just Klabnik. In fact, when we did Starfighter a few years back, I think Patrick did one of these posts as well. But: like every other post about Starfighter on HN while we were working on it, the whole thing was pretty uncomfortable. It's an experience I'd prefer not to repeat.
There are lots of excellent people taking all sorts of jobs at all sorts of places, and, unless those jobs involve, I don't know, mechanizing payday loans to squeeze poor people or hacking the phones of people the government of Bahrain doesn't like, nobody needs to justify them. Some of these posts seem like they might be good examples of content actually better delivered in a tweet.
It's possible that I just don't think Cloud Flare has earned the spotlight Klabnik is giving here. Who knows. But I felt the same way when Yegge announced his job at Grab --- just, "why am I reading this?" I'm sometimes reminded of the way Anthony Bourdain described the trailing years of Mario Batali's tenure at Food TV (Batali was a "lion" but not in a good way). Like: did you want to write this, or did Cloud Flare reallllllly want you to write this?
What exactly is the confusion here? That people share things on their own blog? Or that people vote it up on HN?
If the former, people share all sorts of oddities in their own personal space especially life-changing events of which career moves is one.
If the latter, a lot of people follow "developer influencers" to keep up on the cutting edge trends. I'm personally keeping an eye on the Rust Book and hoping it maintains its high quality so that's my investment in this. I'd go the other way and say it would be borderline irresponsible of him not to publicly state he's moving off Mozilla's payroll b/c of so many of us depending on his super-active involvement in and documentation of Rust.
> why am I reading this?
Yeah, why? A better question is, why are you commenting on not wanting to read it instead of just skipping and moving on?
It is probably way more the latter concern (the voting) than the former (the writing), but note upthread that Klabnik was aware this was going to happen when he wrote it, which is why he asked Cloud Flare marketing about it first.
As to why I'm commenting on it: because it was submitted for our comment, and this is my comment.
As to why I'm commenting on it: because it was submitted for our comment, and this is my comment.
Was it? Is there any particular expectation that HN users must comment on stories, as opposed to simply reading them and gaining whatever value they gain from that exercise?
I don't know about you, but I certainly don't feel compelled to comment on every HN post. And judging by how many posts hit the /newest page and disappear with 0 comments, I don't think I'm alone in that...
Do you posit that the presence of a story on the front-page implies that every single HN user is expected to comment? Personally I don't buy that. Hell, I don't even think "presence on the front page" implies that all, or even most, HN users will even read the link. But, who knows... maybe I'm wrong.
You are, there is no maybe about it. The plain English meaning of 'it was submitted for our comment' is not 'everyone is required to comment on every story'. That's just a misinterpretation of your own.
The plain English meaning of 'it was submitted for our comment' is not 'everyone is required to comment on every story'.
In the context of how it was used, that was absolutely the implication. Tptacek submitted that as the rationale to explain his commenting, when he (obviously) could have easily skipped the whole thread. Ultimately there was no real reason for him to bother commenting in the first place...
The context is, one person asks another why they are commenting which is one of the oldest, malignantly dimwitted things to say in an online forum. The other person, mindful of the site guidelines and out of a robust and abiding sense of decorum replies that, this being a commenting place, they comment.
Then you come along and want to interpret that reply to actually mean 'Everything permitted on HN is compulsory'. That is, at a polite minimum, pointedly silly.
> asks another why they are commenting which is one of the oldest, malignantly dimwitted things to say in an online forum.
Not following. There are many threads on the front page throughout the day. My usual MO is to read and comment on what I find interesting, not the converse. I find it strange to immerse myself in posts that make me "pretty uncomfortable". Like those people who tell me how much they dislike IPA's while continually sipping it.
> he other person, mindful of the site guidelines
I avoided mentioning it explicitly b/c tptacek is a regular contributor, but do some of his comments run afoul of "Please don't impute astroturfing or shillage"? Also "Why is this on HN?" is one of the oldest and least useful questions on HN since it's obvious things are voted up b/c some group found it interesting. If there's a serious problem with it, just use the flag. I expected better of him, honestly.
Then you come along and want to interpret that reply to actually mean 'Everything permitted on HN is compulsory'. That is, at a polite minimum, pointedly silly.
No, that is, at a polite minimum, your mistaken interpretation. And it has nothing whatsoever to do with what I actually said.
> Were people really record-scratching over his totally reasonable decision to take a good-paying job at a big company?
I actually anticipated a few people being confused because of a few reasons. It seems like, so far at least, nobody has actually been confused. It happens. But I've experienced a lot of that previously; so like, moving from "writing documentation" to "product manager" and "everything is MIT/Apache2.0 licensed" to "a closed source platform" can look like big changes from the outside.
And really, I have wanted to write this bit about edge compute for a while, this is just a good excuse to finally publish the piece. I've been talking to CloudFlare for a few months, and it felt slightly odd to write it before I told the world "hey I may have some bias here." Now that I've made my decision and that bias is clear, that helps further discussion.
FWIW, I love posts like this. They combine tech, a dash of prognostication, an overview about career trajectory and how you think about it, and a bit about the space you're entering and how you see the competition. It's a fun read, and I appreciate you taking the time to pen it!
Yeah just to be clear, you're simply at the leading edge of a phenomenon that's been puzzling me for awhile, probably starting with that Yegge/Grab piece (after which, from what I can tell, he was never heard from again). Don't fade away!
> Like: did you want to write this, or did Cloud Flare reallllllly want you to write this?
I brought up to them that I wanted to write a post about joining, and asked if they wanted marketing to look it over or something. They said "no need, we'll be happy with whatever you write."
I see it as a mutually beneficial thing, and always have, everywhere I've worked.
If you mean "CloudFlare pursued BoringTon outside of the general WireGuard project", well, I don't have any real insight into the specifics of why that was chosen, but it seems extremely open source to me. As far as I know, BoringTon is just an implementation of a protocol. There's a ton of reasons to want to do things on your own rather than work on upstream. And if anything, for protocols, independent implementations can be a good thing, more than a bad thing.
If you mean something else, well, I'm not sure, those are the only ones I can remember :p
Well, they took WireGuard, wrote a Rust implementation of it, refused to collaborate with Jason, who's been trying to get a Rust implementation of his protocol off the ground, then rolled it out as a proprietary offering that WireGuard itself is not allowed to connect to. This seems like the sort of analysis that would be pretty cut-and-dried among open source advocates (I'm not one of those, so I'm not saying it's cut-and-dried for me).
Your previous rooting interest in this story would have been for Rust itself. And Rust itself would have been been best served by having it host the dominant sanctioned userland implementation of WireGuard, not merely as an implementation detail for a commercial offering that also treats WireGuard as yet another implementation detail. Rust? Important! WireGuard? Important! Warp? Who gives a fuck?
So this is a bit of a surprising response to see from you.
Apologies for the late edit:
I should lay my own cards on the table here.
First, it's not much of a secret that I'm no fan of big Flare. But just to be clear: good friends of mine have worked there, and several other people I deeply respect have as well, and I don't judge any of them for that.
Much more importantly: Jason Donenfeld is, to my mind, the hardest working person in show business, and he's set himself on one of the most important projects in network security, basically all on his own, and the momentum he's managed to achieve doing that is insane and a little inspiring --- especially given the amount of shade he's been repaid with by network security luminaries --- and basically the last thing in the world he needs is to burn cycles worrying what some giant corporation is doing with his work (which, sure, does not include this Rust implementation, but very obviously does include all the hard protocol design and validation work he's been doing over the last several years, which, if it were easy and straightforward to do, several people would have done before him).
I've done about as much serious technical work on WireGuard as you have --- to wit: none, though I am a loyal, diligent distributor of WireGuard stickers. My partners all feel the same way, so we've just been sending the project cash.
If your employer has done the same, and dumped a giant bucket of cash on Jason in exchange for having gotten so much mileage out of his work, that would be an excellent rejoinder to this particular set of concerns.
Eagerly, therefore, awaiting my comeuppance on this thread! :)
So, I'm hedging because I frankly know next to nothing about WireGuard. It's clear you know a lot more. But, without knowing more details, I can't really say if it's good or bad.
> then rolled it out as a proprietary offering that WireGuard itself is not allowed to connect to.
So, I said this in the link, but the implementation of the protocol itself is, as Zack said, fully open source. To me, that's the high order bit here. And as I said on the reddit thread, it appears from the outside that this is more of a support issue than anything else. Maybe that's a lie, but I'm inclined to take jgc at his word.
> We communicated with Jason throughout the process and have a ton of respect for him and the entire WireGuard community. In the short term, we need the flexibility to quickly update BoringTun's code base to support the project we built it for. That's harder when you need to coordinate with people outside Cloudflare and when we need to move as fast as we plan to. However, we really believe in Open Source and want the WireGuard community to thrive. We licensed the code very openly (3-paragraph BSD) and WireGuard may choose to fork it. If they do, we'll support it and plan to contribute any improvements in our own fork back. Over the long term, I think we're very open to merging this back into the upstream project.
This seems very reasonable to me. YMMV. I have no idea what requirements would cause this friction at the moment, but peeking at https://www.wireguard.com/#contributing it looks like they do the "non-GitHub server + mailing list" for development. I mean, I'm literally wearing a GitHub hoodie, but I know that I personally prefer the GitHub workflow to the point where if doing work via that system were an upstream requirement, I'd probably do my own thing on GitHub too.
Basically, it may be good, it may be bad. I don't have enough information to really pass judgement.
Hold on, you had no trouble judging whether it was good or bad on that Reddit thread. And, in case the subtext isn't clear: you've been at Cloud Flare for like, a minute. And as you said downthread: this is what you do: you advocate and evangelize. So this seems like pretty legitimate grist for discussion. Are you comfortable with your advocacy here, or having second thoughts about it?
:gif_of_homer_simpson_backing_slowly_into_the_hedge: is a totally legit response to this whole situation, for what it's worth.
(I'll reiterate: it would be amusing if your employer just smote me where I stand by revealing the large donation they've made to Jason's project).
> So this seems like pretty legitimate grist for discussion. Are you comfortable with your advocacy here, or having second thoughts about it?
My job isn't to be a PR person for everything Cloudflare does. Cloudflare has and does things I disagree with. It's a company with a lot of people working there, after all :)
All of this stuff is completely outside of what is going to be my job. And a job I haven't even started yet! I mean, sure, it's legitimate to talk about like anything is, but if you want to know what's going on, I'm certainly not the person to talk to about it.
... right! I agree! So, again: why were you volunteering opinions about the norms-compliance of this Cloud Flare project on Reddit, rather than just saying, "huh, no idea, wasn't involved"?
Because, while it's a personal thing I am working on, I haven't yet totally learned to not write paragraphs of text when someone asks me a question. I'll get there :) I'll save this thread as a reminder for next time I'm tempted ;)
That Jason asked Cloud Flare to contribute to an actual sanctioned Rust port of WireGuard --- important to Jason because the current userland implementation is Go, and thus not as fast as it could possibly be, which is a priority for Jason --- and they refused and built their own instead. Also, WireGuard-the-protocol is not a collaborative effort, and so Jason's presumably a bit concerned about a divergent fork this early in the process of getting WireGuard fielded. Particularly because Jason is just one dude working on this with a couple volunteers, and Cloud Flare is, well, yeah.
It was a pretty weird move on Cloud Flare's part. I'm not saying it was "bad", just, weird.
> did Cloud Flare reallllllly want you to write this?
I don't think any of us at Cloudflare had any idea Steve was writing this.
Similarly, no one at Cloudflare asked me to write https://sandstorm.io/news/2017-03-13-joining-cloudflare back when I joined, and I can't recall if I even told anyone I was writing it. That post also hit #1 on HN, which, honestly, was a huge surprise to me -- I didn't think it was that interesting, for similar reasons to what you say. I wrote it because it seemed like an obviously sensible thing to announce, but not really for attention-getting purposes...
I guess people are free to upvote what they think is interesting?
>But I felt the same way when Yegge announced his job at Grab --- just, "why am I reading this?"
Because many others on HN liked the story and upvoted it, it's not all about some individual's preferences.
"Intellectual curiosity" aside, it's also not all about discussing algorithms, startup strategies, and the nth JS framework this year. It's not like we don't get enough variety or that it's all "new job" posts...
The thing is once you do a number things in the open in geek-land, you become a short of mini celebrity in some circles. And people are interested to learn news about your career and progress -- e.g. of people like Steve, Katz, Abramov, Dahl, and so on.
Those sorts of posts also let people know how other people think about their career, the sort of process involved when interviewed/or asked to work with companies like Google, Cloudflare, etc (which someone reading HN and starting out with the whole programming thing from say Poland or Australia would not have the chance to know first-hand), and often what to expect from the person taking the job (e.g. I'll be working on X as part of my new job, and contribute back to the Open Source X).
Isn't this the same as just tweeting you've changed jobs, but adding a lot of color? Some people just like making their work public and documenting their life to look back on years later. I don't think we need to read that much into it.
Because he wrote it, and then people upvoted it, and then you clicked it. Same reason I read your comment. Why is it ok for you to comment on the article but it's not ok for him to write it?
> Like: did you want to write this, or did Cloud Flare reallllllly want you to write this?
Isn't most of this networking and self-promotion? It helps to announce if you have any kind of audience what you're doing so when the next opportunity comes long people will recognize who you are, what you've done? That's how I view all these posts.
It's the same when a startup posts a blog about a technology they've decided to use. You never hear a carpenter write a blog post about why he picked a specific type of hammer to do his job, but in SV/software/etc it seems pretty affordable (i.e. free) to kept yourself relevant in the eyes of strangers.
I'm not exactly sure about carpenters, but I know blacksmiths like to write long essays with many photographs about their tools and how they are set up and why some are better than others and in what circumstances and here are the great things you can do with them... and I presume I have already had the benefit of filtering out the illiterate and uninteresting ones, because these essays tend to be pretty good.
It seems pretty reasonable for an internet-famous blogger/tech evangelist? Why shouldn't bloggers communicate with a willing audience? Their fans like to pay attention to them, and such people do at least informally participate in their company's public relations.
(Yegge's rare recent posts are pretty transparently a hiring pitch.)
All of this reminds me of a talk by Gary Bernhardt called The Birth and Death of JavaScript (https://www.destroyallsoftware.com/talks/the-birth-and-death...), which although farcical is actually a really compelling vision of the future of infrastructure.
Congrats Steve! Excited to see how this turns out.
I was lucky enough to be present for one of the times Gary gave this talk live. I’ve been joking that for the past few years, his nightmare is my dream. It, like a lot of Gary’s stuff, has been very influential on me.
I greatly enjoyed the "state of the union" summary on WebAssembly, and I liked how cleverly it was disguised as a new job announcement. This sounds like a dream job (at least for me), and it prompted me to look into edge computing and WASM/WASI more seriously. Thanks for the article, Steve, and good luck!
Regarding the WebAssembly part, it seems to me that native Linux code sandboxed by seccomp would work just as well if not better, and has been available since 2005 (and there's also NaCL if you want in-process, as well as a bunch of VMs).
So I think the reason for "CloudFlare workers" not being available ten years ago has to be found somewhere else.
> But the kind of scalability I'm talking about here is scalability to the number of tenants, the number of applications that we can be hosting at one time. The challenge with this is that, again, we don't want people to choose one or two or five locations where their software runs; we want it to run everywhere. We want everyone's code running in every one of our locations. And some of our locations are not that big. Though some have lots and lots of computers, but others have maybe a dozen machines. How do you fit- we have 10 million customers- on a dozen machines? Turns out that the existing technologies for this, the existing server-side technologies, don't live up to the task. What we really need is basically 100X efficiency gain in number of people we can host and 100X decrease in how many resources each one is using.
I really like Cloudflare's strategy with edge compute. It's kind of what you have to do if you want to leapfrog over what AWS has achieved. "Oh, you have all these data centers in convenient locations for datacenters? Great. We have them near the user." That's important because a lot of future things depend on low latency, like gaming in the "cloud" instead of on a $500 console you have to buy every few years.
- AWS has an edge network. Microsoft and Google have huge edge networks, with PoPs all over the place. Akamai also has a huge edge network. You also have to guess at the size of each PoP, which is just as important as having a PoP in a location.
- CF still has a less sophisticated targeting system than these larger companies that have been doing this for a long time. Targeting is everything when it comes to CDNs.
- Streaming games is totally different than serving web pages. It requires specialized hardware and targeting. It's basically a whole different business.
CF has a great strategy, but it seems to be focusing more on using their agility to adopt WA and Rust early and turn them into advantages.
> CF still has a less sophisticated targeting system than these larger companies that have been doing this for a long time. Targeting is everything when it comes to CDNs.
Do you have pointers to public data comparing services?
Just look up Maglev from Google. I mean, that stuff is years ahead of CF (don’t get me wrong, CF is fine).
Argo from CF is a year or so old and that sort of stuff was done like 10+ years ago at Akamai. Cotendo had a great system that was more impressive 5+ years ago.
Stackpath don’t have the sort of resources that CF has but have been doing edge compute for a while now (though not WASM).
This is why I asked for data: I was hoping someone might have some numbers for what this actually means in practice. For example, using the very broad numbers at https://www.cdnperf.com/cdn-compare?type=performance&locatio... shows that Google has the performance nod in North America but is slower in Africa, Oceania, and South America by over twice that margin where e.g. Akamai still has a substantial edge.
Those are also not numbers I'd want to base a serious decision on since when I've benchmarked CDNs in the past it usually came down to things like reliability and something like 90th percentile numbers since the median numbers were usually fast enough but the outliers were what made people mad. Similarly, some providers had surprisingly high DNS latency (500+ms!) in various parts of the world but delivered competitive performance after that, requiring some judgement.
FYI, AWS Lambda can, and for many things, does run on edge locations (166 edge points). So your comparison is not very accurate. The right map to use on that comparison would be a CloudFront map.
It's important to not confuse Lambda for Lambda@Edge. Lambda can be executed in a total of 18 AWS regions (if you don't count GovCloud). More importantly, actually running your code in every region would be somewhat tricky, their architecture is built around you deploying to each individually.
Lambda and Lambda@Edge also deal with things like cold-starts which impact performance irrespective of the breadth of the network. You can see some of those numbers here: https://serverless-benchmark.com/
I was super excited to try out Lambda@Edge with Rust a few weeks ago but discovered that right now, Lambda@Edge only supports Node.js. It's a pretty major limitation of the platform.
(Although since Rust can compile to WASM, it might be possible to write Rust, compile it to WASM, load that WASM in Node and run that on Lambda@Edge.)
This is the second post I see about this edge functions, and while I appreciate the advantages (decreasing network latency should definitely have an impact), will this matter much if the database is still centralized? If most edge functions still need to talk to a centralized database, won’t that be essentially the same, performance wise?
> My role as part of Storage will be to consider “what does data access and storage look like in this world?” If your code is moved to the edge, but your data is still in a central server, you don’t gain the full benefit of having the code close to the client. There’s a lot of interesting stuff in this space!
Fixing this problem, or at least coming up with the plan to fix it, is now literally my job :) (There is of course already a plan in motion, given that Workers KV exists today...)
FWIW, I think “edge compute but centralized db” is often not just “not gaining the full benefit of edge compute”, it’s actually “way slower than everything centralized.” I’ve worked on plenty of systems where a single web facing endpoint results in 10+ db queries. With “everything centralized”, this means 1 big round trip to the data centre, then lots of tiny/fast within-datacentre round trips. But move compute away from the db, and suddenly you’re triggering tonnes of really slow db calls on every client request, and the whole system slows down tremendously.
This is why edge computing is going to be different. You have to be able to fetch and rely on data from the closest nodes, prefetch all the likely queries all at once, merge updates locally to keep relying on them while resyncing in background, etc. All while also not having data loss or weird hard to reason about inconsistencies. Basically all the reasons CRDTs were invented.
Oh, I must have skipped that part... nice! Yeah, I'm definitely looking forward to see where that goes. Having reliable, easy distributed data storage + edge functions would certainly be a game changer.
That's why we need edge storage -- which is exactly what Steve is going to be working on. :)
Yes, until we have actual edge storage, the use cases are more limited, but "edge functions" can be used for:
* Stateless / static use cases.
* Optimizing use of edge cache.
* Intelligently redirecting traffic to geographically-diverse back-ends -- including other cloud services that are already globally distributed.
For example on the last point: If you want to use Google Spanner as your database but you need to put business logic on top of it, then where does that business logic go? If it goes in a VM, either you have to make sure to replicate that VM all over the world (can be cumbersome and/or expensive) or you've lost Spanner's advantage of being globally distributed. You could put your logic at the edge, and then it will usually sit between the user and the nearest Spanner node to that user, which is ideal.
Yes, edge functions need proper distributed strongly eventually consistent infrastructure to make them actually useful, including databases and object storages. But it's too cutting edge for Cloudflare, not sure if they can even get there.
CloudFlare Workers look like a really interesting target for ClojureScript applications. I'm not sure if that's doable for now within their limitations, but would enable a whole new way of writing web apps.
I'm not sure how those two things are connected, exactly, but all I'd prefer to say right now is that I am quite pleased with it. Negotiating compensation was one of the parts of the job search that I was least looking forward to, but it was quite pleasant, actually.
This is why I go to HN comment section. Sometimes I even go straight to comments before reading the article. The amount of insight/ diplomatic bickering is so unique it doesn't exist anywhere else (by that I mean reddit) in the interwebz.
Reading this piece, it feels like the logical next leap is for someone to come up with "Personal Lambdas", where the lambda is able to run offline, with even lower latency than the edge.
> They are intended, among other things, to enable the creation of effective offline experiences, intercept network requests and take appropriate action based on whether the network is available, and update assets residing on the server.
So yeah, you can already do something like this today!
What application/use-case really require a lower than sub-second(what we already have) latency? I can only think of cloud gaming. Are we betting future on cloud on just gaming?
It's a widely held belief that response times directly influence revenue. Lots of web pages don't load in less than a second. Every bit helps. Increased performance means that you can do more work before hitting your target, meaning you can deliver more complex things.
It's always dangerous to predict the future, but one possible future for the web feels like it's starting to come into focus: javascript as the default language everywhere (frontend, backend, edge), plus the ability to compile lots and lots of other languages to WebAssembly.
A runtime that works everywhere (or, more accurately, a handful of partially compatible runtimes) will encourage moving processing around the network relatively seamlessly. Code will run on the backend sometimes, and in the browser and apps, sometimes, and in internet edge nodes, sometimes. This feels like the future we've been aiming for since we first added Java applet support to the browser.
There's a huge amount of toolchain and runtime work still to do to get there, of course. But it's a pretty cool future. Even (maybe especially) to language snobs like me.
The article describes the four eras of "how do I web server" as: physical servers -> infrastructure as a service -> platform as a service -> function as a service. Just to make that a little more anecdotal ...
I built my first websites in 1994. There really wasn't a commercial web, yet. To build a website in 1994 you probably either stuck some files in a special place under your home directory[0] (if you were at a university), or you downloaded and installed Apache to some machine of your own. Maybe an old machine you left running under your desk.
Then in 1995 Netscape went public and kicked off the "dot com" era, and Bill Gates wrote the famous "Internet Tidal Wave" memo. [1]
All of a sudden you could get paid to build websites! Big ones (or so we thought, back then). You probably needed redundant bandwidth, and a way to expand server capacity, and 24/7 power guarantees. There wasn't really a way to get that stuff except to buy hardware yourself and put it in a data center. You paid somebody with a fancy building a few thousand dollars a month (at a minimum) for a cabinet, and a committed "95th percentile" amount of bandwidth, a power connection rated to a certain number of apps, and a network drop. Then you bought a lot of machines from Dell or Sun (depending on your budget), spent a lot of time setting them up, and drove with them in the trunk of your car to the data center.
Then the first generation of "infrastructure as a service" (Rackspace) made the logistics a lot easier, and the costs a little better. Then AWS made the costs a lot better. And now "platform as a service" offerings like Elastic Beanstalk have made the logistics even easier still.
But, arguably, the as-a-service evolutions haven't made it possible to actually do new things I couldn't do on my own hardware. Faster, easier, cheaper, yes, definitely. And those are really important!
But wasm-at-the-edge feels new and, maybe, transformative.
I really like this paragraph about "the future" at the end of the Cloudflare announcement about supporting WebAssembly [2]:
"We're excited by the possibilities that WebAssembly opens up. Perhaps, by integrating with Cloudflare Spectrum, we could allow existing C/C++ server code to handle arbitrary TCP and UDP protocols on the edge, like a sort of massively-distributed inetd. Perhaps game servers could reduce latency by running on Cloudflare, as close to the player as possible. Maybe, with the help of some GPUs and OpenGL bindings, you could do 3D rendering and real-time streaming directly from the edge."
You don't need WASM to deploy compiled binaries to a web server, so I don't understand the excitement. It may be convenient for the provider (CloudFlare), but not necessarily for the customer. Performance will be better without WASM and it's an additional step in the build pipeline, compared with CloudFlare supporting any x86 binary.
WASM's purpose is to compile languages to run in a web browser. A CloudFlare "worker" is a web server that runs at a data center close to the user.
It's useful to be able to write code that runs on your server, and in the browser, and in an "edge" thingy too (for some definition of "edge"). x86 binaries aren't going to be able to do that.
For one, this post is more than "I got a job"; there's a lot of words spilled about the evolution of web application platforms.
For another, I've been posting here for ten years. https://news.ycombinator.com/leaders has me at #19. (I'm a fan of patio11's "this is basically an odometer" take on that, of course.) My "I'm leaving Mozilla" post got a lot of attention too, as well as most of my previous job change posts. I know I like hearing about what HN members are up to, and I guess other people do too.
Yeah, you've got enough name recognition here that I saw the headline and my reaction was, "oh, good for him." Same with patio11 joining Stripe. I don't think I'd call HN a community exactly, but there are still people behind the names and it's nice to see positive changes happening for them.
And your post was technically interesting too. I hadn't caught wind of WASI or WASM being run on edge services, so that's given me something to read more about.
I for one welcome your post. Like you said, knowing what fellow HN users are up to is interesting. Especially much so when the person in question (you) have been prominent within something that I care about (Rust), and now you are getting a job at a place where I myself totally would have wanted to work as well (CloudFlare) :)
CF is doing a ton of cutting edge work in the WA work. Rust is a language that is developing first class support for WA. Solomon Hykes, who completely revolutionized serverside with Docker, is saying WA is the next big revolution. This is literally the building ground 0, the powder keg, and it's all pointing to CF getting the jump over all other web companies with WA.
I don't personally believe that is true. What I see coming out of CloudFlare is mostly support for standards, and sometimes building products on top of them, just like most companies.
I'm not sure exactly what chain of ideas leads to a conjecture like that, but I can tell you what actually happened. First, a bunch of users flagged the submission. Second, a moderator penalized the submission as not intellectually interesting.
Since the moderator was me I can tell you with high confidence that the moderator's decision was based on superficial pattern matching and did not involve any evaluation of corporate comfortableness. Also the idea of doing that nauseates the moderator at least as much as it does you.
We certainly didn't want the post to disappear. It was flagged by HN (either the mods or people with enough karma to flag), we would happily have it be restored if it were under our power.
I've read through every comment on this page and there's nothing here I wouldn't stand behind, even if much of seems to be misunderstood as in this thread.
This is a pretty genius move on CloudFlare's part. By getting Steve and investing in Rust before it and WA really takes off they get a seat at the table, and will probably have considerable influence and domain knowledge in both technologies compared to other companies when it becomes mainstream.
Rust is also hedging its bets on WA, and it's looking like Rust might be the language of the future web on the server and client (thanks for all the fish Javascript). CF investing in Rust is mutually beneficial. Rust is still new, agile, and will let people write safe code, which is going to be critical when running modules in the end user's browser.
Hope they let Steve spend a lot of his time continuing to make Rust great, and hopefully Steve will encourage the other Rustacians at CF to make Rust better for the rest of us.
It's obviously not just Klabnik. In fact, when we did Starfighter a few years back, I think Patrick did one of these posts as well. But: like every other post about Starfighter on HN while we were working on it, the whole thing was pretty uncomfortable. It's an experience I'd prefer not to repeat.
There are lots of excellent people taking all sorts of jobs at all sorts of places, and, unless those jobs involve, I don't know, mechanizing payday loans to squeeze poor people or hacking the phones of people the government of Bahrain doesn't like, nobody needs to justify them. Some of these posts seem like they might be good examples of content actually better delivered in a tweet.
It's possible that I just don't think Cloud Flare has earned the spotlight Klabnik is giving here. Who knows. But I felt the same way when Yegge announced his job at Grab --- just, "why am I reading this?" I'm sometimes reminded of the way Anthony Bourdain described the trailing years of Mario Batali's tenure at Food TV (Batali was a "lion" but not in a good way). Like: did you want to write this, or did Cloud Flare reallllllly want you to write this?