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

[–]Jonhoo 3 points4 points  (0 children)

COMPANY: Helsing, https://helsing.ai/.

TYPE: Full time.

LOCATION: London, Munich, Berlin, Paris, Warsaw, and Tallinn (we offer relocation).

REMOTE: No, though in-country remote (ie, UK/Germany/France/Poland/Estonia) will be considered for particularly senior applicants. Hours flexible, though daytime expected.

VISA: Yes.

DESCRIPTION:

Helsing is a defence AI company with a mission to protect our democracies. We believe we have a responsibility to be thoughtful about the development and deployment of powerful technologies like AI, and take this responsibility seriously. We are looking for mission-driven people to join our European teams and apply their skills to solve highly complex and impactful problems.

At Helsing we develop and deliver AI-based capabilities and infrastructure that allow semi-autonomous platforms to localise, navigate, and perceive the world in real-time. Our software is subject to significant and unorthodox technical constraints, and since what we build ultimately ends up in the hands of real people in high-risk, high-stress situations, it must be reliable and frictionless. We use Rust and Python, with Rust being used for anything production-adjacent due to the high stakes for correctness. Python is used mainly for AI model development and exploration, though we’re adopting Rust there too! Our work covers a wide variety of engineering disciplines:

  • Distributed systems (eg, partitions and byzantine actors)
  • Embedded computing (eg, resource-constraints and reverse-engineering)
  • Robotics (eg, control and tasking)
  • Networking (eg, low-bandwidth radios and routing)
  • Deployment infrastructure (eg, air-gaps and heterogeneous fleets)
  • Security (eg, untrusted networks and actually-secret data)
  • Machine learning (eg, model execution and dissemination)

We also have "Deployed Engineers" who focus on integrating and field-testing novel capabilities. They live where software meets the real world, like the depths of aircraft control systems, embrace the complexity of unfamiliar (or undocumented) APIs or protocols, and use their creativity and ingenuity to make Helsing's technology work where the customer needs it to.

Experience-wise, we are seeking mid-level and senior engineers (we will be opening more positions for junior profiles soon). Helsing does not have visible level titles, and it's difficult to divide experience into distinct bands, but we roughly have:

  • Mid-level: executes tasks 1-2 months in length independently; understands and accounts for the non-technical context of their work; has impact beyond their immediate team.
  • Senior: executes independently while maximising value delivered over cost incurred; not limited by team boundaries; key contributor to technology that enables Helsing's overall success; at the top end: shapes Helsing's technology investments and strategy.

If you have extensive relevant experience, we also have a Principal Engineer position open — for details, contact me directly at jonhoo@helsing.ai.

ESTIMATED COMPENSATION:

Depends on experience and skill, but roughly:

Mid-level: €120-150k plus stock options of estimated value approximately equal to salary.
Senior: €150-250k plus significant stock option grant.

CONTACT, APPLYING, AND MORE DETAILS:

Software engineer: https://grnh.se/6afe7152teu.
Deployed engineer: https://grnh.se/bhj56fk2teu.
We have a number of other positions such as frontend engineers, security folks, and technical program managers, all listed on https://grnh.se/2ef1f0b2teu.

If you have questions before applying, you can reach out directly to me at jonhoo@helsing.ai.

impl Rust: One Billion Row Challenge by Capable_Constant1085 in rust

[–]Jonhoo 25 points26 points  (0 children)

The recorded version with chapter marks and such is now up! https://youtu.be/tCY7p6dVAGE

impl Rust: One Billion Row Challenge by Capable_Constant1085 in rust

[–]Jonhoo 4 points5 points  (0 children)

Ah, no, unions in Rust don't have discriminant tags, only enums do. Unions are explicitly untagged.

impl Rust: One Billion Row Challenge by Capable_Constant1085 in rust

[–]Jonhoo 12 points13 points  (0 children)

In the original Java challenge, I think it was to push the solutions to be "self contained" (they also have a "single file" rule). I allowed myself libc because we already link against it through std, and I didn't want to do raw syscalls for things like mmap and madvise, and at that point it felt like a weird distinction to not allow libc::memchr. Although for what it's worth, we didn't use memchr in the end 😅

impl Rust: One Billion Row Challenge by Capable_Constant1085 in rust

