Solutions to the Biggest Challenges for Developers

Gilad Kahala
11 min readOct 3, 2022

I asked 50+ web3 developers about their biggest challenges and their actions to meet those.

Building great web3 products

We believe that web3 is the future. However, if we want to onboard a billion users into our space, we need millions of developers to support it. This might be the biggest bottleneck for Web3 adoption.

Today, 20–30K developers work in crypto out of ~30M developers worldwide. It means we’re at about 0.1% penetration and still have a long way to go to bring that vision to life.

ChainSafe’s mission is to bring more developers into the tent and make a robust, vibrant web3 a reality. That’s why we talk with builders to get a deeper understanding of what could be the next unlock for web3 adoption.

Over the past several months, we spoke to 50+ web3 developers and asked them about their biggest challenges. In addition, we wanted to know what projects they were working on, their pain points, and how the current developer environment might be improved.

Web3 Developer Problem Ranking

We used Daniel Kyne’s Customer Problem Stack Ranking (CPSR) model to parse through the discovery interviews to get to the root of the issues. You can also follow Shreyas Doshi’s thoughts about this subject here.

Shreyas Doshi’s thoughts about ‘discovering problems that customers care about.’

We collected all the problems mentioned by users and bucketed them into categories, as seen below.

1. Onboarding Users to Web3

Unprompted, 53% of developers mentioned onboarding and UX friction for their end-users as the most complex challenge they face. One user, being so confused about other possible answers to this question, said this is the “most significant pain point by far” and that we should go and solve it for them ASAP.

“The goal is to require no prior knowledge of blockchain concepts to begin playing (i.e., easy, frictionless onboarding for our users).” [Senior Software Engineer @ Crypto Game Studio]

“A while back, we had a client creating a music platform. The problem was that the fans did not know how to use MetaMask. It was disastrous.” [CTO @ Crypto Consulting Firm]

“There is a disconnect between the third-party extension MetaMask and the game. The transaction time is painful, especially when you’re playing the game. You don’t want to wait for 25 seconds before continuing or opening up a booster pack. People bail out when it takes time to connect to a wallet.” [Senior Software Engineer @ Crypto Game Studio]

However, wallets are a “solved problem,” isn’t it? We have multiple options to onboard users and provide them with tooling, including web3auth, Fortmatic, and others. So why aren’t developers using them?

“Oh! I’ve not heard about Web3Auth; let me Google it.”

It seems that there’s an awareness problem. Tool discovery and accessibility are a significant pain for most developers. This was true even for some of our more experienced, professional teams.

How do they deal with it? By taking action and reinventing the wheel. Seasoned web3 devs love challenges and hardships. They’re not going to stop just because something is not perfect, so they create it from scratch.

“I felt like I was making it up along the way, and there wasn’t a Ruby on Rails for making DeFi apps.” [Senior Software Engineer @ DeFi Company]

This problem makes sense considering that the entire space is new and growing exponentially. It’s impossible to keep track of all the latest tools and products around you.

Sure, it’s true for every market segment, but in web3, it’s especially true. So the big takeaway is that onboarding users and UX friction for your customers should be top of mind for anyone building in web3.

What should developers do?

There’s no silver bullet, but before you build from scratch, ensure you’re not missing a premade solution.

Check aggregators and resource lists like:

Here are a couple of blog posts to help get you started:

It’s probably best to build your community with a soundboard or a “web3 rubber duck” — let someone else poke holes in your approach. Where can you find a good community? Look into the next section!

2. Web3 Education and Support

Almost 40% of the responses mentioned how hard it is to ramp up on a new product — no less an entire technological shift — when documentation is missing or incomplete, educational resources are scattered, and support from core teams is non-existent.

“I currently use [X], but they lack documentation — their SDK has not been updated for several months, and there are issues I have to solve myself.” [Software Engineer @ DeFi Company]

“The main packages are not mature — even the popular stuff breaks. For example, (even) Solana got hacked. Think about log4j error but at a massive scale.” [Senior Software Engineer @ Crypto Solutions]

“I was trying to retrieve the user’s balance, but it was difficult because there were no materials or documentation. In web2, there is always something to reference, like a YouTube tutorial to show what you need to do.” [Staff Protocol Engineer @ Blockchain Startup]

Devleoper Experience is lacking, but developers are pushing through

Web3, so it seems, still lacks maturity. And the developer experience is poor.

“The hard part was understanding and going through the paradigm shift of signing and wallets and understanding the mental model of how everything fits together.” [Software Engineer @ ChainSafe]

