Exploring the World of Rust Development: Insights from a Confio Developer

Melanie Crouch
Confio
Published in
5 min readJun 26, 2023

Rust Developer Christoph works on Confio’s open-source libraries — cw-storage-plus, cosmwasm-vm, and the standard library (cosmwasm-std); implementing new helpers for contract developers, fixing bugs and improving efficiency are all in a day’s work for him.

I sat down with Chris to find out why he made the transition from web2 to web3, why Rust is his favorite coding language, and what it’s like to work at Confio.

Let’s start with what you did before joining Confio 10 months ago. What did you do?

After completing my university studies, I joined a larger company where I focused on dev tooling. My work mainly revolved around enhancing their IDE by adding new features, plugins, and integrations. I also worked on code-generation tools and wasn’t involved in web development.

Later, I moved on to a web2 company that dealt with both front-end and back-end development. It was a small company with just five people. Unfortunately, I wasn’t particularly fond of the tech stack they used, which consisted of Angular and PHP. PHP, being a scripting language, lacked a rigid type system, making it prone to errors. It lacked a compiler, which made it quite frustrating to work with. I spent two years there and discovered what I didn’t enjoy.

In my second year at the previous company, I started working on some personal projects. One of them involved creating a trading bot that required secure key handling and exploration of various strategies. Since traditional stock markets were highly competitive and earnings reports could have unpredictable outcomes, I turned to the world of cryptocurrencies. This was when I delved into learning Rust.

I immediately gravitated towards Rust because it offered a high-level approach to development while keeping good performance characteristics. The compiler’s error messages are usually helpful, and the language provides a safe environment. Although you sometimes face battles with the Rust compiler because of these safety features, it is often right, and you can always use the “unsafe” keyword as an escape hatch. This allows you to use raw pointers, but it forces you to make this explicit and to think critically whenever you do it. This is why I preferred Rust over delving deep into languages like C and C++, where you can unknowingly write dangerous code.

Recognizing that Rust was the way forward, I began searching for a role where I could further develop my skills. I made the transition from web2 to web3 by joining Confio in September last year.

Have you noticed any significant differences in the mindset or approach to software development in the Web3 space compared to Web2?

Working on contracts in the web3 space shares conceptual similarities with backend work in web2, but with the added complexity of more expensive database access. This requires thinking outside the box to find cost-effective solutions for problems.

When working on cosmwasm-vm, there’s a greater emphasis on safety and reliability compared to what you would typically encounter in a basic web2 project. However, this may not be true for larger web2 projects like those of Facebook or Google.

In cosmwasm-std, meticulous consideration is given to every detail of the API design. Once something is added, removing it becomes extremely difficult, as it would break contract code, so every little detail must be carefully evaluated. This is somewhat similar to what one would find in large web2 projects such as the YouTube API or Facebook API.

How does the concept of decentralization impact the way you build applications?

The actual decentralized part is handled by the cosmos-sdk and Tendermint consensus. As a contract developer, you don’t have to think about it extensively. From a developer’s perspective, it appears similar to building a normal service.

However, the difference lies in the need to find creative ways to express functionality for efficiency and cost reasons. For instance, designing a decentralized exchange (DEX) architecture differs from a traditional order book-based exchange. There are also subtler considerations, like distributing funds among token holders.

What is it like to work here? How does it differ from your previous workplaces?

I really like the fact that we work remotely. It saves so much commuting time that is just wasted. I also like that I can work relatively independently, just meeting occasionally to clarify what to focus on. We have very flat hierarchies, and the teams can decide for themselves how they want to organize their work. I have gotten much more confident in my abilities as a dev and learned a lot about how to coordinate efficiently in a team.

The people who work here are also great; everyone is very supportive.

I have worked in hybrid remote settings before, but they were always companies with a real physical office near me, so that’s still a bit of a change compared to before. I also feel like the work culture is somewhat different. More independent, less stressful.

Are there any particular resources you would recommend to those considering making the transition from Web2 to Web3?

I found it helpful to look at explanations of web3 protocol designs on YouTube. It helped me gain an understanding of why Uniswap works, or more specifically, what incentivizes the liquidity providers to provide equivalent amounts of tokens.

For those who have not yet discovered this language — where should they start?

For those yet to discover Rust, I suggest having a project in mind to work on while learning the language. This approach allows you to learn and stay motivated while tackling challenges unique to your project. Additionally, I recommend reading at least the initial chapters of the Rust language book. It gives a comprehensive overview and is available for free.

Wanna join us?

Are you passionate about rust and eager to make an impact in the world of blockchain technology? Join the dynamic team at Confio GmbH and be part of our exciting journey.

We are actively seeking talented developers like you who are ready to take on new challenges, contribute to open-source projects, and work in a supportive and collaborative environment.

Don’t miss this opportunity to shape the future of the blockchain ecosystem. Reach out to us, and let’s create something extraordinary together!

Join Our Community

Twitter | Website | LinkedIn

--

--