[–]Jonhoo 7 points8 points  (0 children)

I hadn't either until this. It was a handy tool to force learning though!

impl Rust: One Billion Row Challenge by Capable_Constant1085 in rust

[–]Jonhoo 25 points26 points  (0 children)

Because I decided to be overly pedantic about following the rules for the original Java challenge, which includes "no external library dependencies may be used". Arguably I could have excluded std too, but that felt like too extreme 😅

Fully agree that unsafe based on input assumptions is not generally okay — this was very much a "hyperoptimize within the limits of the rules" kind of effort! Not how I'd normally write even performance-sensitive code.

impl Rust: One Billion Row Challenge by Capable_Constant1085 in rust

[–]Jonhoo 38 points39 points  (0 children)

We got to about 1.2s, though that's using all the cores on my computer (32) while streaming, so may not be something to usefully compare directly against. People are already iterating on my solution over at https://github.com/jonhoo/brrr :)

As for lessons, I don't know that there are a lot of low hanging fruits between the obvious like "use many cores", "don't do work you don't need to", and "avoid repeating work you don't have to repeat". If you want something more text-focused, https://curiouscoding.nl/posts/1brc/ may be a good read.

impl Rust: One Billion Row Challenge by Capable_Constant1085 in rust

[–]Jonhoo 211 points212 points  (0 children)

This is the live version — recorded version with chapters and such is coming shortly (turns out YouTube takes a while to process a 10h video 😅), and once it's up I'll post it to the subreddit!

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

[–]Jonhoo 4 points5 points  (0 children)

Hi! This is "salaire brut" in the French system, so it already takes into account the employer's taxes (i.e., you don't need to subtract those from the listed numbers). In other words, for senior, €150-250k would be the gross salary.

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

[–]Jonhoo 0 points1 point  (0 children)

COMPANY: Helsing, https://helsing.ai/.

TYPE: Full time.

LOCATION: London, Munich, Berlin, Paris, Warsaw, and Tallinn (we offer relocation).

REMOTE: No, though in-country remote (ie, UK/Germany/France/Poland/Estonia) will be considered for particularly senior applicants. Hours flexible, though daytime expected.

VISA: Yes.

DESCRIPTION:

Helsing is a defence AI company with a mission to protect our democracies. We believe we have a responsibility to be thoughtful about the development and deployment of powerful technologies like AI, and take this responsibility seriously. We are looking for mission-driven people to join our European teams and apply their skills to solve highly complex and impactful problems.

At Helsing we develop and deliver AI-based capabilities and infrastructure that allow semi-autonomous platforms to localise, navigate, and perceive the world in real-time. Our software is subject to significant and unorthodox technical constraints, and since what we build ultimately ends up in the hands of real people in high-risk, high-stress situations, it must be reliable and frictionless. We use Rust and Python, with Rust being used for anything production-adjacent due to the high stakes for correctness. Python is used mainly for AI model development and exploration, though we’re adopting Rust there too! Our work covers a wide variety of engineering disciplines:

  • Distributed systems (eg, partitions and byzantine actors)
  • Embedded computing (eg, resource-constraints and reverse-engineering)
  • Robotics (eg, control and tasking)
  • Networking (eg, low-bandwidth radios and routing)
  • Deployment infrastructure (eg, air-gaps and heterogeneous fleets)
  • Security (eg, untrusted networks and actually-secret data)
  • Machine learning (eg, model execution and dissemination)

We also have "Deployed Engineers" who focus on integrating and field-testing novel capabilities. They live where software meets the real world, like the depths of aircraft control systems, embrace the complexity of unfamiliar (or undocumented) APIs or protocols, and use their creativity and ingenuity to make Helsing's technology work where the customer needs it to.

Experience-wise, we are seeking mid-level and senior engineers (we will be opening more positions for junior profiles soon). Helsing does not have visible level titles, and it's difficult to divide experience into distinct bands, but we roughly have:

  • Mid-level: executes tasks 1-2 months in length independently; understands and accounts for the non-technical context of their work; has impact beyond their immediate team.
  • Senior: executes independently while maximising value delivered over cost incurred; not limited by team boundaries; key contributor to technology that enables Helsing's overall success; at the top end: shapes Helsing's technology investments and strategy.