“We need to have a good UX for smart contract usage. No one thought about the API from a UX perspective” [Head of Engineering @ Crypto Infrastructure company]

Why is that the case? Some say that development in those areas has been falling behind due to a lack of incentives.

“The developers don’t want to maintain packages. The audited companies/protocols/packages are not great. Audits will work for intelligent contracts but are simply not there for packages.” [Blockchain Solution Engineer @ Crypto Consulting ]

But choosing your tech stack in web3 is a big deal!

“For a developer, the ‘vendor lock-in’ problem is huge regarding blockchains. It would be so expensive to switch if it’s even possible. So the question begs: what blockchain should we start with?” [Senior Engineer @ Crypto Solutions]

Web3 is a shared vision of a collaborative and open space, where interoperability and composability are the names of the game. So when web3 protocols and tech stacks lock their developers into a walled garden, how is it different from web2?

As we can see, developers don’t only want better UX for their users; they want it for themselves, too. They want better tools, better documentation, and better everything. They want to bring web2 development practices to web3, minus the baggage.

What should developers do?

Learning in web3 is challenging. Not sure where to turn? You’re not alone. We cannot magically fix documentation issues across the space, but what we can do is recommend getting tied into some communities.

Here are a few good places to start:

If you’re just starting, here’s a framework to help guide you.

3. Web3 Testing

Almost 40% of developers mentioned testing as the most complicated problem. Yet, they need to test — a lot. As a result, a vast portion of their time is spent on use case writing, thinking through scenarios from different angles, and ensuring there are no holes in their software.

There is a saying that software engineers are pessimistic by nature because they need to always think about what could go wrong. This mindset is especially true in web3, which includes smart contract risk and user funds. Therefore, you must take great care to avoid exploits and hacks.

Testing in Web3 is harder

“Testing is the hardest thing. Sometimes it’s complicated to deploy and set up the test suite. It isn’t straightforward because there are a lot of pre-setup and config steps. It takes a lot of time to make the whole thing automatic, and if something changes, the whole setup needs to change again.” [Blockchain Engineer @DeFi statrup]

“Testcase addition is the most time-consuming part. Because smart contracts should have all test cases covered before deployment!” [Senior Blockchain Engineer @ NFT startup]

“Most of the time, you have to develop on testnet. It was hard to get all the tokens and the gas for that purpose.” [Software Engineer @ ChainSafe]

Performance testing

If testing (unit testing, integration testing) in web3 is complex (and it is), performance testing is even more complicated. Many developers dread picking up that 2 am phone call saying that their software crashed due to errors they didn’t anticipate.

For example, how can you compare testnet with mainnet? One has a handful of validators, and the other has >300K. The traffic and the way it operates are entirely different.

“The challenge is performance. Developers are going into testnet, but it’s not the same — every time the state of the blockchain changes.” [QA engineer @ DeFi ]

“We have a lot of metrics measuring testnet performance, but mainnet is a different beast, and things can happen fast.” [Protocol Engineer @ ChainSafe]

There aren’t great tools to help with performance testing, unfortunately (yet). But teams usually will have a playbook: release the software on testnets for about a week and then deploy it to the mainnet quietly before driving traffic through it.

What should developers do?

First, you should test! If you’re not doing any tests today, stop whatever you are doing immediately and test.

Second, find a tool you’re comfortable using, such as:

Here are some great resources about testing:

4. Gas Optimization

Many developers are concerned about gas optimizations for their smart contracts, and 35% mentioned it as their biggest obstacle. In addition, many developers have horror stories about poorly optimized smart contracts costing a lot of gas.

“The hardest challenge I faced was helping a client reduce gas fees who stored their NFTs on-chain.” [Software Engineer @ web3 Agency]

“One of the biggest challenges is figuring out the gas. I spend a lot of time just converting data to human-readable strings — like the numbers I can understand. For example, if you write in your increment counter ‘e++,’ it’s more expensive than ‘++e’ because the program still compiles to an assembly.” [Senior Software Engineer @ NFT Startup]

“The cost of gas for testing depends on the time of day, i.e., in February, it was high on Rinkeby. [Software Engineer @ Blockchain Startup]

Or should I switch to Kovan or some other test network? Or switch to Mumbai because gas prices are even lower on L2s and sidechains?” [Software Engineer @ web3 Agency]

Most teams manage this complication via peer reviews and smart contract audits. They also rigorously test their code by running it on testnets.

