Big Tech Leads Rust Hiring, But Smaller Players Join In

Today’s Issue: Unary conundrum, Blazingly Fast Linked Lists, and Your Friendly Neighborhood Reverse Proxy

Rustaceans Editors
Rustaceans
5 min readMay 20, 2024

--

Subscribe to the newsletter on our Substack if you haven’t already!

Hello Rustacean!

Welcome to another edition of the Rust Bytes newsletter. In this issue, we’ll discuss the current state of the Rust job market, spotlight an amazing Rust project, challenge you with a Quiz, and share awesome web links of the week.

Welcome to Issue 26!

THE MAIN THING

Big Tech Leads Rust Hiring, But Smaller Players Join In

The latest Rust Jobs Report by Filtra paints a cautiously optimistic picture of the job market for Rust developers. While the number of job postings dipped slightly from the record highs of the previous month, there’s a crucial counterpoint: the number of companies actively seeking Rust developers actually grew.

This suggests a maturing Rust ecosystem, where established players are solidifying their use of Rust and new companies are recognizing its potential. Big tech giants like Amazon, Microsoft, and Cloudflare remain the dominant forces, capitalizing on Rust’s strengths in performance and memory safety for their complex infrastructure needs.

However, the report also highlights a noteworthy trend — the increasing adoption of Rust by smaller players. This could be the beginning of a broader wave of Rust adoption across various industries, expanding opportunities beyond the realm of large tech companies.

The report further discusses the specific skills companies currently seek in Rust developers. It’s clear that experience is highly valued. Such companies require developers who can confidently build and manage mission-critical Rust services, a task that demands a deep understanding of the language and its intricacies.

This might pose a challenge for junior developers, but it also underscores the importance of continuous learning and skill development.

Looking at the industries utilizing Rust, the report identifies cloud infrastructure, productivity tools, and cryptocurrency as the top users. This aligns perfectly with Rust’s capabilities in developing high-performance, secure applications.

However, the report also identifies an intriguing potential growth area — deep learning infrastructure. Fueled by the ongoing AI boom, this could open exciting new avenues for Rust developers. By leveraging Rust’s strengths in memory management and performance, developers could be instrumental in building the next generation of deep learning infrastructure.

The Rust job market offers a promising landscape for developers seeking both stability and the chance to be at the forefront of technological innovation.

Rust’s growing influence across industries and potential for deep learning applications offer programmers a dynamic and exciting career path. Are you ready to embrace the challenge and learn this in-demand skill?

Share

CHALLENGE: RUST QUIZ❓

What is the output of this Rust program?

A. The program does not compile

B. The program outputs: 44

C. The program outputs: 66

PROJECT SPOTLIGHT 💡

rathole : Your Friendly Neighborhood Reverse Proxy

Ever feel stuck behind a NAT firewall, like a digital prisoner? Well, fret no more! rathole is a lightweight and high-performance reverse proxy for NAT traversal, written in Rust.

Rathole is an alternative to frp and ngrok.

Why rathole?

  • Speedy like a bunny: rathole boasts impressive performance. It can handle tons of connections, offers high bandwidth, and sips memory like a lightweight.
  • Security conscious: No need to expose your precious metals (data) with rathole’s built-in security features. Think secret tokens and fancy encryption protocols (Noise Protocol, anyone?).
  • Hot Reloading: Need to tweak your configuration? No sweat! rathole lets you update on the fly without needing a restart.

But wait, there’s more!

  • Simple to use: Even a networking newbie can get rathole up and running in no time.
  • Runs on various platforms: rathole is versatile and can be your trusty companion on different operating systems.

Rathole is open-source: fork it, experiment, and share your contributions.

AWESOME LINKS OF THE WEEK 🔗

  1. The Rust compiler’s nightly builds on Linux will now use a faster linker by default, significantly reducing compilation times, especially for larger projects.
  2. Rust’s creator, Graydon wrote a deep dive on mutable aliasing and formal verification, but hold on, it’s not your typical snoozefest!
  3. Ferdia McKeogh wrote On Control Flow and Compiling Lots of Rust Quickly.
  4. Gavin Niederman released vexide, an open-source Rust runtime for VEX robots, offering a secure and efficient toolchain for programming VEX V5 systems.
  5. Jordan Kaye authored an article on building a Rust + WASM development environment using Nix.
  6. Luca Palmieri released 100 Exercises to Learn Rust — imagine if Rustlings and the Rust book had a genius baby!
  7. Dmitry Dygalo wrote about Blazingly Fast Linked Lists.
  8. Daroc Alden discusses the introduction of existential types to Rust, highlighting their benefits and potential challenges.
  9. Leonora Tindall wrote Methods Should Be Object Safe.
  10. James released bonk — a simple, yet powerful, CLI application that uses machine learning to detect whether or not an image contains nudity.

RUST QUIZ: SOLUTION

Answer

C. The program outputs: 66

Why?

Unlike some languages, Rust doesn’t have Unary operators for incrementing or decrementing variables. Rust deliberately avoids unary increment (++) and decrement (--) operators for several reasons:

  • Complexity: Unary operators can be confusing due to their dependence on evaluation order. It can be unclear whether the decrement happens before or after the value is used.
  • Clarity: Explicit expressions like (y -= 1) or (y = y + 1) are more readable and less prone to errors.
  • Alternatives: Rust often promotes iterators and functional programming approaches, which can achieve similar results without these operators.

Alternative Approach:

Here’s how you can achieve a similar outcome in Rust using explicit decrements:

fn main() {
let mut y = 6;
y -= 1;
println!("{}{}", y, y);
}

This approach is more explicit and avoids the potential confusion of unary operators.

You can play with the code on Rust Playground.

Share

BEFORE YOU GO 👋

You’re our biggest fans, and we love to see it.

Here are a few ways you can help us spread the word:

That’s all for now, Rustaceans! Until next issue, continue being rusty.

--

--