The Stack Overflow Podcast

He went from .NET and VS Code to working on Web3

Episode Summary

Human beings are easily excitable creatures. We pump ourselves full of sugar, and then we crash. The cycle repeats. Now, here we are at a unique moment in Internet consciousness where we’ve experienced multiple crypto winters in addition to the phenomenon known as Dogecoin. Satoshi, wherever he may be, must be #facepalm to the moon. So should we take this stuff seriously—especially those of us who quit our jobs for crypto vaporware? On today’s podcast, we have an open source OG sharing his voice of reason—to show us what’s real in an avalanche of digital nonsense. John DeVadoss spent 18 years as a general manager at Microsoft where he helped build .NET and VSCode, among other things, during the early evolution of what are now widely adopted, even pivotal pieces of technology . So what brought him to blockchain land?

Episode Notes

John explains that Web3 is about the convergence of technology, economics, and social trends.

He elaborates that foundations begin with service-based architecture (SOA), the notion of how to design loosely coupled systems that consist of economic services and components.

He goes on to explain how DeFi represents this thinking of a loose composition of services.

With all of this, blockchain brings together technology and economic incentives into a holistic equation—people contribute because they want to contribute.

Nonsense it is not, says baby Yoda.

Crypto isn’t the end game. It’s a segue along the way.

Follow Ben, Matt, and John.

Learn more about the Global Blockchain Business Council and John’s company, ngEnterprise.

Speaking of awesomeness, we’d like to give a shout out to Stellar Question Badge winner GateKiller for asking a question “How can I get the DateTime for the start of the week?” that has been bookmarked by a hundred people.

Episode Transcription

[intro music plays]

Ben Popper Sourcing, vetting, and hiring the right developers is tough. Well, Turing.com makes it easy. Turing's AI-powered platform combines tens of thousands of machine learning data signals, including tech skills, soft skills, and prior experience for the most deeply vetted developers ready to build for you. Start your no-cost two-week trial at Turing.com

BP Hello, everybody. Welcome back to the Stack Overflow Podcast, a place to talk all things software and technology. I am Ben Popper, Director of Content here at Stack Overflow, and I am joined as I often am by my wonderful colleague and collaborator, Matt Kiernander. Hey, Matt. 

Matt Kiernander Hello!

BP Matt, we have a great guest on today– John deVadoss, who's the Head of Development at NEO Blockchain. Now that sounds very futuristic and Web 3, but he also has a lot of experience as a former Managing Director and General Manager at Microsoft where he worked on things like the .NET platform which we're very familiar with and use at Stack Overflow. So I'm excited for this one because I think we're going to be talking a bit about how to try to bridge the gap between the Web 2 and the Web 3 worlds. 

John deVadoss Oh, certainly. First of all, I want to thank you Ben and Matt. I'm a very big fan of Stack Overflow, I have been for a very long time. It goes back to the early days, as you said, at Microsoft and even maybe earlier. So, truly, truly a privilege to be here. Thank you, gentlemen. 

BP Yeah, of course. John, tell us a little bit about how you got started in the world of software and technology. 

JD Oh, that's a really good question. So folks might not know this, but back in the mid-nineties, long before AI was sexy, long before machine learning was cool, I did my PhD work in machine learning. I grew up in Eastern Africa and there was this fascination with trying to model the cognition of the human mind. And so really I ended up in the world of software because I was looking for ways, tools, models, and frameworks to try to reverse engineer human cognition, which looking back, that was a very lofty goal. I've learned a lot along the way but that was really the motivation then. 

BP Okay. Yes, I know that a lot of folks have worked on machine learning and AI for many years and finally the datasets and the terabytes and the GPUs caught up and some of that stuff started to perform miracles, so very cool that you've been working on that for a while. Tell us a bit about what brought you to Microsoft. 

