DEV Community

Cover image for Rust: An odyssey of passion
bolubee101 for Rust Nigeria

Posted on

Rust: An odyssey of passion

He just kept going. From one Rust topic to one programming concept, Akin didn’t run out of things to say. It was almost laughable that I had been worried about how the interview would go. A back story is in order. When it comes to rust stories, Akin usually handled the interviews while I put them into writing. As an experienced Engineer and the most fierce Rust Lang advocate to ever grace the surface of the earth, he knew the right questions to ask to set a conversation going on for hours. There was no one better for the job. But now, he was to be interviewed, big shoes to fill. So I asked the most important question in any tech interview - “How did you get into tech?”

“Back in the days of 2go, a Naruto-themed chat room I was a part of held a competition to see who knew the most Naruto trivia”. Rooms were more or less the Whatsapp group chat equivalent on 2go. “The competition was something I heavily participated in. However, I wanted to find out the top players in this Naruto trivia game so, I had this idea to build a website, a leaderboard of sorts on which the participants would be ranked. This Idea led me to research how to build a website. I explored drag and drop no code tools then eventually HTML, CSS and JavaScript. I remember the first time I saw Javascript being used - it was to turn a light bulb on a webpage on or off. While it was just switching between two images, one representing the light being on and the other off, it still felt like magic to me. I ended up not only creating the leaderboard, but also adding a few extra features to my project. People were able to download games and other media. I built the platform using a popular java phone at the time. I was proud of my project until I made a mistake and accidentally deleted the home page HTML code without having a backup. I didn't have version control set up, so I lost my entire project. Although I was disappointed, my passion for coding continued to thrive. I kept learning and exploring on my own, mostly for fun. I even started building a 2D game with Unity and C# with some friends at one point. Most of my learning until then had been done in isolation. But in 2018, I discovered developer communities in school and then things got a whole lot more interesting. Every chance I got, I wrote code. It was fun and exciting. I discovered Rust in… ”.

“So, how did you discover Rust?” Akin was about to answer the next question I was about to ask, So I interrupted him. That’s the problem with passionate people, they don’t need prompts.

“I discovered Rust in 2019. I can't really remember how I found out about it, but I think I was doing some research on the limits of web performance and how to push them at the time. WebAssembly was a common topic in my research, and its cool name aside, the idea of executing binary code on the web really fascinated me (and still does). Yup, that’s how I found Rust. Not only was it fast becoming the go-to language for web assembly, but it was also the most loved language in a StackOverflow survey. At this point, it’s important for me to say something about myself. I’m ultra-passionate. I run on passion. If there is something I don’t have an interest in, it would be almost impossible to see me doing that thing. But if the flames of passion ignite in my heart concerning anything, it spurs me on indefinitely. I can spend hours on whatever it is. Rust was that thing. It was beautiful. I didn’t have any prior systems programming experience, so Rust took me to a world I hadn’t been used to. Memory management, ownership rules, etc were all shiny things. When people talk about how unforgiving the compiler is with the error it throws, while I do understand, I feel like they are missing the point. The Rust compiler is like a guide in a foreign land giving you a tour of all the landmarks which pulls you back when you are about to break a law. It always feels like I’m learning something new.” At this point, I was already pulled into the conversation. Akin is like that…passionate people are like that. They live in their own world and pull unexpecting bystanders into it. This world was intriguing. “What kind of projects did you work on while learning ?” I asked.

“My first project was the game of life from “the rust book.” The second one was an attempt to implement the Huffman compression algorithm in Rust. I had just watched the Silicon Valley TV series in which their main product was a compression algorithm. That got me curious about compression algorithms, and the Huffman algorithm is the basics of the basics when learning compression. It made me learn a lot. Like box pointers. Anyway, I was curious, Rust was this new toy available for me to play with, and it was beautiful. I love Rust.”

“Rust’s popularity hasn’t always been this high. How did you stay dedicated to learning it?” I asked. I was curious. Very few people would stick to learning something that didn’t seem to offer any immediate reward.

“I created a community. Okay, not intentionally. But looking back now, that’s what happened. As you know, I didn’t write Rust at work at the time. I worked as a front-end developer, and Rust was not included among the tools we used at work. All my learning was solely for my personal gain. Learning rust impacted my outlook on software engineering, and it flowed into how I wrote my code for work, and it also flowed into my conversations. I was already involved in other communities, and I talked about Rust so much that I was becoming an annoyance. I didn’t care much though. I just wanted to talk about Rust. Then one day in March 2020, I came across an article on WebGL in Rust Web assembly. It was so well written and easy to understand. When I checked who the author was, I realized he was a Nigerian. Chinedu Francis. He was the first Nigerian I knew who wrote Rust. I stalked him quite a bit. When I say stalk, I meant I watched his talks on youtube and visited his GitHub page. I just wanted to know who this awesome developer was. Eventually, I sent him mail.”