~$100M spent on gas fees(!) due to no gas optimizations

What should developers do?

As a developer, you should learn how gas works and what levers you can pull to optimize the gas on smart contracts or elsewhere.

Here are some excellent resources:

5. Debugging

Another time sink for devs is debugging. Many software developers spend 35%-50% of their time on debugging tasks. The lack of tooling in web3 is exacerbating this problem. And a third of developers mentioned this is their prime concern.

“Debugging is the hardest thing. For example, you use the functionality for deployed programs or smart contracts but don’t know where the address exists.” [CTO @ web3 Agency]

“Debugging is still in the early phases — it’s completely different from web2 or web3. In Visual Studio or IntelliJ, you can put the breakpoint. And then your code is running above the breakpoint, and you can go line-by-line. Here, it is like — how? How can you debug your contracts?” [Software Engineer @ NFT Startup]

However, a large portion of developers still uses Print Statements. The saddest thing that a dev can do. They are usually in a rush and want to get their software out. This fact was reported by developers with 1–2 years of experience and 5+ years of experience.

What should developers do?

You should get comfortable with one of the tools below:

Remix IDE is meant explicitly for debugging sessions.

Here are a couple of more resources:

More Web3, More Problems

There are so many more challenges developers face that there’s no chance we could detail them all in one blog. Here are a few honorable mentions.

Governance

“Biggest problem today is governance — it’s the largest one. It’ll bite our tail for a long time. It’s so complex. We have to rethink our revenue stream that comes from smart contracts.” [Head of Product Engineering @ Blockchain Company ]

Mobile Experience

“Every time I want to take part in a pre-sale, I need to go to my desktop. The space is in dire need of better mobile apps and UX.” [Software Engineer @ Crypto Gaming Studio]

Security

“While creating the token and the wallet integration, we had to implement multiple security protocols thoroughly tested to ensure positive and negative scenario handling.” [Senior Software Engineer @ web3 Agency]

Scaling and Dissemination

“We need to centralize infra to make scaling blockchains (and thus producing wider adoption) possible. We have to sacrifice many things along the way to get to mainstream dissemination.” [Staff Engineer @ DeFi Startup]

Sharing Knowledge

“Explaining what I’m doing is the hardest thing. “ [Software Engineer @ Metaverse Startup]

Centralization

“The hardest thing is building things in a decentralized way. Web3 constantly introduces itself as the decentralized web. But only the database / the blockchain is decentralized.” [CTO @ Crypto Startup]

Client Relationships

“Clients don’t typically know what they want/need– they are only aware of what they want to build.” [CTO @ web3 Agency]

The Lack of Community

“I felt like I was the only person. We need more of a developer DAO ecosystem where you can ask folks what to do.” [Software Engineer @ NFT Startup]

Summary

Building a great product on its own is challenging enough. Add crypto to the mix, and it’s genuinely an arduous endeavor sitting at the forefront of a still-in-discovery multi-disciplinary practice.

We must enhance and expand the web3 developer’s experience to build great products. We have learned through this process that much work is still to be done. The tools for web3 builders today are not ideal, but they are changing rapidly.

As a developer, you need to keep track of innovations in the space to create top-notch products. Product thinking for developers is a must; we need to leverage collective knowledge and best practices to bring more developers on board.

To recap, web3 developers are overwhelmed.

UX friction is high. Accessibility to the space is lacking. Developers and other stakeholders want to build better experiences, but their hands are often tied.

Web3 development != web2 development, and there’s a steep learning curve. Developers are looking for better tools or best practices but not always finding them.

ChainSafe aims to onboard the next wave of web3 developers and provides the tools they’ll need. We’re the official maintainers of web3.js and have a suite of products that, among other things, connect Unity games to the blockchain, unlock true cross-chain interoperability, and enable access to decentralized storage via IPFS and Filecoin.

Have thoughts, comments, or questions?

We would love to hear your take and what you think we should do to bring more developers into the space!

You can reach Gilad via Email or this Calendly link.

At the intersection of numerous blockchain ecosystems, ChainSafe occupies a unique position in the web3 space. Our contributions influence core protocol work, and we also have an active hand in creating the tools that define the next generation of web3 builders.

Follow ChainSafe

Website | Twitter | Linkedin | YouTube | GitHub | Discord

Acknowledgments

Thanks to Serena Ho, Cindy Chau, Daniel Choi, Alex Müller, Belma Gutlic, Greg Markou, Jon Roethke, Tim Ho, and Colin Adams for contributing to this article.

--

--