JD Yes, so working on machine learning back in the mid-nineties in graduate school, there was this –I'll be very candid– kind of losing the fire moment during my PhD when I realized, “Hang on a second. I must be really stupid to assume that I can reverse engineer human cognition.” But I had been working on, like you said, very large datasets, massive amounts of data, and of course things like decision trees, recurrent neural networks and so on. And so working with massive datasets and extremely large parallel processing systems was a natural segue to saying, “What do I do? Clearly this is not going to work for me, so I’ve got to do something to make a living.” And the natural segue was at that point obviously probably the most significant software company in the universe at that time. And that was the segue to beginning my almost two decade journey at Microsoft. You could say, “Well, from AI I went to a PC company.” Yes, however, it was the datasets as you said. Where could I work on massive data processing? And to me at that time, that was kind of the natural tee-off point, if you will.

MK I'm very curious as to within your time at Microsoft, almost two decades, the tech industry moves quite quickly and to have that amount of time at a company you would've seen many, many projects through. And I'm very curious, because of your work with .NET and Visual Studio, and Visual Studio is very much a beloved tool for a lot of software developers. And I was just having a look at the Stack Overflow developer survey, and we have a section where we talk about the most loved versus most dreaded frameworks, and .NET has the third highest ranking under other frameworks and libraries as being the most loved. So I would love to hear briefly your work within Microsoft and .NET and Visual Studio.

JD Certainly, certainly. In fact, I'll tell you. When we began working I led the architecture strategy team and the early sort of design work for .NET long before it was called .NET. In fact at that time we had a code name, it was called NGWS, and folks these days might not even recognize that. But NGWS stood for Next Generation Windows Services, and we also called it Next Gen Web Services because at that point it was the early days of the web. So NGWS really was a mouthful to say and to pronounce and so we kind of ended up with .NET. At that time, .com was the big buzzy theme and so .NET felt like a very natural sort of play on the memes, if you will. So that’s kind of really how .NET happened. And you're right, I had the unique privilege I would say to lead architecture for .NET v1 and v2. And I'll tell you, the most fun though was traveling around the world and in random airports around the world running into people, developers, who knew me. Of course, sometimes I didn't really know them, and they would say, “Man, look, it's pretty cool stuff you guys are building.” That was the most fulfilling part about working on .NET, reaching millions, 10, 15 million developers worldwide, and that cannot be replicated at least thus far anyway. 

BP That's amazing. 

MK I'm working from a WeWork today, and I said I was doing a podcast and he went to a blockchain conference in Vancouver a couple days ago. He was like, “Who are you having on?” And I was just like, “Oh, it's a guy from NEO.” And he was like, “Wait, really? It's John?” I was like, “How does this happen?” But it was quite, to your point, serendipitous.

JD Very small world, yes. But that was just incredible, Matt and Ben. I mean, we didn't know at that time, but obviously as you said, it became one of the most popular, one of the most widely used, and certainly the tools in working on VS .NET obviously before we called it VS .NET. The re-engineering of VS, talking about a legacy code base, I mean VS was really a mess. And maybe I shouldn't be saying it publicly, but at that point anyway it was just this heavy sort of mess, spaghetti code all over, built over 10 plus years and re-engineering it, redesigning it, refactoring it to make it composable, which eventually built the way for VS Code to emerge out of that kind of legacy code base. I mean, those are things that I think as a developer you probably do this once or twice in your professional career, and for me it was again, a true privilege and the learnings were phenomenal. Being able to work with code bases that we realized enterprises, commercial entities, governments, public sector organizations, and again, millions of developers bet their career on. So it was a true privilege, remarkable. 

BP I would love to hear a little bit about you mentioned this is a time when you were thinking about the next generation of Windows and .NET sounded futuristic at the time. One of the things that I loved from your bio was building a business from zero to half a billion in revenue. Talk me through some of those conversations with early adopters. What did you need to get them to buy in on the vision of .NET and where technology was headed? 

