I’m working from our Palo Alto office this week. I took the opportunity to sit down with Enzo who’s been one of our first engineers. He’s recently traveled to Europe to help at a hackathon that we supported and afterwards held meetups in London and Munich. Join our discussion about how he joined DFINITY and what he did before!
All right. Welcome to another episode of Inside DFINITY. Today I’m sitting here with Enzo, who’s one of our engineers. We are going to talk a bit about what he does for DFINITY, what he did before, but also to talk about the recent event that he had held over in Europe. So, maybe without further ado.
What is it that you do at DFINITY?
Cédric: Enzo, what is it that you do at DFINITY?
Enzo: Thanks so much. I work as a senior engineer here on DFINITY working on the core client infrastructure. So I work on the main repository, that a bunch of packages, that collectively make up the main DFINITY client.
Cédric: Do you want to say a few words about what kind of technology we work with?
Enzo: Oh, gosh, I mean there are so many. I guess I work on work on a little bit of just about everything; actually I work on some stuff on networking, I work a little bit on the storage layer, more recently on the hypervisor, work on some high-level architectural designs for the client infrastructure – a little bit of everything actually.
Cédric: A lot of complicated stuff. One thing that I’ve recently learned is, “What a hypervisor is? It’s basically a program that manages virtual machines. Right? Okay. Cool. And so how did you join DFINITY? What did you do before? And how did you end up working here?
Enzo: Actually before I joined DFINITY I was also working in the cryptocurrency space – working on a cryptocurrency exchange infrastructure and, actually, it’s there where I met Dominic. He and I were working on a project together and he went off to start DFINITY and was really excited by his vision for third-generation blockchain-based computing network, and I decided that that was something I wanted to pursue with him. Oh, yeah.
Third-generation cloud computing infrastructure
Cédric: My next question was going to be, “What is it that excites you about DFINITY?” And you mentioned like the third-generation cloud computing infrastructure. “How would you describe what DFINITY is in a few words?”
Enzo: When I say third-generation, I mean, that there are a lot of properties that we’re looking for in a blockchain that we don’t really see right now. And many of these properties, they somehow sort of trace back to these scalability problems that we hear so frequently about. Here at DFINITY we try to address all of these scalability challenges in a variety of different contexts.
Use Cases of DFINITY Technology
Cédric: What do you think our applications that will most profit from this new-found scalability? What are some use cases of DFINITY technology that you are personally excited about.
Enzo: These are applications that are particularly latency sensitive that right now may not make sense on a network like Ethereum, for example, which has a 15-minute transaction finality;
but they may make a lot of sense on a network like DFINITY, which has a transaction finality right now in just a couple of seconds, less than five seconds right now and that’s when the network is under load. So you can just let your mind wander about what those types of things are.
Enzo: And then, of course, one of the things that I think is the coolest that the application layer is obviously access to this unbiased randomness at every single block height. So, there are lots of cool applications that, you know, require randomness and right now there’s no way, there’s no good way to get that in a way, in which you feel that the randomness is truly unbiased, unmanipulable, and unpredictable. I am pretty excited about that.
Cédric: Do you have any specific applications that, you think, are going to largely profit from this?
Enzo: I guess a lot of people are looking into, you know, casino-type applications. Let us say, like all casino-type applications but there are a lot of people who are having an interest in it. DFINITY happened to be looking at it because it has those specific properties that make it a good platform to develop those kinds of applications.
Cédric: One thing that I’ve wanted to ask earlier is. You mentioned that you joined… or you were already working at a blockchain or crypto startup before or a company before. How did you first hear about crypto? How did you get into the space? And what was it that captured your attention back then?
Enzo: So, it’s sort of working in a more traditional financial services space when I graduated from school with my math degree. I ended up going into algorithmic trading and, then, I got heavily involved in exchange infrastructure; and then, kind of I transitioned from there into a financial market data: building pipelines around that. And, I guess, somewhere just being in the intersection of finance and distributed systems, it’s hard to ignore Bitcoin. Back in, I guess, that would have been mid-2014 time around then. And, it’s hard to ignore all the interest and enthusiasm, and excitement around Bitcoin.
I spent more time looking into that which is how I ended up at this company with Dominic, who I was working on a Bitcoin exchange infrastructure with. From there, there is natural evolution. Obviously, when we were working there we started looking at Ethereum and, then, started looking into beyond the horizon. And that that’s what led us has to be working on DFINITY.
Cédric: We are just about to open our Zurich office. But so far we haven’t had any engineers in Europe, right?! What we helped with a hackathon not too long ago at actually, my home country – Switzerland – unfortunately, I wasn’t there at the time but, I think, you flew over… Maybe you can summarize the event real quick. What happened at that event? What kinds of projects were happening? And, maybe, there’s also something that you learned there.
Enzo: So just responding. The first point is that there are two engineers, you know, in Europe; actually we do have one in London, and one in Munich. They’re just working remotely. So, I think, they’ll be really happy to know as soon as our office gets up and running that they’ll have a place to call home. But, yeah, that said, Zurich is an amazing place, where there’s a lot of interest in and around Haskell, which is the primary language that we used to develop DFINITY.
Enzo: And yet to your point I was over there at Zurich for ZurichHack 2018, which is the largest Haskell hackathon. And there was 400 Haskellers there. So it was amazing for me because I had not actually seen so many Haskellers under the same room before. Lots of fun and, yeah, a lot of interesting projects going on there – some in the blockchain space, some in many other spaces as well though. There are lot of people there for, kind of, are working on some some blockchain-related project. Let’s say, like maybe, there was 60 to 70 percent blockchain which is pretty unbelievable.
Cédric: I know we do a lot of stuff in Haskell as well. Is there anything particular about the language or about functional languages in general that makes them, kind of, a better choice than others? So, anything in the language that sets them up for the blockchain type of applications?
Enzo: I do not know the answer to that question is specific to blockchain. But I will say there are a lot of nice guarantees that you get with using Haskell. GHC, which is the Haskell’s main compiler, does have some really cool features in it that allows you to, sort of, eliminate large classes of bugs that could exist in other languages that they just don’t really arise in Haskell. So, it’s good from that perspective. That said, I mean, that’s you could do it in any language that you want. But there’s something about Haskellers I find to be very elegant too. And when I write Haskell it feels like I’m just writing math equation sometimes; and that comes very naturally to me.
How to get employed at DFINITY?
Cédric: Before we talk about the second event that you were in Europe for, maybe, if there’s someone else out there that resonated what you were just saying and they’re looking to break into the space or even maybe get a job at DFINITY. What’s the best way for them to get in touch with the space and work their way towards a successful career in blockchain or DFINITY?
Enzo: I mean the best way is just to get in contact with, you know, someone who’s working on the core team. First, I would say that you have to solidify what it is exactly that you’re interested in because any one of these blockchain projects really touch every single aspect of computer science – from cryptography to distributed systems, and networking to virtualization, to file systems and storage – I mean, you name it. I mean, there are some, depending on what your area of expertise is, chances that there’s probably a way you could apply that towards blockchain.
I would say to anyone who’s out there: “Don’t feel like you know you’re, somehow, excluded because we really do draw on every single part of computer science as I said. And, just figure out really what it is that you’re most interested in, and see how there’s a need for that in what we’re working on. There’s a lot of information online about that describes the project in a sufficient amount of high-level detail that you should be able to see, where you may fit best in.
Cédric: I think another way to learn more about the project and get in touch with us is always to come to one of our meetups. Beyond acquiring knowledge, you can also acquire one of these cool t-shirts if you’re lucky. Both of us got one. So you also ran a meet-up and when you were in Europe, right, “Where was that? And what was the experience like?
Enzo: It was great. Actually two meetups in fact – one was in London and the other one was in Munich. It’s unbelievable actually just how much interest and enthusiasm you find across Europe for DFINITY. It seems like we’re pretty far away all the way based here in Silicon Valley, but it really is a global project; and it’s good to see that you know we’re having an impact on pretty much every continent, it seems like.
Cédric: Cool! So, maybe one last thought before we’ll show some sequences from that meetup as well. Because I think you really had some really good language explaining DFINITY, and you
made some really cool points so we want to include some footage. But maybe one last question,”is there anything you want to share with the audience? Anything you want them to do or after they see this video?”
Enzo: I mean just make sure that you know all of you guys just keep and keep in contact with us. You know that DFINITY is due to launch, I think, in the next couple of months now. So, there’d be a lot of opportunities for developers in particular who I know are interested in developing new kinds of products and services. I would say to you guys that we worked really hard to create the simplest possible programming model for you guys. And, I think, you guys will be really excited once we, once we have something out there.
And if you want to know when the time has come and the SDK is ready and networks goes live. Then, head over to the DFINITY.org and you find signup forms for, our newsletter and various communities where you can exchange thoughts ideas and also get answers from some of our community members… Alright. And with that, we’ll cut over to Enzo’s meetup. Thanks so much for spending a bit of time with us today.
And we’ll see you soon.
Moderator: Good evening everybody. And a very, very warm welcome to our very first Genesis talks. We are very much thrilled to have Enzo here straight from Palo Alto, who is deep diving
us today in DFINITY – in the project he’s working on.
Enzo: Thanks, thanks so much. I cannot even articulate how excited I am to be here with you guys. I’ve been working on DFINITY for a little over a year and a half now, so it’s really great to see so many people under one room who have the same kind of interest and enthusiasm for the project that I do.
General-purpose computing resource
DFINITY is building a general-purpose computing resource that is shared over the Internet. And so when I say a general purpose, I mean that this computing resource will allow end-users to run applications in the widest variety of application domains. And by shared over the Internet, I mean that the computing resource itself is actually created by a network protocol running over the TCP/IP stack. So, to start with, I mean running any network protocol requires collaborations tree even for HTTP; for example, if the client servers aren’t working together, you don’t get very far. And it’s no different with DFINITY – collaboration is also required. And it’s required to get consensus on the state of its virtual machine after the execution of code or storage of data.
Our important characterization is that, of DFINITY as a computing resource, is that computation and storage is actually proportional to the number of participants, the number of host machines that are actually participating in the protocol, and as more host machines come in to participate, that means that we can do things like install more software on this computer, run more computation, and store more data.
So, as previously stated, we want to be able to run software in the widest variety of application domains; and to run general-purpose software on a general-purpose computing resource you need you need an assembly language that is the build target of general-purpose programming languages. I think most would agree with that. And we have a really nice solution here – and it’s not specific to us – but some of you may have heard of it – but how many people, just by showing your hands, have heard of WebAssembly. Okay… Well, that’s much less than I thought.
I guess, the point here is that all major web browsers – they now understand how to execute this code; whereas, it’s getting everyone on the internet to agree about a new web standard is a really difficult thing to do. So the fact that we have WebAssembly now is actually a huge, huge accomplishment. It is also actually the Assembly language that we use to run computations on DFINITY.
What are some of those huge performance boosts that you get with DFINITY now, and sort of, when you look at the third-generation blockchains. I suppose what DFINITY is probably most well-known for is the transaction, i.e. is bringing down transaction finality by an order of magnitude. So the transaction finality is defined as, “How long does it take in order to, say with overwhelming probability, that a transaction can no longer be reversed.
If I sign that Bitcoin script and I send it off to the network, I know that, maybe some of you have heard, you need six confirmations in order to get to finality. So, six confirmations, ten-minute block time. So an expectation it can take one hour for that transaction to get finalized. Ethereum is much, much faster block time, but the number of confirmations that you need is much higher – 37; and I think it works out to be 10 or 15 minutes, somewhere on that, somewhere around that.
Whereas on DFINITY, it’s a few seconds – less than five seconds right now. Maybe not discussed enough is actually lowering cost of R&D;. I mean there’s a lot of, for a lot of infrastructure – I mean we spend a lot on in terms of people’s salaries, to paying people to actually maintain systems and, with this idea of the Internet computer and having the computer that can, sort of, run this software much more autonomously – arguably, there’s a lot of cost savings there.
There is this notion of a governance mechanism for DFINITY. We just, we call it Algorithmic Governance. So there is a way of, it’s entirely decentralized, of people who are participating in the protocol to actually decide how, how we want to, kind of, move forward and not really have not really allow that control to be passed on to any one specific person or people.
Awesome. Alright. Thank you, guys.