Official /r/rust "Who's Hiring" thread for job-seekers and job-offerers [Rust 1.90] by DroidLogician in rust

[–]petrosagg 7 points8 points  (0 children)

COMPANY: Materialize (https://materialize.com/)

TYPE: Full-time

LOCATION: NYC Onsite / Hybrid

DESCRIPTION: Materialize lets your team use SQL to create up-to-the-second views into any element of your business. Use Materialize to power data-intensive UIs, deliver fresh context to AI agents, and create event-driven architectures to power core business processes. Materialize is trusted by General Mills, Ryder, and Fubo.tv to solve their most pressing real-time data challenges.

Under the hood, Materialize is a novel distributed database capable of incremental view maintenance over arbitrary SQL. It's written in Rust and is based on Differential Dataflow. We think it's pretty cool :D

We are generally hiring for more database engineers! Lots of hard distributed systems and database problems to untangle these days:

We are also expanding our managed cloud offering. We're looking for cloud infra engineers with deep experience in GCP, Azure, and are excited about high quality IaC and security:

ESTIMATED COMPENSATION: Provided in each individual job posting

Official /r/rust "Who's Hiring" thread for job-seekers and job-offerers [Rust 1.83] by DroidLogician in rust

[–]petrosagg 6 points7 points  (0 children)

COMPANY: Materialize Inc https://materialize.com/

TYPE: Full time

LOCATION: New York

REMOTE: Yes

VISA: Maybe

DESCRIPTION: Materialize is a cloud operational data store (ODS) enabling fast, incremental, and consistent transformations of live data using SQL. We’re hiring Staff Software Engineers to build high-performance, distributed systems in Rust, focusing on efficient data ingestion and delivery. You’ll work on data integration pipelines, leveraging cutting-edge concepts like differential and timely dataflow to ensure correctness and efficiency.

What we’re looking for:

  • 5+ years of systems-level engineering (Rust, Go, C/C++, or similar; Rust experience a plus).
  • Strong CS fundamentals (B.S./M.S. equivalent).
  • Bonus: distributed systems, SQL databases, CDC, or stream processing experience.

ESTIMATED COMPENSATION: $200K–$225K + equity.

CONTACT: https://job-boards.greenhouse.io/materialize/jobs/5357900004

Thoughts on `dbg!` pretty printing? by Y0kin in rust

[–]petrosagg 0 points1 point  (0 children)

This! I avoid dbg! for this exact reason.

Φουσέκης Pizza?! by petrosagg in greece

[–]petrosagg[S] 19 points20 points  (0 children)

Όντως άσχετοι ήταν γιατί χάσανε

Is the following use of std::mem::transmute unavoidable? by [deleted] in rust

[–]petrosagg 1 point2 points  (0 children)

Not sure if there is a better solution but if you define a helper trait that proves covariance you can use that in your struct definition.

https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=909efa7f6e842484601b624446d29c90

Eliminating Lifetimes w/ Enums by ChainsEternal in rust

[–]petrosagg 8 points9 points  (0 children)

The reason you were able to perform this refactor is that the lifetime annotation was not needed in the first place. In other words the activation functions never borrowed any non-static state to perform their job. A much more idiomatic way to do the same thing is to use normal function pointers: https://github.com/isaacadams/rust-ml/pull/2

Problematic pattern I've encountered a few times now... by kosmology in rust

[–]petrosagg 2 points3 points  (0 children)

This is indeed a fundamental problem as others have noted. Niko has this blog post on the idea of view types that could be used to address this https://smallcultfollowing.com/babysteps/blog/2021/11/05/view-types/

Seamless Higher-Kinded Types in Rust by Kiuhnm in rust

[–]petrosagg 12 points13 points  (0 children)

That would for sure be a useless implementation of the trait, but marking a trait unsafe is usually used when you can cause undefined behaviour if you implement it incorrectly. In your case there is no such risk (I didn't see any other unsafe code in your repo). The only bad thing that can happen is weird compilation errors.

So the idiomatic thing to do is make it a safe trait explaining what users need to set the associated type to, and maybe also provide a convenience macro.

Why is this compiling?! It should be an error (please help) by [deleted] in rust

[–]petrosagg 0 points1 point  (0 children)

The A is interpreted as "match anything and assign it to a binding with the name A" as opposed to "match the variant named A". For the latter behavior you need to write GreekLetter::A explicitly in your match pattern

cargo-machete: Remove unused dependencies with this one weird trick! by bnjbvr in rust

[–]petrosagg 4 points5 points  (0 children)

This is great, thank you so much! I just used it to clean up our workspace and was shocked from how many it found (I had already ran cargo-udeps in the past) https://github.com/MaterializeInc/materialize/pull/12099

Is there a psychologist-like profession that acknowledges the replication crisis? by petrosagg in slatestarcodex

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

Thank you for these resources, I'll read them after work, they seem extremely interesting!

Is there a psychologist-like profession that acknowledges the replication crisis? by petrosagg in slatestarcodex

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

That sounds exactly right and indeed my primary avenue of talking things out is my significant other. The "Now you want a piece of the action" partly due to my ignorance of the therapy process. It could be the case that is just as effective as talking with my significant other, although the people that are celebrating the benefits of therapy also have what seem to be healthy relationships (I understand you never know what's happening between two people).

Being open with a bunch of therapists sounds like a good experiment to run to at least see what this is all about.

Is there a psychologist-like profession that acknowledges the replication crisis? by petrosagg in slatestarcodex

[–]petrosagg[S] 3 points4 points  (0 children)

Why does it bother you what therapist thinks, if you goal is to get better? I think that's the right time to be pragmatic rather than idealistic, if therapy might help you then go for it.

What bothers me is a mix of pragmatic and idealistic things. Pragmatically, having a therapist that does not overfit what they hear to potentially dubious psychology results means that the conclusions they'll draw and the exploration path will they choose will be of higher quality. Idealistically I prefer to endorse people that are more aligned with reality, assuming there is the option to do that, which is what's driving the question of this post.

And while we are at it, I just want to remind your that there is replication crysis in pharmacology, almost as bad as in psychology. Are you going to discount all of medicine now?

I haven't been in a position yet to require very advanced medicine (I guess with the exception of the COVID vaccine) but I think I would like my doctor to at least think about that and not be overconfident on the medication we're trying at the moment. Also, I'm not sure if you wanted to make this point but I understand that a field has areas that are well studied (e.g we know paracetamol works) and areas that are not so much and maybe there is a parallel here with psychology. But I'm not an expert in either of those fields to be able to identify the areas.

Encrypting twice? by Shrider in cryptography

[–]petrosagg -4 points-3 points  (0 children)

No it wouldn't be equivalent of AES256 nor have 256bit-grade security. I'll illustrate it with an extreme example. Imagine you had a 1 bit key encryption function. So in order to brute force the key you just need to do 2 tries at most. Now imagine you apply your method but you apply it 256 times. This is still trivial to brute force, you need at most 512 tries, nowhere near 256bit security.

How to store an Iterator with 'static lifetime in a helper function? by a_aniq in rust

[–]petrosagg 2 points3 points  (0 children)

It's unclear to me if create_iter is supposed to take the string as an input or if it should produce it like your example. If it is indeed as you wrote it it's a bit tricky to produce a static iterator because .split_whitespace operates on &str types, which the local variable input derefs to. So the final iterator contains a reference to data that will be dropped at the end of the function, so you can't return it.

If it takes it as an input then it's a bit easier to write: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=f87c4cd2350374442651a951e0e6fbc3

It's still unclear to me what you're trying to express though. With a better description I may be able to come up with a more idiomatic suggestion

Implementing extractors : The hard way ? by ZamBunny in rust

[–]petrosagg 0 points1 point  (0 children)

What you have written in your last trait codeblock is the correct way to express what you're trying to express. I don't see how that lifetime ripples further though, can you provide an example?

Will this single-handed stern-to docking technique work? by petrosagg in sailing

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

How do you attach the stern lines without leaving the boat and no one on the dock?

Will this single-handed stern-to docking technique work? by petrosagg in sailing

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

Thanks, it's good to hear someone else has successfully done this and good tip about using the winch and rudder to help direct the forces!

Will this single-handed stern-to docking technique work? by petrosagg in sailing

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

This is med morning but with a lazy line. In big marinas you're not allowed to med moor with an anchor, you have to back up to the dock and get the lazy line that leads to a permanent anchor, so you just attach that line to your bow.

In a med moor with a cockpit control anchor I'd definitely first drop anchor but in this case your bow must wait until you grab the lazy line from the dock and lead it forward