JD Yeah, so that's a really good question and I'm glad you asked that. So I'll tell you a secret. In the early days of technology adoption, sometimes there is this perspective that you build something cool and then all of a sudden people just use it. So I'll tell you how these things happened. In the early days of course people said, “Look, I like my visual Basic. I like my visual C++. Why are you giving me something new? Why do I care?” And so we would have to go to these large corporations, the Citigroups, very large governments, and what we began was building the company picnic system. And we would say, “Look, this took you weeks and we could do it in basically a day and a half.” And they said, “Great, this is low risk.” If it breaks, they don’t really care. So that's really how it kind of snowballs. I like the snowball mental model. You pick a clump of snow, you roll it and you roll it, and eventually it rolls up into this massive, massive snowball, and that's rarely how adoption works in the technology space very rarely if at all. The other thing I learned I would say, Ben, is it was a very interesting time in that there was this convergence of technology trends. Obviously there was this big theme of the network as the computer back in the early-2000’s if you remember that phrase from Sun Microsystems and other players. So there was this sense that something big is happening with the web and the internet, but three trends converged. There was this technology trend very clearly which obviously we at Microsoft exploited, we took advantage of it. There was an economic trend as well, because if you remember the phrase ‘the long tail’; this notion of being able to monetize the long tail, of being able to scale and build new and emerging business models was quite alien, so there was an economic sort of dimension. And the third thing was the social dimension where we had more and more young people coming out and saying, “Look, I want to build my own,” and you had this boom in terms of dot-coms and startups. Of course there was a buster along the way, but this convergence of technology, economics, and social trends was kind of magical, gentleman. That's kind of what I learned. I said, “Look, we can talk about cool technology, but cool technology is just one dimension. Unless you get this convergence,” and I feel like today in some sense there is this sort of repeat of this convergence, we are seeing social trends. In terms of society, people, concerns, challenges, we're seeing economic trends. And obviously you're tracking inflation, you're tracking the economic sort of things, the metrics, the numbers, and you're seeing sort of the so-called Web 3 emerge. So I see some parallels to what happened 20+ years ago, and I see patterns. 

BP Yeah, that's awesome. You're talking about what it takes to get adoption, looking out and seeing patterns and transformation. Tell us a little bit about what your new role is and where you see things headed in the development from Web 2 to Web 3.

JD Absolutely. And I'll start off by talking about one theme in terms of looking back and then how it segues into the looking forward. So when we built the .NET frameworks, the ecosystem, the libraries, the tooling, there was one theme, Ben. The theme was loosely coupled systems. Now, of course today we're saying, “Of course. Aha. Duh. What is the big deal?” But at that time, the emergence of SOA –service based architecture– SOA systems, and this notion of how do you really design loosely coupled systems, and how do you build a platform that can enable developers to design and build loosely coupled systems? Now, we had this naive view that the loosely coupled systems and services were not just technology services, but also economic services and components. And as we learned the hard way, SOA and the early days of the cloud, while it was phenomenal in terms of the impact on services and capabilities, it didn't really move the needle in terms of business components and business services. And to me, that is the big ‘aha’. When you look at blockchain platforms and blockchain capabilities, what we thought would happen with SOA really is happening with the blockchain. What do I mean by this? What I mean by this is blockchain platforms, blockchain systems if you will, are really economic computers generally. They are economic computers because for the first time in history we have a stack that intrinsically embeds economic protocols. It has never happened in the history of computing. You can go back through the cloud, the web, SOA, client server, even back to the mainframe days, but they were all plumbing entities, passive computing entities, infrastructure, storage, compute, network, bandwidth, so on, but no economic models. And this is what is challenging I think for the enterprise space to really grock about the blockchain world is that these are economic computers. Now to your point in terms of moving forward, I see two big mega patterns. I see many large entities using blockchains really as decentralized databases at best, and they say, “John, what is the big deal? What is the aha? I could do this with any other regular sort of maybe partitioned or stateless and so on and so forth,” and it’s absolutely true. Because what happens is if they can't see the other side of the coin, i.e. the economic protocols, then you're missing it. And that's what led me to say, “Look, I was able to work on and build this platform used by 15, 20 million developers around the world. However, that was just phase one. We can build these loosely coupled services and components. We could compose them, we could build composable applications, but all at the technology layer.” And so what we are doing as blockchain developers in the blockchain industry is sort of closing the loop and saying, “Developers, these are economic computers.” What we are doing at N3 NEO for example, is to enable developers to build economic components, economic services. So talk about, for example, this notion of DeFi. Well, what is DeFi? DeFi is basically business services, business components loosely coupled, coming together in terms of composition. That's all. Now, you could do this with SOA, but those are technology components. And that is for me the big sort of leap ahead and at the same time also kind of closing the loop if you will, of saying, “This journey of building computing platforms over decades is kind of hitting this very natural milestone of truly reflecting the economic incentives that underlie every system in the world.”

