Developer Experience, February 2021

It’s been a month already and it’s time for an update on what the Developer Experience (DX) teams have been working on. Last month I said that our first focus this year was on asking for and acting on feedback from our developer community. That focus remains the same even as we update our developer tools to support the upcoming Beta version of the Internet Computer. Here are three specific examples.

New Hires

DFINITY keeps adding top-notch researchers and engineers. The DX group alone is 20 people working exclusively on developer-facing technologies and represents about a quarter of R&D. Most folks in DX work on a specific project like the Motoko compiler or the DFX command-line interface, but we’re also adding full-stack and front-end engineers to build applications like Cycle Wallets and Governance apps for you. Welcome @kpeacock and Linwei Shang!

Another new position is our first Developer Relations Engineer. We needed someone who can ask the right questions to understand your needs, advocate for you within DFINITY, and even roll up their sleeves to help solve tricky problems. We’re very pleased to welcome @ililic, who joins us from ConsenSys and brings with him plenty of experience in supercharging the growing decentralized app movement.

There are still open positions within DX and across DFINITY R&D, so check them out. Maybe one is right for you.


Okay, this topic is a little controversial but I’m going to dive in. If you read the release notes for DFX v0.6.20, you saw that we may start sending anonymized usage data in the future. It’s enabled by default but is easily disabled.

Our goal is to gather information that helps us quickly identify and fix problems with the SDK. For example, if we release a new version and suddenly we see a spike in compilation errors on Ubuntu then we can immediately jump in to fix it without you having to wonder if maybe it’s just you, asking questions here, or writing up steps to reproduce.

The more information we gather, the more useful it is, but we don’t want to gather so much that people are compelled to disable telemetry because then we’re back to working blind.

We’re starting slow. At zero, actually. We’re sending no data at all today. We’re hoping to add the version of DFX that you’re using first and then an error code (but no error output) after that. Let’s have a conversation.

Candid UI

With all the hype on the future of the Internet Computer, sometimes really great things that have already been released get lost in the shuffle. If you haven’t been paying attention to Candid, it’s time to start.

Candid is a common language for application interfaces on the Internet Computer that enables out-of-the-box interoperability and safe upgrades for your canisters.

Another thing it does is allow us to auto-magically create an admin interface for you, which we call Candid UI. During local development, you can navigate to http://localhost:8000/candid?canisterId=<canister_id> and see all of your canister’s public methods and call them directly. It’s been around for a while but recently got a big facelift. We’d love to know what you think and have put together a survey on the topic.

Finally, I wanted to thank the folks who have responded to my call for feedback last month by documenting their experiences with the Internet Computer so far. The DX team eagerly devours content like blog posts, forum posts, checklists, emails, etc. and turns them into issues in our internal tracking systems. We’ve already addressed three items from @brson 's post last week so keep your eyes on future release notes.