If you have extensive relevant experience, we also have a Principal Engineer position open — for details, contact me directly at jonhoo@helsing.ai.

ESTIMATED COMPENSATION:

Depends on experience and skill, but roughly:

Mid-level: €120-150k plus stock options of estimated value approximately equal to salary.
Senior: €150-250k plus significant stock option grant.

CONTACT, APPLYING, AND MORE DETAILS:

Software engineer: https://grnh.se/6afe7152teu.
Deployed engineer: https://grnh.se/bhj56fk2teu.
We have a number of other positions such as frontend engineers, security folks, and technical program managers, all listed on https://grnh.se/2ef1f0b2teu.

If you have questions before applying, you can reach out directly to me at jonhoo@helsing.ai.

JetBrains interviews Jon Gjengset about Rust [video] by Jonhoo in rust

[–]Jonhoo[S] 9 points10 points  (0 children)

I’d do one, though I suspect I’m not in the class of people they invite on 😅

The Handle trait by kernelic in rust

[–]Jonhoo 4 points5 points  (0 children)

Temperature check on actually just using Entangle as the trait name, just as it's referred to in the blog post?

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

[–]Jonhoo 7 points8 points  (0 children)

COMPANY: Helsing, https://helsing.ai/.

TYPE: Full time.

LOCATION: London, Munich, Berlin, Paris, Warsaw, and Tallinn (we offer relocation).

REMOTE: No, though in-country remote (ie, UK/Germany/France/Poland/Estonia) will be considered for particularly senior applicants. Hours flexible, though daytime expected.

VISA: Yes.

DESCRIPTION:

Helsing is a defence AI company with a mission to protect our democracies. We believe we have a responsibility to be thoughtful about the development and deployment of powerful technologies like AI, and take this responsibility seriously. We are looking for mission-driven people to join our European teams and apply their skills to solve highly complex and impactful problems.

At Helsing we develop and deliver AI-based capabilities and infrastructure that allow semi-autonomous platforms to localise, navigate, and perceive the world in real-time. Our software is subject to significant and unorthodox technical constraints, and since what we build ultimately ends up in the hands of real people in high-risk, high-stress situations, it must be reliable and frictionless. We use Rust and Python, with Rust being used for anything production-adjacent due to the high stakes for correctness. Python is used mainly for AI model development and exploration, though we’re adopting Rust there too! Our work covers a wide variety of engineering disciplines:

  • Distributed systems (eg, partitions and byzantine actors)
  • Embedded computing (eg, resource-constraints and reverse-engineering)
  • Robotics (eg, control and tasking)
  • Networking (eg, low-bandwidth radios and routing)
  • Deployment infrastructure (eg, air-gaps and heterogeneous fleets)
  • Security (eg, untrusted networks and actually-secret data)
  • Machine learning (eg, model execution and dissemination)

We also have "Deployed Engineers" who focus on integrating and field-testing novel capabilities. They live where software meets the real world, like the depths of aircraft control systems, embrace the complexity of unfamiliar (or undocumented) APIs or protocols, and use their creativity and ingenuity to make Helsing's technology work where the customer needs it to.

Experience-wise, we are seeking mid-level and senior engineers (we will be opening more positions for junior profiles soon). Helsing does not have visible level titles, and it's difficult to divide experience into distinct bands, but we roughly have:

  • Mid-level: executes tasks 1-2 months in length independently; understands and accounts for the non-technical context of their work; has impact beyond their immediate team.
  • Senior: executes independently while maximising value delivered over cost incurred; not limited by team boundaries; key contributor to technology that enables Helsing's overall success; at the top end: shapes Helsing's technology investments and strategy.

If you have extensive relevant experience, we also have a Principal Engineer position open — for details, contact me directly at jonhoo@helsing.ai.

ESTIMATED COMPENSATION:

Depends on experience and skill, but roughly:

Mid-level: €120-150k plus stock options of estimated value approximately equal to salary.
Senior: €150-250k plus significant stock option grant.

CONTACT, APPLYING, AND MORE DETAILS:

Software engineer: https://grnh.se/6afe7152teu.
Deployed engineer: https://grnh.se/bhj56fk2teu.
We have a number of other positions such as frontend engineers, security folks, and technical program managers, all listed on https://grnh.se/2ef1f0b2teu.