BP Yeah, you make a good point. Open source I think has clearly emerged as the winning model for how to get development done at global scale and how to align yourself with millions of developers who, in this permissionless way, can contribute, but they were contributing to frameworks, platforms, languages. When we talk about contributing to a blockchain, often that means in a sense, like you said, they're building a sort of distributed computing system, a distributed computer, and that especially when it's a sort of native economic unit of the web has some really interesting implications. 

JD Precisely. 

BP Let me pass the hat to Matt and then I'll ask some hard questions about why Web 3 keeps blowing up.

JD Certainly. 

MK I've got a number of questions around the re-architecture of Visual Studio, but we'll keep it to the blockchain stuff for now. For people who aren't familiar with what NEO is doing, Blockchain, DeFi, all that kind of stuff, you mentioned economic protocols a few times. Would you be able to do a quick explainer for people who don't know why this is important within the blockchain space? 

JD Certainly, yeah. I'll give you an example, Matt. Again, probably many of the listeners here come from an enterprise perspective in terms of tools, platforms, and certainly applications. In the world of enterprise software, this notion of aligning IT and business has been an enduring theme, it's been an enduring challenge if you will, for a long time, years, maybe decades. And every year billions of dollars are spent on this notion of how do you align the business goals and the IT systems that you've built and deployed, and why is it a problem? It's a problem because aligning something means it's an overlay. You sort of bring something as an overlay and say, “How do I get these to sync, to mesh?” hence the alignment theme. It's always challenging because there is this gap, this friction, and of course consultants make tons of money trying to help their clients obviously ostensibly with this aligning of IT and business goals. Now, from a blockchain platform perspective, what we are doing, what obviously many others in the blockchain world are doing, is with blockchain platforms this notion of aligning IT and business doesn't exist anymore. It goes away. It's done. Why? Because intrinsically, the fact that you have economic incentives baked into the stack, into the substrate, means that there is no overlay that you have to do to ensure the alignment. You say, “Look, what are the incentives for employees, for vendors, for partners, for the ecosystem, for the supply chain?” And you code those incentives into the blockchain via smart contracts. We could never do this before. So I'll tell you, that is one very clear sort of contrast between the platforms of yesterday and the platforms of tomorrow, because they were divorced. Technology and economics were completely separated. With blockchain platforms, they're one and the same. And this to me is also another reason why the world of enterprise development is still trying to come to terms. It's an alien concept to say, “Now as an IT developer, I have to think about economic incentives. I have to have some understanding of economic incentives.” Otherwise, unless, like I said, you're using it as a database and of course then why bother, right? 

MK So, just with my developer brain ticking along, we've always been taught separation of concerns. And how would you kind of counteract that argument, where in Web 2.0, because it is basically just one large data pipeline that allows for a lot of stuff to be built on top of it, whereas building integrally to blockchain tightly couples together everything. How would you kind of counteract that argument?

