[HN Gopher] Fastly hires entire Wasmtime team from Mozilla
       ___________________________________________________________________
        
       Fastly hires entire Wasmtime team from Mozilla
        
       Author : swyx
       Score  : 355 points
       Date   : 2020-10-26 16:06 UTC (6 hours ago)
        
 (HTM) web link (bytecodealliance.org)
 (TXT) w3m dump (bytecodealliance.org)
        
       | ignoramous wrote:
       | My money was on Cloudflare to have hired them wholesale.
       | Regardless, congratulations to everyone involved!
       | 
       | This deal has got me thinking... whether a right way to "lay-off"
       | a supremely talented bunch is to actually see if other companies
       | are willing to offer them jobs? Kind of how player transfers
       | happen in Football (soccer).
       | 
       | Either the team goes to the newer company wholesale or you help
       | find your engineers suitable roles elsewhere.
       | 
       | One might argue there's no advantage to the company laying-off
       | people, but they could save on the severance package, and
       | frankly, two companies entering an understanding like this bodes
       | well on other levels where someone could probably explore a
       | "cross-company" job change with blessings of the employers on
       | both sides of the table.
       | 
       | Of course, things like salary negotiations take a hit for the
       | candidate especially, but internal transfers to different teams /
       | location in bigger companies already work this way. May be year-
       | end reviews and code can be shared on a need-to-know basis
       | between the companies with employee consent.
       | 
       | In particular, such arrangements between smaller / crash-strapped
       | companies and bigger / well-funded companies might work out for
       | the good. Then again, you never want the bigger company to start
       | poaching wholesale from the smaller one. May be there's a balance
       | in here somewhere that can be worked out given enough time and
       | data.
        
         | OJFord wrote:
         | Well that sort of happens in organisations large enough to have
         | 'reorganisations' - which is effectively 'selling' teams (or
         | parts of them) to internal 'buyers', or not finding a 'buyer'
         | and letting them go.
        
         | PragmaticPulp wrote:
         | In my experience, acqui-hires benefit the company far more than
         | the employees who get moved to a different company. The first
         | time I was acquihired, my compensation actually decreased
         | because they kept my base salary and rewrote the bonus
         | structure such that it was impossible to hit previous payouts.
         | Meanwhile, my prior company received a large payment for the
         | transfer of our team.
         | 
         | Ironically, the new company was paying new hires much more. I
         | would have been better off quitting and getting re-hired.
         | 
         | It's better if the employees can negotiate their own way into a
         | different company or companies. No sense in letting the
         | previous company try to cash in on the team on their way out.
        
           | marcinzm wrote:
           | As I see it, there's no requirement for you to take the aqui-
           | hire and it's on you to ensure you are fairly compensated (no
           | one else). So take it, interview, get an outside offer and
           | then quit. Or don't take it, get fired, interview and get an
           | outside offer. An aqui-hire is an option and more options are
           | always good as long as you remember that which option you
           | take it solely up to you.
        
           | tpxl wrote:
           | In my opinion, the acquihire you went through was poorly
           | implemented, and the pay reduction disrespectful.
        
             | saghm wrote:
             | I think their more general point still stands, though; why
             | would you expect a company trying to "sell" their employees
             | to negotiate in the employees' best interests rather than
             | that of the company itself?
        
               | maffydub wrote:
               | I wouldn't... but I would expect the company trying to
               | "buy" the employees to act at least partly in their
               | interests - otherwise the new employees will soon become
               | ex-employees!
        
               | toyg wrote:
               | That's why in football there are 3 parties to a transfer
               | deal: the two clubs _and the player's agent_.
               | 
               | In a regular company trying to sell a whole chunk of
               | workers, that should probably be a union. Which is indeed
               | what happens in many European countries when this sort of
               | thing happens.
        
             | 0xffff2 wrote:
             | That's somewhat irrelevant without data on what percentage
             | of acquihires are poorly implemented.
        
               | marcinzm wrote:
               | Most aquihires are "take it" or "you're all unemployed."
               | Since some money > no money the aquihire is inherently a
               | benefit to the employee. You still have the option of not
               | taking it and being unemployed. Or taking it and then
               | looking for a new job. But you have more options and more
               | income than if it didn't happen.
        
         | ocdtrekkie wrote:
         | With the sports example... the company "laying off a team" may
         | actually be able to expect a payment in exchange for
         | facilitating the transfer of their well-assembled, functional
         | team to another company. It's entirely possible that wouldn't
         | actually be a bad outcome for everyone involved:
         | 
         | - Source company which is financially strained gets some income
         | in addition to reduced salary expenses.
         | 
         | - Destination company saves on paying other recruiting costs
         | and acquires a pre-assembled team. They're essentially buying a
         | working unit instead of having to build their own.
         | 
         | - Employees avoid the uncertainty of being dropped in the
         | middle of the process (or summarily laid off), assuming the
         | right protections were in place in the agreement.
        
         | temp667 wrote:
         | This is the acquihire model. You don't actually have to do the
         | acquihire.
         | 
         | A company could just offer folks jobs directly (CA frowns on
         | companies working to block employee mobility given employers
         | can also fire folks with basically no notice). But it smooths
         | things to wrap it up in an acquihire.
         | 
         | Startups often get offers like this.
         | 
         | Wasn't there a recent case on HN where google or apple after
         | the company rejected the aquihire just offered the positions to
         | staff directly? I think they got sued?
        
           | ignoramous wrote:
           | Acquihire was not quite what I was getting at...but more
           | along the lines of companies cooperating to facilitate quasi-
           | free movement of their employees under appropriate conditions
           | especially when it benefits all or the majority of the
           | stakeholders involved, even when it is a single lone
           | employee.
        
         | qgrgergfqgfev wrote:
         | I don't think cloudflare does WASM @ edge no?
        
           | detaro wrote:
           | They do. Their Workers product supports JS and WASM (but they
           | seem to be less active when it comes to spec development
           | around it etc)
        
       | Tehnix wrote:
       | Contrary to most comments so far apparently, I'm just happy to
       | see any WASM projects secure corporate backing. I think Ferrous
       | System wrote about it nicely[0], but having people full-time on
       | projects like this has a tremendous positive impact.
       | 
       | Congratulations to the whole Wasmtime team! :)
       | 
       | [0]: https://ferrous-systems.com/blog/knurling-one-month/
        
       | mwcampbell wrote:
       | > Serverless on Fastly's Edge, powered by Lucet
       | 
       | Looks like that product is in private beta. It'll be interesting
       | to compare and contrast it with Cloudflare Workers. In any case,
       | I'm glad there's going to be some competition in that space.
        
       | [deleted]
        
       | syrusakbary wrote:
       | I have mixed feelings about this.
       | 
       | In one side, I'm happy that some of the people affected by the
       | Mozilla layoffs have now secured a job.
       | 
       | On the other side, now almost all the power of the WASI standard
       | is concentrated into the Fastly corporation (with wider
       | penetration thanks to the WASI integration in Rust). The main and
       | only player of the Bytecode Alliance becomes Fastly as well (as
       | Mozilla is out of the server-side Wasm game).
       | 
       | So... how this could be bad? The Bytecode Alliance has been
       | biased since their inception, blocking any attempt of
       | collaboration from Wasmer based on personal bias (I work at
       | Wasmer) and other external entities out of their control [1] [2]
       | [3]. This move is conceding them now a full-control over a
       | standard such as WASI, placing the whole standard at risk [4]
       | 
       | [1] https://twitter.com/syrusakbary/status/1202351432050954240
       | [2]
       | https://github.com/WebAssembly/WASI/issues/3#issuecomment-71...
       | [3] https://twitter.com/cjihrig/status/1320763509463015425 [4]
       | https://twitter.com/cjihrig/status/1320761713365581824
        
         | fwsgonzo wrote:
         | There's always RISC-V :) Nothing wrong with it, or anything
         | preventing it to be just as fast. The only thing it doesn't
         | have yet is a standardized vector-extension, but it's probably
         | pretty close.
         | 
         | We just need JIT support for an embeddable RISC-V emulator, and
         | we're golden. Does it matter what the host language is these
         | days server-side? I suppose there's a higher chance that the
         | WebAssembly standard will adopt some instructions that favor
         | cloud computation now, with these news.
        
           | chubot wrote:
           | Hm interesting idea... but
           | 
           | - wasm has modules, "imports", and "exports" for I/O and host
           | communication. The glue is one of the harder parts of the
           | problem.
           | 
           | - wasm bytecode is sandboxable with a simple MMU mapping.
           | That's one reason it has structured control flow rather than
           | goto. (And this is why you need a special algorithm to
           | compile C gotos to wasm.) RISC V certainly doesn't limit
           | itself like that.
           | 
           | So I think this idea is glossing over a lot of details... not
           | all ISAs are equal, especially ones meant to be transmitted
           | over the network!
        
             | fwsgonzo wrote:
             | I don't completely understand your second point there,
             | because I'm not necessarily talking about full-system
             | emulation. Just userspace emulation. So, why can't RISC-V
             | be a sandbox? It's just loading a normal ELF into a virtual
             | memory.
             | 
             | The first point is news to me, but I suppose you can build
             | anything you want in an open ISA too. It looks like each
             | object is like a shared object with an import and export
             | table that connects things together, so the host would have
             | to have a "modern" variant of a dynamic loader. It sounds
             | like it would be painful to support that without an
             | established way of doing it, that is standardized. So,
             | guess I agree.
        
               | whizzter wrote:
               | Had an idea of trying to "script" things for games, the
               | idea was to use a the WASM backend of a regular C/C++
               | compiler to generate code that could be loaded
               | dynamically and share structures (ignoring sandbox for
               | this) so that testing could be done seamlessly, sadly
               | WASM seems to be 32bit for the time being (atleast for
               | Clang, dunno about GCC but that has other issues), also
               | looked at Risc-V and missing export/import tables looks
               | like it could make things far more complicated (might
               | still try using Risc-V though since i'm thinking of
               | generating syscall tables automatically along with Elf-
               | loading)
        
               | fwsgonzo wrote:
               | Sounds awesome. I have some abstractions for making
               | interfacing easier, but I don't have any auto-generated
               | structures.
               | 
               | https://github.com/fwsGonzo/rvscript
               | 
               | I have done that here. Example:
               | APICALL(api_math_smoothstep)         {             auto
               | [edge0, edge1, x] = machine.sysargs <float, float, float>
               | ();             x = std::clamp((x - edge0) / (edge1 -
               | edge0), 0.0f, 1.0f);
               | machine.cpu.registers().getfl(10).set_float(x * x * (3 -
               | 2 * x));             return 0;         }
               | 
               | "machine" is an argument to each system call handler, so
               | you can have multiple machines for many purposes. For
               | example, I suspect you can use a machine as a savegame -
               | because they are serializable.
        
               | chubot wrote:
               | The wasm paper covers these issues, and is short and
               | pretty readable:
               | 
               | https://scholar.google.com/scholar?cluster=14979605902538
               | 775...
               | 
               | tl;dr security introduces a lot of design constraints
               | that RISC V doesn't have.
               | 
               | section 2.3 on structured control flow:
               | 
               |  _WebAssembly represents control flow differently from
               | most stack machines. It does not offer simple jumps but
               | instead provides structured control flow constructs more
               | akin to a programming language. This ensures by
               | construction that control flow cannot form irreducible
               | loops, contain branches to blocks with misaligned stack
               | heights, or branch into the middle of a multi-byte
               | instruction. These properties allow WebAssembly code to
               | be validated in a single pass, compiled in a single pass,
               | or even transformed to an SSA-form intermediate form in a
               | single pass._
               | 
               | Also, wasm is a "Harvard architecture" rather than von
               | Neumann (separate address space for code and data), also
               | for security reasons:
               | 
               | section 2.2:
               | 
               |  _Linear memory is disjoint from code space, the
               | execution stack, and the engine's data structures;
               | therefore compiled programs cannot corrupt their
               | execution environment, jump to arbitrary locations, or
               | perform other undefined behavior. At worst, a buggy or
               | exploited WebAssembly program can make a mess of the data
               | in its own memory._
               | 
               | However, wasm also leaves some things to be desired
               | security wise. Buffer overflows in C are still buffer
               | overflows once you compile to wasm, and can be chained in
               | to JS exploits.
               | 
               | https://old.reddit.com/r/ProgrammingLanguages/comments/ic
               | b9v...
               | 
               | If you try to use RISC V in the same contexts, you'll
               | have the same problems. If you have an additional layer
               | of process sandboxing, then those could be mitigated. But
               | then RISC V is not a wasm replacement.
               | 
               | Although maybe wasm is hopeless for C code, so you need
               | more sandboxing anyway, so then it's on par with RISC
               | V... interesting question.
        
               | fwsgonzo wrote:
               | You don't have to have the executable code in-memory for
               | RISC-V emulation.
        
           | syrusakbary wrote:
           | I think WebAssembly still has a bright future, regardless of
           | a corporation practically gaining control over a standard
           | (there's always opportunity for more standards).
           | 
           | Here's a nice comparison between WebAssembly and RISC-V,
           | written by Heyang (from the Wasmer team) that fits perfectly
           | on the topic:
           | 
           | https://medium.com/@losfair/a-comparison-between-
           | webassembly...
        
             | jhallenworld wrote:
             | I wonder which leads to a faster emulated machine?
        
               | FullyFunctional wrote:
               | Assuming the same implementation effort & skill: WASM,
               | hands down (disclaimer: I have significant RISC-V
               | experience and am an stout advocate, but RISC-V is a poor
               | replacement for WASM).
               | 
               | ADD: a few of the reasons:
               | 
               | - When JITing RISC-V you cannot tell which are the last
               | use of registers without a very expensive whole-graph
               | analysis. Without that, you will have to generate more
               | code than necessary.
               | 
               | - WASM's representation is very close to what you want in
               | the compiler. In particular, you can directly tell all
               | incoming control-flow edges, which makes analysis much
               | more precise, gives optimization opportunities you would
               | otherwise miss. Recreating this information from a binary
               | is either impossible (due to computed branches) or
               | expensive both in terms of analysis and the guards you
               | have to generate to protect your assumptions.
        
             | fwsgonzo wrote:
             | Very interesting, and thanks.
             | 
             | > the running code is not even provided with a way to
             | access itself.
             | 
             | You can do the same thing with some ELF post-processing. I
             | have done this, and used it over several months now. It
             | works just fine, even though there is nothing in the RISC-V
             | standard that explicitly says this must be true.
             | 
             | I asked the GCC people and they consider it a bug if
             | there's any data in the text-segment. So, at leas there is
             | that. Maybe we can call it optional support? :)
        
             | FullyFunctional wrote:
             | It's good, but a few issues:
             | 
             | - RISC-V is a large family of ISAs, though Unix platform
             | targets a much narrower definition, the RV64GC. The
             | "Feature table" lists FP and SIMD as "in extension" but
             | doesn't do the same for Memory layout and protection. It's
             | seems inconceivable to me that you would use paging in a
             | WASM-replacement context. Same for instruction length, two-
             | byte instruction depends on the "C" extension.
             | 
             | - There is nothing that prevents RISC-V in the browser from
             | denying the ability to generate code on the fly. Just like,
             | say iOS, it could run in a "W^X" model, that is, writable
             | memory cannot be executed from.
             | 
             | - atomics, again, are part of an extension, the "A"
             | extension. They do not have to be included, and do not make
             | sense IMO in a single-threaded WASM replacement context.
             | 
             | All that said, WASM is well designed. The structured
             | control flow is a bit painful for some producers and the
             | lack of tail recursion elimination is criminal, but running
             | running/JITting RISC-V in the browser would almost
             | certainly add more overhead.
        
         | mbStavola wrote:
         | There are at least two other organizations that contribute to
         | the Bytecode Alliance, so I don't see how Fastly has overtaken
         | the standard. Could you elaborate on that?
         | 
         | As for "personal bias," I think that's fair game considering
         | the personal history between you and one of the members of BA.
         | Wouldn't exactly be psyched to work with you either.
        
         | singularity2001 wrote:
         | Wasm offers a unique opportunity to invent and define a new ABI
         | standard, one with (at least minimal) support for the concept
         | of classes. How to make it popular is another question.
        
         | qppo wrote:
         | surely you have a better example of your gripe than closing a
         | GH issue on the _logo_ design... the whole conversation on your
         | end seems petty and toxic, at first glance.
        
           | [deleted]
        
           | oefrha wrote:
           | Some context from that thread I find important (I'm a
           | bystander not involved in any way):
           | 
           | > We would need to work with a lawyer to determine the IP
           | issues around this. It's possible that just using the same
           | policy as for the WebAssembly logo works, but I know that
           | various organizations have grown more concerned about IP in
           | this space since then.
           | 
           | > This is in no small part because your company, Wasmer,
           | attempted to register "WebAssembly" and "Wasm" as trademarks.
           | The USPTO rejected the application, but I don't think we can
           | assume that attempts to register a brandmark for a WASI logo
           | would be similarly rejected.
           | 
           | This doesn't seem to be a he said she said situation; gp had
           | the chance to defend himself and all he could come up was a
           | very weak "The trademark requests were driven by our lawyers"
           | (and what came after that was even more shameless if you ask
           | me): https://github.com/WebAssembly/WASI/issues/3#issuecommen
           | t-71...
           | 
           | Given that context, I'd say the gp comment (especially the
           | "personal bias" part) is likely motivated smearing.
           | 
           | Bottom line: don't make up your mind just because it's the
           | top comment of an HN thread, or because the
           | discrimination/racism card is played (racism card isn't
           | played here, it's in the linked GH issue). If you want to
           | form an opinion, read the other side first.
        
             | syrusakbary wrote:
             | There is much more context to the "personal bias" statement
             | than what is provided in the thread.
             | 
             | But 100% agreed, it's essential to stay critical before
             | making your mind on a given thing.
        
               | oefrha wrote:
               | If there's more context you're certainly not
               | communicating it very well and all we see is some company
               | attempting to trademark something they neither invented
               | nor owned and crying discrimination with little to no
               | supporting evidence.
               | 
               | Also, did you delete your downvoted comment then post the
               | same thing in a new one? I saw your comment posted a
               | while ago, in the gray, then when I refreshed before
               | responding, bam, "0 minutes ago". That's not cool.
        
               | syrusakbary wrote:
               | No doubt. It clearly seems that I'm not communicating
               | well enough. But just to be clear: is not in Wasmer
               | intent to own the Wasm trademarks (as stated in the
               | Github issue).
               | 
               | And to answer your question: yes, I deleted the comment
               | because I thought it was going to start a non-productive
               | discussion (it had 1 point at the moment of deletion).
               | Then I realized deleting could provoke some other issues,
               | and decided to repost again.
               | 
               | Yeah, I know bunch of BA people will downvote my
               | comments... and it's ok!
        
             | [deleted]
        
           | [deleted]
        
           | syrusakbary wrote:
           | If you don't see any issue on a corporation having most of
           | the control over a spec, then I guess there isn't anything I
           | can say that will convince you.
           | 
           |  _> the whole conversation on your end seems petty and toxic,
           | at first glance_
           | 
           | That's a first! Can you expand on that? Thanks!
           | 
           | https://github.com/WebAssembly/WASI/issues/3
        
             | CJefferson wrote:
             | I'm replying here as a total independant, because you asked
             | for a response :)
             | 
             | Honestly, a logo for a project is both a huge thing, and a
             | massive timesink. Your responses read that you just want to
             | take over choosing the logo ("I'm happy to take on the
             | responsibility of organizing it."). Then you seem to want
             | to make this a whole issue encapsulating the problems with
             | wasm (I am of course just reading one issue, not the many
             | related problems)
        
               | [deleted]
        
               | syrusakbary wrote:
               | Thanks for your response! Agreed that a logo is a not
               | thing that should be taken lightly.
               | 
               | Priorities in open-source communities are weighted
               | differently by different members of it. We do care about
               | accessibility, and the current logo have serious
               | readability issues that affect disproportionally people
               | with low-vision.
               | 
               | IMHO a "welcoming" community should encourage
               | improvements, rather than halting collaboration because
               | it doesn't come from the main members.
        
               | morty_s wrote:
               | >people with low-vision.
               | 
               | What does this mean? How does this relate to current
               | logo? Is this a color blindness issue?
        
               | syrusakbary wrote:
               | There is a color accessibility with the current logo.
               | 
               | I've explained it here:
               | https://speakerdeck.com/syrusakbary/wasi-logo-proposal
        
               | [deleted]
        
               | marcinzm wrote:
               | They stated that a proper logo process would require too
               | much of their time to devote to right now and they don't
               | want a half-assed process. Also, to your proposal to
               | manage the process, they clearly don't trust you after
               | your company tried that trademark BS. So from their point
               | of view anything you're involved with would actually
               | require even more of their attention due to potential
               | legal liability.
               | 
               | So it's not about not being a main member but rather
               | about being basically seen as a bad actor to the
               | community. Actions have consequences and the consequence
               | for the trademark BS is being seen as an enemy of the
               | community. The way to resolve that is to not annoy them
               | about things while being as helpful as possible. Your
               | comments on Github definitely are not that (they're
               | adversarial, clearly annoy them with something they don't
               | want to deal with, etc.) which simply cements their view
               | of you being a bad actor.
        
               | CJefferson wrote:
               | I agree improvements are good in generql, but logos are
               | (in my experience) special. They can be a massive
               | timesink, for big projects you have to get lawyers
               | involved, and the arguments can suck up all the energy
               | for months. Its also not something anyone can ignore, as
               | once a logo is chosen you are stuck with it, generally.
               | 
               | If they are also rejecting good quality code, that's a
               | whole other issue.
        
             | qppo wrote:
             | I didn't say anything like that, I was commenting on your
             | commentary and not Fastly or the BA. That strawman you
             | built up is an example of toxicity.
             | 
             | The pettiness is that this looks like a non-issue blown
             | into a flamewar where the BA has every right not to accept
             | contributions from yourself because of past actions taken
             | by the business you founded. I thought it was fine for them
             | to close the issue was out of scope/focus, it didn't need
             | more attention or for you to project your own gripes onto
             | it.
             | 
             | All told this thread left a very bad taste in my mouth with
             | respect to Wasmer, while I have a lot of respect for the BA
             | and Wasmtime teams and I'm very glad that they found a home
             | at Fastly.
        
       | [deleted]
        
       | aarchi wrote:
       | It's good to see Wasm development continuing outside of Mozilla,
       | but it's a shame that Mozilla seems to be going under.
        
         | syrusakbary wrote:
         | Yeah, it's now clear that Mozilla focus on Wasm is only on the
         | client-side for the browser.
         | 
         | It seems most of the Mozilla people working on Cranelift are no
         | longer employed to work on it.
        
       | simlevesque wrote:
       | Fastly have a great product. I've always liked their support too:
       | when you need to have access to low level APIs like pure VCL you
       | juste have to ask and they provide it, it is deeply powerful.
       | 
       | I think they can make a great impact with these hires.
        
       | batter wrote:
       | I will stay pessimistic here. Wiring VCLs is painful and very
       | limited. But writing Rust takes CDN support to completely
       | different level. Even if they will introduce other languages i
       | don't understand why anyone would rely on Fastly to run their
       | software. Especially once you realize you need some storage and
       | it will Fastly again.
        
       | vmchale wrote:
       | Cranelift coming along is exciting!
        
       | [deleted]
        
       | qgrgergfqgfev wrote:
       | Holy moly! This is pretty amazing. I was playing with terrarium
       | the other day and it looks pretty cool
       | https://wasm.fastlylabs.com/
        
       ___________________________________________________________________
       (page generated 2020-10-26 23:00 UTC)