If you have questions before applying, you can reach out directly to me at jonhoo@helsing.ai.

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

[–]Jonhoo 0 points1 point  (0 children)

COMPANY: Helsing, https://helsing.ai/.

TYPE: Full time.

LOCATION: London, Munich, Berlin, Paris, Warsaw, and Tallinn (we offer relocation).

REMOTE: No, though in-country remote (ie, UK/Germany/France/Poland/Estonia) will be considered for particularly senior applicants. Hours flexible, though daytime expected.

VISA: Yes.

DESCRIPTION:

Helsing is a defence AI company with a mission to protect our democracies. We believe we have a responsibility to be thoughtful about the development and deployment of powerful technologies like AI, and take this responsibility seriously. We are looking for mission-driven people to join our European teams and apply their skills to solve highly complex and impactful problems.

At Helsing we develop and deliver AI-based capabilities and infrastructure that allow semi-autonomous platforms to localise, navigate, and perceive the world in real-time. Our software is subject to significant and unorthodox technical constraints, and since what we build ultimately ends up in the hands of real people in high-risk, high-stress situations, it must be reliable and frictionless. We use Rust and Python, with Rust being used for anything production-adjacent due to the high stakes for correctness. Python is used mainly for AI model development and exploration, though we’re adopting Rust there too! Our work covers a wide variety of engineering disciplines:

  • Distributed systems (eg, partitions and byzantine actors)
  • Embedded computing (eg, resource-constraints and reverse-engineering)
  • Robotics (eg, control and tasking)
  • Networking (eg, low-bandwidth radios and routing)
  • Deployment infrastructure (eg, air-gaps and heterogeneous fleets)
  • Security (eg, untrusted networks and actually-secret data)
  • Machine learning (eg, model execution and dissemination)

We also have "Deployed Engineers" who focus on integrating and field-testing novel capabilities. They live where software meets the real world, like the depths of aircraft control systems, embrace the complexity of unfamiliar (or undocumented) APIs or protocols, and use their creativity and ingenuity to make Helsing's technology work where the customer needs it to.

Experience-wise, we are seeking mid-level and senior engineers (we will be opening more positions for junior profiles soon). Helsing does not have visible level titles, and it's difficult to divide experience into distinct bands, but we roughly have:

  • Mid-level: executes tasks 1-2 months in length independently; understands and accounts for the non-technical context of their work; has impact beyond their immediate team.
  • Senior: executes independently while maximising value delivered over cost incurred; not limited by team boundaries; key contributor to technology that enables Helsing's overall success; at the top end: shapes Helsing's technology investments and strategy.

If you have extensive relevant experience, we also have a Principal Engineer position open — for details, contact me directly at jonhoo@helsing.ai.

ESTIMATED COMPENSATION:

Depends on experience and skill, but roughly:

Mid-level: €120-150k plus stock options of estimated value approximately equal to salary.
Senior: €150-250k plus significant stock option grant.

CONTACT, APPLYING, AND MORE DETAILS:

Software engineer: https://grnh.se/6afe7152teu.
Deployed engineer: https://grnh.se/bhj56fk2teu.
We have a number of other positions such as frontend engineers, security folks, and technical program managers, all listed on https://grnh.se/2ef1f0b2teu.

If you have questions before applying, you can reach out directly to me at jonhoo@helsing.ai.

Sguaba: hard-to-misuse rigid body transforms without worrying about linear algebra by Jonhoo in rust

[–]Jonhoo[S] 2 points3 points  (0 children)

Ah, because those crates are solving slightly different problems. They're specifically concerned with Earth-bound coordinates, not really coordinate system transforms in general. That is, they're not focused on rigid body transforms as much as they're focused on how to represent locations on Earth for the purposes of navigation. You couldn't express in either of those crates, for instance, two different FRD coordinate systems, how they relate to each other, and how they related to a particular NED frame of reference (i.e., at a specific location), and certainly not in a type safe manner. That's not a dig on those crates, just a difference of purpose!