JD Wonderful question, Matt. So there's a lot of things we can parse out in terms of your question. So first, you talked about the separation of concerns. We could talk about the separation of concerns as an architect in terms of infrastructure, in terms of physical, logical, conceptual. We can talk about separation of concerns in terms of the core versus the periphery. Core business logic versus maybe security or performance or scalability and so on and so forth. But the one big missing piece there has been how do you reflect the business goals, the economic goals of the entity in terms of the software? And that always happens, sort of like I said, as an overlay, but with people and computers and documents and papers and so on. So here every economic entity fundamentally is based on incentives. We know this. As people we work on incentives. The incentives could be economic, could be social, could be socioeconomic, but fundamentally it’s this notion of incentives. And so trying to embed or overlay incentives on passive plumbing I argue has been the fundamental problem with previous waves of computing platforms. And it's a very big gap if you think about it. Because with economics, obviously every company every three months you submit your reports to Wall Street and your stock goes up or down. So this notion that no more are they an overlay– they are baked in intrinsic core poses new challenges, like you said, in terms of the separation of concerns. How do you? And maybe the way I think about this is the separation of economic incentives from software. Ben to your point, open source contributions obviously this is the fabric of the world today. It's entirely built on, I would say, open source contributions but the incentive model has been broken. It's altruism for the most part. People contribute because they want to contribute, to give back, which is great, but in lacking a coherent intrinsic economic model you're always at risk. We've seen big companies come in and exploit open source technologies for their own benefit. We won't name companies here, but we know the challenges we face in terms of open source capabilities, protocols, and standards. But having an economic model baked in, to me, finally opens the doors. There is transparency. There is no more opacity. And we are still learning. We are still figuring out what does this mean? How do we use this? And I would say in the early days of obviously blockchain and crypto, this notion of crypto and currencies and so on is really more of a lighthouse use case. It's not the end game. The end game for blockchain is not crypto. Crypto is, I would say, a segue along the way, at best maybe a detour. But this notion of economic computing platforms is truly the end game, Matt. That's the way I would say it. And so separating concerns in terms of loosely coupled components, but it would be economic components. That is the big shift. Previously, technology components. We could talk about friction. How do you compose these apps? Now my last comment there would be to look at Bitcoin for example. Is Bitcoin an application? Not really. When you look at past sort of waves of computing platforms, we built applications, websites, they're all applications. But Bitcoin is an institution, Matt. Think about it. It's a self-governing institution. We could not have built something that is a self-governing institution with previous computing platforms. We can do that with a blockchain platform. So I would say to your listeners, think about building institutions and what does it mean and what are the implications?

BP Right. The thing that I see is that having economics built into it intrinsically is very exciting to a lot of people. When I listen to you talk, I remember a conversation we had on this podcast with Chris Dixon, who runs a big fund for a16z investing in crypto, talking about how exciting it is to have this global computer and the fact that it has economics as sort of these web primitives. The flip side, I guess, John, is people, human beings as a species tend to get very overexcited when economics and money are involved. Bitcoin has grown and shrunk and exploded many times, and the recent Web 3 blowup was pretty painful for a lot of people who had left jobs at other places and gone to work for crypto companies. So how do you see folks like yourself and NEO Blockchain weathering this downturn, and how do we build it so that the next time it's a little bit more stable and we can harness the innovation without being burnt by all the speculation? 

JD That's a really good question, Ben. I'm glad you asked the question. I would say there are parallels clearly, looking back to the early days of dotcom and sort of this boom and then the bust. The challenge with booms is it attracts everybody and their uncle who wants to come in and sort of have a role to play, and that's the upside and the downside. And I think the blockchain space is seeing this over the last couple of years in terms of this extraordinary rush in of people, which is a good thing. But at the same time, the flip side of it is, the genesis of blockchain platforms, as you said Ben, goes back to open source and contributions from people unknown, anonymous contributions. I would say, perhaps controversially, that a big challenge, a big problem that the space right now has is too many VCs, too many people. And the ethos of this space really is not about people with money bags coming in and saying, “Look, we're going to go build this.” The ethos of the space really has been cryptography, Ben. Cryptography back through the mid-nineties, late-nineties was a space that people innovated, not because they were looking to make money, but because they were looking to further privacy and sovereignty of the individual. And so I believe that we have lost that fundamentally because of the influx.

