May 2024 Rust Jobs Report Released 🔎

Today’s Issue: Memory-Efficient String Reversal, Effective substring in Rust, and Rust is for the Engine, Not the Game

Rustaceans Editors
Rustaceans
4 min readJun 12, 2024

--

Ferris the crab mascot — Image courtesy of tweedegolf

Hello Rustacean!

Welcome to another edition of the Rust Bytes newsletter. In this issue, we’ll discuss May Rust job report, present a Rust challenge, spotlight an amazing Rust project, and highlight some incredible links of the week.

Welcome to issue 33.

THE MAIN THING

Rust Jobs Report (May 2024)

Just like that surprise free donut at WWDC (looking at you, Apple!), the May Rust Jobs Report is here and it’s bursting with good news.

The Filtra team analyzed the current state of Rust job market — here’s the TL;DR from their May 2024 report.

  • Jobs Galore: Filtra team found a whopping 815 Rust jobs out there — that’s a slight bump despite the usual summer slowdown. Looks like companies are waking up to the power of memory-safe awesomeness.
  • Who’s Hiring? The usual suspects like Amazon, Microsoft, and DataDog are still top dogs, but there are some new players on the block. Big shoutout to Tesla for joining the Rust party.
  • Rust for Everything: From cloud infrastructure to building spreadsheets with WASM (looking at you, Quadratic!), Rust is everywhere.
  • Junior Devs Welcome (Kinda): There aren’t tons of entry-level gigs, but mid-level devs are in high demand. Newbies, don’t despair! Check out some internship programs or consider building your skills in another language first.

Want the nitty-gritty details? Head over to the Filtra blog for the full report.

Share

CHALLENGE: RUST QUIZ❓

Memory-Efficient String Reversal

Write a function named string_reversal in Rust that reverses a given string slice (&str) in-place.

Constraints:

  • The function cannot allocate any new memory on the heap (no String::from or Vec::from).
  • The function should modify the original string slice characters directly.

Expected Behavior:

  • The function should take a mutable string slice (&mut str) as input.
  • The function should reverse the order of characters within the input string slice.
  • The reversal should happen within the same memory location as the original string.

Example:

  • Input: "Rust Bytes!"
  • Expected Output: "!setyB tsuR"

Bonus:

  • Consider handling empty strings and single-character strings appropriately.

Share your solution in the reply and link your code snippet as a Rust playground.

PROJECT SPOTLIGHT 💡

Chroma

Chroma is the AI-native open-source vector database. Chroma makes it easy to build LLM apps by making knowledge, facts, and skills pluggable for LLMs.

Here’s what Chroma offers:

  • Blazing-fast queries with embeddings to enable efficient nearest neighbor searches for your text data.
  • Simplicity at its finest with a concise API with only a few core functions to let you focus on your project, not wrestling with complex code.
  • Flexible embeddings to enable you utilize Chroma’s built-in options, integrate your own custom embeddings, or mix and match for maximum flexibility.
  • Chroma seamlessly integrates with popular tools like LangChain and LlamaIndex, expanding your capabilities.

And if that’s not all, Chroma is Open Source, so no vendor lock-in, just pure embedding power at your fingertips.

AWESOME LINKS OF THE WEEK 🔗

  1. Sumit Datta released dwata — A general purpose, multi-model and multimodal AI Studio.
  2. Adrian Macal wrote about Learning Rust: Bare Threading
  3. Adrian Sampson’s article shows how flattening compiler data structures like ASTs can streamline memory management and give your code a speed boost.
  4. Folkert, from Tweede Golf, wrote about Tock’s binary size. Tock is a powerful and secure embedded operating system.
  5. TEO developers group released TEO, a schema-centered web server framework for Rust, Node.js and Python.
  6. Barrett wrote about Rust is for the Engine, Not the Game. It’s a thrilling read for any game dev.
  7. Adam Harvey wrote 999 crates of Rust on the wall.
  8. Andreas Waidler released lazy_errors — a crate to effortlessly create, group, and nest arbitrary errors, and defer error handling ergonomically. Touche Andreas.
  9. Rust Careers team blogged about How-to compile rust faster.
  10. Wu wrote about Effective substring in Rust.

Do you have a challenging Rust problem or a helpful tip you’d like to share with fellow Rustaceans? We’d be delighted to feature them in a future issue, with full credit given to you. Submit your challenges or tips to us via email.

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:

We sincerely apologize for the slight delay on our end for this issue. We value your time and appreciate your consideration.

That’s all for now, Rustaceans. Have a great week ahead!

John & Elley.

--

--