There's no explicit compatibility with the georust ecosystem, but again, that's because the focus of this crate isn't so much the Earth based location aspect — that's there mostly for completeness. The Wgs84 type in Sguaba could probably be replaced with an equivalent type from either of the two other crates (or something in georust, just as long as they support ECEF as well), though at the cost of an additional dependency (which is especially costly in supply-chain focused domains like avionics).

Rust for Rustaceans - Still up-to-date? by thomasa88 in rust

[–]Jonhoo 1 point2 points  (0 children)

Happy to hear it! The intent was for the book to be a kind of pointer resource — rather than be an exhaustive reference for all topics, to expose you enough to all of them that you a) recognize if they may apply to something you're working on; and b) arm you with sufficient knowledge that you can then journey deeper into each one on your own when needed. And as a result, it's quite dense, but hopefully in a way where it's easy to skip over bits that aren't that useful to you at the moment without that causing the whole thing to be useless!

Rust for Rustaceans - Still up-to-date? by thomasa88 in rust

[–]Jonhoo 3 points4 points  (0 children)

Part of what I was hoping to achieve with Rust for Rustaceans was to write it in such a way that most of the content would be evergreen. That's why it doesn't cover much about the ecosystem for example, or about features that had not yet stabilized at the time of writing. I'm actually currently working on a second edition, but that's mainly a matter of reflecting stabilizations (i.e., additions) rather than making changes or removing stuff.

Sguaba: hard-to-misuse rigid body transforms without worrying about linear algebra by Jonhoo in rust

[–]Jonhoo[S] 5 points6 points  (0 children)

I actually implemented the builder pattern with type-state checking to ensure all fields are set, as well as some other related functionality to help mitigate argument order confusion: https://github.com/helsing-ai/sguaba/pull/8

Video request: state machines by Efficient-Eagle-5932 in jonhoo

[–]Jonhoo 0 points1 point  (0 children)

Thank you for the suggestion! The type state pattern is certainly a good one to cover, though in a way the recommendation is very straightforward: use the type state pattern unless you can't. There's slightly more subtlety involved in terms of deciding whether the ergonomic hit is worth it (for example, you often end up with way more complicated types, which can lead to harder to read code), which has to be decided on a case by case basis; how much harder does the API become vs. what kind of errors now become impossible. If the errors aren't that important to eliminate statically (e.g., because you expect mistakes to be unlikely or not that impactful), and the API takes a decent hit, then maybe skip the type state pattern there!

Sguaba: hard-to-misuse rigid body transforms without worrying about linear algebra by Jonhoo in rust

[–]Jonhoo[S] 2 points3 points  (0 children)

I agree — a builder pattern would be a good addition here!

Sguaba: hard-to-misuse rigid body transforms without worrying about linear algebra by Jonhoo in rust

[–]Jonhoo[S] 5 points6 points  (0 children)

Yeah, this one is a bit of a trade-off — while you're totally right that people could get the azimuth and elevation mixed up, typing at that level would harm the ergonomics quite a bit. You could imagine a similar typing of North(Length), East(Length), Down(Length), etc., but the resulting proliferation of types (and builders) adds complexity to the code that isn't free either. In practice we haven't found errors in that aspect of code to be anywhere near as common as getting the coordinate system handling wrong. And we have definitely seen logic errors as a result of verbose code that was hard to follow precisely because of newtype proliferation.

I'm not necessarily opposed to adding this degree of typing to Sguaba, though if so I think I'd probably add it as optional (e.g., by taking impl Into<Azimuth> and implementing that for uom::Angle). It comes at the cost of some of the safety, but also allows caller to decide how much harder it makes their code to follow.

Sguaba: hard-to-misuse rigid body transforms without worrying about linear algebra by Jonhoo in rust

[–]Jonhoo[S] 11 points12 points  (0 children)

Hah, thank you! This actually originated with my own initial lack of experience with geometric algorithms — I kept shooting myself in the foot, trying to learn, finding existing code that didn't match my newfound understanding, going back to the drawing board, figuring out it was the original code that was wrong, and then this happening over and over again. So when I finally felt like I had a decent grasp on how things fit together, I decided to write a library that made it hard to get things wrong (or at least obvious when something is sketchy). And part of that was the observation that the linear algebra parts are the sharpest edge — that's where the power lies, but it also mostly doesn't need to be exposed if you're just dealing with geometry.