Cloud infrastructure: Dropbox

Wired: “But Go’s “memory footprint”—the amount of computer memory it demands while running Magic Pocket—was too high for the massive storage systems the company was trying to build. Dropbox needed a language that would take up less space in memory, because so much memory would be filled with all those files streaming onto the machine. So, in the middle of this two-and-half-year project, they switched to Rust on the Diskotech machines. And that’s what Dropbox is now pushing into its data centers.”

Read the entire story if you have a couple minutes, it’s a nice read. I love reading about custom infrastructure build-outs because they’re so rare and specialized. The bit I found super interesting and scary at the same time was the transition from Go to Rust in what looks like a move after proving it worked as expected. It seems like that is such a risky thing to do, but still entirely fascinating.

It’s also amazing how fast things change on the backend vs the native client side of things. I’ve been coding professionally for well over 20-years and in that time I’ve developed applications in C, C++, C#/.Net, Objective-C, and Swift. That’s it. In the past few years it feels like new languages are developed every day.

At Agrian we develop native clients on iOS in a mix of Objective-C and Swift, with all new code being written in Swift, and we have a combination of C#/.Net and Ruby on Rails for our backend services, with some new stuff being built in Scala. I know those aren’t what the cool kids use, except maybe for Scala, but they’ve proven extremely reliable. Our deployments are stable and easy to publish and the services continue to churn and chew on new data without issue. Of course we don’t have scale like Dropbox or a lot of the other big players, but it’s been very reliable depending on Ruby on Rails for our particular needs.

By Rob Fahrni

Husband / Father / Developer