“Wow, did he reply?” I asked.

“He did. Chinedu was really cool. We exchanged a couple of emails for a while till one day he organized a call. It even became a bit frequent. He would talk about what he was working on and I would try to make sense of it. The funny thing I could see was that he knew I didn’t understand all he was saying, so he would explain things very high level using terms and words I could easily grasp. It was so much fun seeing him talk about his work. Seeing someone even more passionate than me was awesome. I was mind blown by his knowledge. Now to the community creation part of my story. On a group chat, during one of my Rust episodes, someone mentioned that they had a friend that had built some cool projects in Rust. I hounded the guy, and he sent me his friend’s number, Miraculous’ number. I messaged Miraculous one day, and we talked for hours. It was beautiful. A while later, another friend of mine introduced me to a friend of his that contributed to Deno lint, Eze. I was ecstatic to be able to talk to more than two people about Rust. I wanted to share this joy, so I created a group chat called Rustaceans for the three of us. We would discuss Rust for hours. It was a haven. Then we began to grow. Miraculous would add someone who wrote or was interested in writing Rust, and Eze too would add someone too. One of the reasons I wanted the group was to have people with whom I could discuss the troubles of learning Rust in the current developer landscape in a country like Nigeria. Software development was very lucrative. But Rust jobs weren’t as much. So it was hard justifying learning a language that didn’t seem to have financial perks. So I needed people with like minds to help encourage each other.”

“All this was online, right?”

“Yes. With the pandemic in place, that was the only option. But that changed in 2021. We met for the first time. And guess what? Chinedu was around. It was our first “meetup”. We booked a hall for our event, an event without a schedule. But it was the most beautiful event I’ve ever been to. We sat there and just talked endlessly - what we love about it, what we are building with it, etc. Then, I didn’t write as much Rust as most Rust developers due to the fact that I’m a front-end developer, but I was happy with Rust being the plaything I write to escape the stress of work. It hurts when you get errors, but it’s fun to write and meeting more people who write it is breathtaking. Everyone was ecstatic. Meeting other people that were equally as passionate was beautiful. I treat the Rust community as more than just a community. I care about it. Just seeing Rust developers Interact was a sight to behold. After the event, I created a Twitter account and that’s how the Rust Nigeria community was born I guess. It’s been fun. We even have a newsletter. One thing that has been consistent in the group is passion. When we were 3, it was there, now we are over 200 and it’s still there, growing. On a side note, in the early days of the chat room, I would often have one-on-one conversations with people before they joined. This wasn't a requirement for joining, but rather a way for me to learn more about them and their passion for Rust. I quickly realized that Rust developers are incredibly passionate about their work, and if you sit down and talk to them about a project they're working on, you could be there for hours listening to their stories. This is why I love the Rust Stories idea - a way to share the passion and excitement of Rust developers with the world.”

“As a frontend developer, how does Rust fit into the list of tools you use?”

“Rust was originally designed as a systems programming language, similar to C/C++. However, it can also be used for front-end development. One way I have used Rust on the front-end is through WebAssembly. I previously worked on a project that involved building a fluid simulation in the browser. This involved implementing physics and mathematical equations. However, in order to create a visually coherent simulation, many iterations with different values needed to be performed. I initially implemented the simulation in JavaScript, and it worked well. However, I decided to try implementing it in Rust to see how it would compare in terms of performance. The difference was significant - the Rust version was able to perform more iterations in a fraction of the time it took the JavaScript version. Here's a link to the fluid simulation I built using Percy, a framework created by Chinedu that enables the use of Webassembly and Rust for building frontend applications. Chinedu's contribution to my Rust journey has been unquantifiable. I currently have the privilege of working with him.”

“I see, in the near future, what do you see yourself doing with Rust, and what would you like for the Rust Nigeria community?”

“In the near future, I see myself continuing to use Rust for a variety of projects and tasks. I am particularly interested in exploring its potential for building high-performance web applications. Working with Chinedu would afford me that. As for the Rust Nigeria community, It’s going to keep growing and thriving, fueled by the passion and dedication of its members.”

This story is based on Akin's experience with Rust.

Top comments (0)