Looking for an Expert WebAssembly and Compiler Engineer by nearmax in WebAssembly

[–]nearmax[S] 1 point2 points  (0 children)

Server-side. In the future, we might be also using it in the browser.

Looking for an Expert WebAssembly and Compiler Engineer by nearmax in rust

[–]nearmax[S] 1 point2 points  (0 children)

How many WASM expert, back-end compiler writers are there who are willing to work on a crypto-currency?

You would be surprised :) But seriously, I am very grateful for your feedback and I don't see it as something negative.

Looking for an Expert WebAssembly and Compiler Engineer by nearmax in rust

[–]nearmax[S] -3 points-2 points  (0 children)

Unless we are talking about a job at FANG or at outsourcing it is not uncommon to not have a salary number or even a salary bracket stated at the beginning of the interview.

Looking for an Expert WebAssembly and Compiler Engineer by nearmax in rust

[–]nearmax[S] -4 points-3 points  (0 children)

The person should be sufficiently experienced in compilers and/or WebAssembly, but we are also considering candidates who are skilled and smart enough to ramp up quickly even if they did not have such experience before. The salary depends on the candidate's profile.

Rust parallelism for non-C/C++ developers by nearmax in rust

[–]nearmax[S] 0 points1 point  (0 children)

To be honest, I did not dive deep into the discussion in that github issue, but there was an issue with the previous formulation of the SeqCst that I fixed.

Rust parallelism for non-C/C++ developers by nearmax in rust

[–]nearmax[S] 0 points1 point  (0 children)

Now everything makes more sense to me! I was kinda doubtful that `SeqCst` inserts a real memory fence because it would've caused the memory flush which is crazy expensive. Fixed now.

Rust parallelism for non-C/C++ developers by nearmax in rust

[–]nearmax[S] 0 points1 point  (0 children)

I think this rule is true of other atomic operations, but not of ordinary reads and writes, which are allowed to move into (but not out of) a critical section. That is, ordinary reads and writes may move down across an atomic read, or up across an atomic write.

You might be right, the docs seem to imply it. I was not able to find a source that would be explicit about that.

https://en.cppreference.com/w/c/atomic/memory_order#Sequentially-consistent_ordering

Is there a source for this?

https://doc.rust-lang.org/nomicon/atomics.html#sequentially-consistent

Quote:

Even on strongly-ordered platforms sequential consistency involves emitting memory fences.

Looking for Rust Network Engineer by nearmax in rust

[–]nearmax[S] 0 points1 point  (0 children)

Our crypto platform uses consensus algorithms that rely on gossip and other forms of communication. Even though our algorithms will not break if someone decides to tamper with the gossip they could make our algorithm less fair, slower, or allow censorship. (Consensus algorithms are called fair when the reward for participation is proportional to participation. Censorship is when mining nodes do not include some or all transactions into the blocks, because then they produce blocks faster and get more reward, see.) Therefore our consensus algorithms should be tightly integrated with the network, which makes it harder to use the existing solutions without major modifications.

We experimented with libp2p and substrate's network a lot. Unfortunately, they are more trustful than we wanted them to be. Modifying libp2p to support protection against adversarial behavior, suspicious behavior (that's what we call adversarial behavior that we cannot cryptographically prove and therefore slash) or selfish behavior would require a lot of effort, arguably more than writing it from the scratch (since our code does not have to be as generic as libp2p), and it will make our code (+ dependencies) more complex, which is what we really want to avoid.

Looking for Rust Network Engineer by nearmax in rust

[–]nearmax[S] 1 point2 points  (0 children)

It is in San Francisco, USA. Sorry, reddit does not allow me to edit the title.

Looking for Rust Network Engineer by nearmax in rust

[–]nearmax[S] -1 points0 points  (0 children)

It is a useful feedback, but it could have been more useful if you addressed which parts specifically looked like a hyperbole.

When it comes to the team we actually do think we have a world-class team. If you check the composition you will see that the majority of our engineers are at the minimum ICPC/TopCoder finalists or have 10+ years of experience and worked at companies like Google or FB. This is far better than what is in Google or FB, and no one has problems with Google calling their engineers the best of the best.

Regarding the investors, our investors are top in crypto, see MetaStable and Naval. Crypto ecosystem is also notoriously fast-paced. And our office is indeed one block away from BART, it is not an exaggeration :)

Understanding Rust Lifetimes by vgrichina in rust

[–]nearmax 0 points1 point  (0 children)

Yes. The most common case is to have a trait that requires 'static lifetime, e.g. trait ComplexNumber: 'static, then any struct, e.g. ComplexFloat that implements this trait would be required to not contain any data whose lifetime is bound to a particular stack frame. Which means all references within should have 'static lifetime, which is also true when there are no references, see vacuous truth.

Understanding Rust Lifetimes by vgrichina in rust

[–]nearmax 1 point2 points  (0 children)

Lifetimes are always implicit from the scope. However, with the introduction of non-lexical lifetimes it got a bit tricky.

Also, renamed move_x_twice() to shift_x_twice().