My Rust Story

With #RustReach starting soon I have ran into a few "My Rust Story" posts. My path to Rust certainly is not typical (I studied HR Management in undergrad…).

The journey really started for me back in middle/high school as I was very interested in video games, computers, and how things worked. So with a few friends started a computer repair "business" that serviced the local (Western Pennsylvania) area. By the time my sophomore year of highschool rolled around we had lined up a few of the parents who owned local businesses/churches and were doing some pretty serious consulting/maintenance for our ages (also installing Halo and Half-life 2: Deathmatch on the school's servers...).

By this time, I was not doing a lot of the actual reinstall Windows/MacOS/Linux work. Instead, I coordinated our "employees" (fellow students) and met with other local businesses to help set up websites, computer repair work, or multimedia presentations1

Naturally, when I went to university I picked... Human Resources Management... Despite the logical choice of Computer Engineering. After graduation I started off as a technical recruiter with intentions to complete a Masters degree in tech, and changing jobs as soon as possible!

Fast forward. I have a Masters Degree (Information Technology, with concentration in Networking and Telecommunications) and working as a protocol analyst mostly using Bash, Python, and Java. After I started becoming more successful, I was asked to focus more towards research to modernize a very outdated field. I was really starting to hit a wall with Python performance (VERY large files) and was fairly unhappy with the way we do Java and C++ at work, and I wasn't too thrilled with learning C from scratch without a proper mentor. Rust came on my radar.

Rust 1.2.0 is when I started playing with the language and wrapping my background in Python around lifetimes, the borrow checker2, and compiling. From there I have pretty much devoted all my time to developing in Rust (unless there is a specific use-case for another language, or I have to use Java/C++ to contribute at work).

What I Do With Rust

So that is how I got here! Now, I wanted to mention what I have done with Rust at work and in open source.

Unfortunately, in my current position I deal with a lot of proprietary code locked on an intranet. Yeah, I am one of the nerds that is locked in the basement with no internet or windows (it is always fun to guess what the weather is before you walk outside...).

I was lucky enough to be a part of a trail phase which did bring in the internet next to my desk for a little while and during that short time I was dedicated to get Rust working for me on my Intranet. sparing any technical details I was able to do so. After creating a (mostly) automated process to have an updated rustup and crates.io sadly the internet left again.

Since then I have written and hope to open source a lot of CLI applications dealing with network protocol reverse engineering. I actually hope to get some code exported soon to open source and use for experiments at home!

On the outside I try to contribute in my free time. I really like to follow Servo, libpnet, the CLI-WG, and fd I'm interested in contributing more if you have any network/protocol/cli projects ;).

I also wrote a simple CLI (backed with Amazon S3) file encrypter that sends files to users and awaits for them in a queue Postio.

Why I Stayed

Rust's community really is amazing. I have been lucky enough to attend a few conferences now and the people are a huge draw. I have been to a Python conference as well, but there's just something special about the Rust community that really takes inclusiveness a step up (I mean the #rustreach program is awesome!).

I also think Rust is a great solution to some of our current software's problems (e.g. safe memory for multi-threaded environments). As the embedded community continues to grow true systems-level programming I cannot wait for people to start putting Rust into routers and switches3!


[1]: Yeah, that's right we filmed Softball games for highlight reels!

[2]: Obligatory mention of the borrow checker of course.

[3]: If you’re working on this, I want to know and help!