BP I do think Satoshi is rolling in his grave or void, or wherever Satoshi spends his time, I think if he saw Wall Street and all the ways that they've taken crypto and blockchain and turned it into this economic instrument of speculation he would be a little bit miffed. I don't think that was the original idea. Alright, we have just a little bit of time left. Matt, I wanted to let you ask, I think our listeners would probably actually love if you had one other VS Code question. I wanted to step back and let you jump in there one more time for the VS heads. 

MK VS Code is something that I've used for many years. As a university student, you're going through the typical IDEs and text editors and a lot of people end up settling on VS Code because it’s fun to use, it looks pretty, the extensions that are offered are fantastic. And I'm very curious going from re-architecting the entire thing, what were some of the key learnings that you had in developing that? I'm very curious as to what were the problems that you were trying to solve, and then any other maybe interesting anecdotes or stories that you have around actually building the thing in the first place.

JD Absolutely. I'll tell you two things in the interest of time. The first one, going back obviously to the annals computing in terms of objects, components, or even functions in terms of Lambda and so on. The thesis was that it had to be loosely coupled at the core, Matt. We had this visual, this mental model we used called fiefdoms and mysteries. It's a very strange historical sort of terminology, but the idea was that you have fiefdoms and mysteries, which basically can relay and communicate and serve to collaborate and compose across the fiefdoms. Why did we use this very strange terminology? Because we wanted to emphasize to everybody across the developer division working on the frameworks and the tools that the lines of separation are truly lines of separation. We cannot leak, the code should not leak, cannot leak in terms of, like you said, separation of concerns, in terms of logic, in terms of data access, visibility. And so really redesigning the tools in VS Code using this fundamental mental model of designing it to be extensible and designing it to not leak and design it in a way because we will not know what tomorrow's components will be. And obviously you can see with the VS Code extensions the amazing work that’s going on in terms of the flourishing ecosystem and beyond. It's remarkable. That's the first one I would say. The second one obviously in terms of learning and of working through was another mental model we would use back in the early days, and I'm dating myself back into even ‘99 and 2000, was this notion, I don't know if you gentlemen ski or if you like to go skiing, either of you?

BP I can handle a skiing metaphor. Yeah, let's do it. 

JD All right. So this notion is that if you're a hiker, you're hiking uphill up a mountain, you have a compass, maybe maps, you plan, you think, it's hard work, maybe sweating, and you finally get to where you want to get to and then you’re kind of like, “Aha, we made it.” But Ben, when you're skiing, you don't have a map, you don't have a compass. That's the last thing on your mind. You're thinking, “Look, I'm here to have fun. I'm going downhill, man. It's fast. It's fluid.” And so this notion of fast, fluid, friction free, and making developing software as much fun and as productive as skiing downhill was a metaphor that drove much of the  .NET work, Matt and also VC Code as well. 

BP I like it a lot.

[music plays]

BP All right, everybody. It is that time of the show. What we like to do is shout out a member of the community– somebody who came on and helped Stack Overflow. So this badge is called the Stellar Question Badge, meaning it's been bookmarked by a hundred users. Awarded to GateKiller yesterday, “How can I get the DateTime for the start of the week?” A lot of people will need to know that when they're getting going on their coding journey, so appreciate it GateKiller. All right, everybody. I am Ben Popper. I am the Director of Content here at Stack Overflow. You can always find me on Twitter @BenPopper. Email us with questions or suggestions, podcast@stackoverflow.com. And if you like the show, go ahead and leave us a rating and a review. It really helps. 

MK I'm Matt Kiernander. I'm a Developer Advocate here at Stack Overflow. You can find me online on YouTube and Twitter @MattKander. 

JD I'm John deVadoss. I lead development of the tooling platform for NEO N3. I serve on the board of the Global Blockchain Business Council. I'm also Co-Chair of IEEE Blockchain Worldwide, and previously spent close to two decades at Microsoft working on enterprise tools and software. So, again, a privilege to be here, gentlemen, and really a pleasure to talk with you at Stack Overflow, which has been obviously for me, something that I have been very fond of and have a spot in my heart for. Thank you. 

BP Awesome.

[outro music plays]