Description
What is bitcoin? How do cryptocurrencies work? What is the blockchain? Preethi Kasireddy, a blockchain engineer, gives us a gentle introduction to the world of digital currencies. She walks us through how it all works, what developers should care about, and how she transitioned from a career in finance to being a blockchain engineer.
Show Notes
Transcript
[00:00:00.28] SY: (Music) Welcome to the CodeNewbie podcast, where we talk to people on their coding journey, in hopes of helping you on yours. I'm your host Saron, and today we're talking about cryptocurrencies. At the time of this recording, Bitcoin is worth over eleven thousand dollars. Bitcoin has gotten so big that I have family members who are not in tech in the slightest, text me and ask, have you heard about Bitcoin? You should invest. But what is Bitcoin, and how is it related to the blockchain? And what's all that got to do with cryptocurrencies? I have no idea. So I invited a guest to help us out.
[00:00:44.29] PK: My name is Preethi Kasireddy, I'm a blockchain engineer, and I'm also an avid blogger and currently I'm starting a new company in the blockchain space, so I'm a founder of that, as well.
[00:00:54.17] SY: She helps us break down the world of digital currencies - what they are, where they come from, how it actually works. After this.
One of the best parts of being a coder is finally being able to bring your passions to life. You have the skills to design, to code, to create the thing you're excited about, and share that passion with the world. And Hover can help you with the first step, of sharing your passion with the world - getting your domain name. They've got a really beautiful and easy to use interface where you can find and register your new domain name in just a few steps. And to give you full control, they separate your domain name from your hosting, so you're never stuck with one service. They keep your domain name safe while giving you the flexibility to use whatever hosting service is best for you. They also give you free "who is" privacy, so your personal information is safe, too. To get started, go over to Hover.com/newbie to save ten percent off your first purchase. That's hover.com/newbie. Link is in the show notes. (Music)
[00:01:53.19] So you describe yourself as a blockchain engineer, which sounds really cool and kind of intimidating and I'm not entirely sure what that is. So let's unpack that- what's a blockchain engineer?
[00:02:06.10] PK: There's different ways of being a blockchain engineer. One way of being a blockchain engineer is you can actually be a core engineer on the protocol, so you can be an engineer for Bitcoin, which is an open-source protocol, or you can be an engineer for Ethereum, which is another open-source protocol. Or you can be an engineer in the sense that you're building applications on top of the blockchain. I would fall into the latter category, so I don't contribute to Bitcoin protocol or Ethereum protocol, but I build applications on top of Ethereum and Bitcoin. So yeah, I can talk about what that even means.
[00:02:35.13] SY: Yes, that is a good place to start, because I'm going to admit right now - I know nothing. So let's start wit protocol, because that's a word that you used a couple times to describe what you do and the different things you could be doing. So when we talk about protocol in this context, what does that mean?
[00:02:50.19] PK: A protocol is essentially just a set of rules that any nodes in the network can use to transmit information. So me and you might have a protocol of how we communicate with each other. So that's what a protocol is - it's just a set of rules. And so blockchain protocol is basically just a set of rules that define how various transactions in the network get broadcast and validated in the network. And what I mean by that is, I think you have to go back to understand what the purpose of blockchain is. So we have something called digital currencies, which for example are Bitcoin, Ethereum, Litecoin, and so forth. The idea behind a digital currency is it's nothing more than digital cash. It's cash that's on the internet. Now, the whole purpose of this internet cash is there's no central party managing and holding this cash for you, instead it's a peer to peer system. So I can send cash to you without any intermediary. Now in a system like this, how do we make sure that, if I send you some money, that it's actually real money, and that I'm not faking that transaction and creating fake money and sending you fake money?
[00:03:55.01] SY: Wait wait, so before we get into that, in non-digital currency, in dollars, we have the bank to do that part for us? The bank is the thing that verifies and says, this is a real dollar.
[00:04:07.08] PK: Yeah.
[00:04:08.11] SY: So the question is what is that for digital.
[00:04:09.04] PK: Let's go back to the olden ways of how you would exchange money. So let's say five hundred years ago, and there's no computers, no banks, nothing. The only way to trade money, I would literally have to hand you the money physically. Now with the modern world, with the digital world, we've created banks and all these online systems to transmit money, and what you're doing is you're trusting some central party to authenticate and make sure that that money is actually yours and it's actually real money. You don't have to trust the other person - the bank does that for you. And in this peer-to-peer technology though, we're like alright, we want to eliminate these banks, we don't want any intermediaries, because they add a lot of inefficiencies, we just want to go back to the peer-to-peer way, because we have the internet now, we can just send money digitally on the internet. But that means that we have to figure out how to make sure that when we're sending money on the internet without an intermediary, it has to be safe, it has to be accurate, it has to be not fake money, and so forth. And that's where the kind of concept of blockchain comes along, and that's why it's so revolutionary, because it creates a system, a consensus system, where people can actually agree on what the truth is without needing a central party. And that's what this protocol is about, the protocol defines a set of rules for understanding what the truth is.
[00:05:24.06] SY: So, how can you do that with a consensus - like, why can't the consensus just be wrong? Is it like I get my ten friends and they all say that I have ten dollars and therefore it is the truth?
[00:05:36.25] PK: I mean, that's a great analogy, it's some version of that, right. Basically what you're doing is, instead of trusting one central party, what you're doing is you're trusting a whole bunch of different people. And these people are called miners. And the idea of a miner is they have all this expensive machinery and there's this algorithm that they can solve, it's called a proof of work algorithm, and they can solve this algorithm that they did some work to validate the transaction. And because they did this work, they expended some effort and they did this work, and they broadcast it to the network and say hey, I did this work and have proof that I did this work, and so you believe based on that this is a valid transaction. And the idea is that you're distributing your trust on this set of miners to do this complex validation process, and then that's how you know the truth.
[00:06:31.26] SY: So can anyone be a miner?
[00:06:34.24] PK: So theoretically, anyone can be a miner. All you need to do is you need to have some computer that's capable of solving this computational algorithm problem. The reality though is, mining is becoming such a profitable thing for people, that they're buying these giant compute machines and running these server farms just to mine Bitcoin, so you, with your little laptop computer at your apartment, are unlikely to compete with these big guys, because they're going to get more answers correctly than you would just being a single computer trying to solve those problems.
[00:07:09.03] SY: Interesting. Ok, so, just to make sure I understand the broad picture so far - I want to give you some digital money, but I need to have - or I guess you need to have a way of validating whether or not I actually have that money and whether or not you have received it from me, so we use some type of protocol, which involves going out to miners and saying hey miners, can you validate that this transaction actually happened.
[00:07:38.28] PK: Yes.
[00:07:39.29] SY. Ok, so those miners go and do this computationally intensive algorithm thing-ma-jig, and they come back and they say, ok, our team of miners have validated that this transaction has happened, therefore you get the money. Is that generally how it works?
[00:07:56.23] PK: Almost. The one slight correction I'd make there is - I want to send money to you. So this is the cryptography part of it - I use public/private key infrastructure to sign my transaction, that's important because that helps you know that this transaction actually came from me, it didn't come from anywhere in the world. Because I signed my transaction with my private key, and the idea behind a private/public key infrastructure is that you don't need to know my private key to know that I signed it. All you need to know is my public key, so you can verify with my public key that I signed my transaction. And if you can verify that then you can know that I'm the owner of that private key. So that's step one - I basically prove that I am who I am. And then I broadcast that transaction, and then the miners are watching for new transactions coming into the network, they see a new one, they grab it, and they put it into something called a block. And the idea of a block is just a group of transactions, that's why it's called blockchain. So let's say there's ten transactions, right, and they all fit into a block based on the size of the transaction, and the miner is like alright, now I have a ten transaction block, I'm going to solve this algorithm, and the first miner to solve the algorithm will broadcast that out to the network and say here, I have a solution. And I'm going to add this block to the blockchain. And in simple terms, whoever's the first one to broadcast and add it to the blockchain, they basically broadcast a new block and the whole network can now see that there's a new block that's been broadcast, and the idea is everyone now has to download the new block and that's the new state of the truth.
[00:09:30.25] SY: Oh, wow.
[00:09:32.23] PK: It's a competition in the end, and there's, miners are actually competing to be the fastest in solving these algorithms, because if they do solve the algorithm, there's actually an incentive where they earn Bitcoin and transaction fees.
[00:09:44.24] SY: Ok, so where does that money come from? Because my transaction to you, or your transaction to me, that's just between the two of us, right? Do I pay an additional fee for that transaction that goes to the miner?
[00:09:59.08] PK: Yes, so you're paying a transaction fee, and most blockchain protocols work such that there's new Bitcoin being mined periodically, and those new Bitcoins that are being mined go to the miners. They not only get the fee, but they also get the fresh Bitcoin that's being mined every time.
[00:10:18.17] SY: Where does the fresh Bitcoin come from?
[00:10:21.28] PK: That's built into the algorithm, so the algorithm is built such that every time there's a new block, there's new Bitcoin minted, and the supply of Bitcoin increases. So let's say today there was a million Bitcoin, by the end of the day, there might be eleven million Bitcoin. Those are not exact numbers at all, but just as an example, but that's because the algorithm defines it such that every time there's a new block, there's something called a block award, and new Bitcoin are mined to serve as that block reward. And that will keep happening until we reach a maximum of twenty-one million Bitcoin.
[00:10:56.15] SY: So did somebody make it, who - where did it come from?
[00:11:00.02] PK: It's literally, basically money that's written in code. There's no physical aspect to it at all. It's all digital, right. So literally someone wrote some piece of code, saying ok, this is the first block, and this block will have this transaction, and this is how much Bitcoin will have in it - it's all just numbers and code. And the creator of it is unknown, in Bitcoin's case, his name is Satoshi Nakamoto, and he came out with a paper in 2008, 2009, and basically was like - here's the protocol for how to do digital cash without trusting any single person, and people got super excited by that paper and they implemented it in code.
[00:11:45.03] SY: So if I wasn't in tech and I wasn't paying attention to the news, and I only knew about Bitcoin what you told me just now, I would think this is a very intricate and elaborate game. And if you told me yeah, this Bitcoin idea is actually worth thousands of dollars, I would think - what in the world? So how did we get from paper to thousands of dollars of value?
[00:12:12.14] PK: I can turn that question around and ask you, right, why do you believe that a piece of paper is money?
[00:12:17.10] SY: 'Cause somebody told me.
[00:12:18.17] PK: Exactly, that's how money works. It's all about what people believe. If you think about gold, it's ridiculous that we value gold so much. What is it useful for? Nothing. There's no utility to gold, we use it as currency. Same with dollars, the reason people in their mind, dollars are so "Real," is because there's some giant government backing it, and so they think that just because the government backs it it's real money, and Bitcoin - there's no one backing it, so it's not real money. Think about it - money's just paper, and the government just prints pieces of paper to create money. And if that's the case, if the government can just print pieces of paper, why can't people without the help of the government, create their own currency and believe in it? Because all that matters for a currency is that people believe in it and are willing to use that as a form of exchanging different types of goods and services.
[00:13:12.05] SY: So conceptually, that makes sense and I agree with you. But I think what makes Bitcoin so fascinating is that unlike our bank system, it didn't that long. To me, there's something different about this that made it really boom and grow so fast. Was there anything that happened or maybe particular people that got involved that helped it get to this height in such a short time?
[00:13:39.05] PK: To be honest, I myself am pretty shocked at how fast things are moving, because like the fact that it's kind of internet money and all of a sudden everyone in the world kind of knows about this - it's crazy when you think about it. There's definitely catalysts. People are starting to realize that hey, the government's not that smart sometimes, or they're not that - sometimes they're doing the wrong things, and we have to put all our trust in the government to manage this giant monetary system and there's a lot of people, we think the government's wrong in a lot of ways. And we think there's a lot of things that they shouldn't regulate, money being one of them. And so if you have people like that, who are so passionate about more individual, sovereign-type of communities, and again, that's all you need, you just need the belief of people, and what you had early on was very, very ideological passionate developers who went along and were like, alright, I'm literally jumping ship and this is going to be the rest of my life. I'm not going to lie, when I joined Coinbase, I worked at Coinbase it was 2016, there was a period where I remember I was like, hey, I'm joining Coinbase, to a few friends, and they were like, isn't Bitcoin dead? So you know -
[00:14:55.01] SY: Yeah, yeah, yeah.
[00:14:55.16] PK: So there were definitely periods where it just kind of died, no one was talking about Bitcoin, no one was talking about digital currency, so it definitely had its low points and I think it will have another low point because right now there's another hype cycle going on. But yeah, I'm pretty surprised at the speed of how fast this is moving and it's kind of exciting, honestly, because it's the first time, this idea is not new. The idea of digital cash has existed since the eighties and scientists have been trying to figure out a way to do this securely over the internet for a long, long time. And now that it's possible it's just crazy that everything's coming together.
[00:15:30.25] SY: And Bitcoin isn't the only cryptocurrency, right? Aren't there like hundreds of different cryptocurrencies as well?
[00:15:35.26] PK: Yes, Bitcoin was a first, and then there were several other alt-coins, which means like they kind of forked the Bitcoin algorithm or they built on top of the algorithm and then created other coins.And then after that period there was a dead lull period in the cryptocurrency space, and then Ethereum came along in 2015, I think. Ethereum is another digital currency and they built their own blockchain from scratch, so that's probably the second most popular cryptocurrency, and after Ethereum came out, one of things that Ethereum really enabled was the ability to build other coins on top of Ethereum, and that's what you're seeing in the ICO craze, where people are basically building a new coin - you can build a new coin on Ethereum with fifty lines of code, basically, and everyone's coming out with their own coin. So that's where you're seeing all the different currencies.
[00:16:33.22] SY: So, when people come out with their own coins - what does that actually mean? Like is it that people are coming out with different currencies, is that what that means?
[00:16:47.20] PK: Yeah, basically. So, a lot of the ICOs that happened last year, they were coming out with new coins, so when I say literally you can create your own coin in 50 lines of code, I actually mean that you can create it in 50 lines of code. And you just say what the total supply of the coins is, you buy these coins and how you mint these coins, and that's it. And then the reason these people is creating these coins is because they're coming out with new ways to use these currencies in their applications. So it's something called a utility token. So an early example is something called Filecoin, and Filecoin, the idea is, it's a coin and the idea is built into this distributive file storage protocol, and the idea is the coin enables you to pay for the storage. So another example is Augur, and Augur is a decentralized prediction markets, meaning you can make bets on future outcomes, and you can use this coin to place bets on these outcomes. They're creating these currencies to exist in new protocols, or new applications.
[00:17:58.24] SY: Ok, so if I made my own coin, then I can use it with my app, basically.
[00:18:05.07] PK: Yes.
[00:18:06.18] SY: To do different transactions.
[00:18:07.24] PK: Or you can just say, look, I'm just creating a new currency - you're trying to make the bet that you can get people to believe in that currency, because again, the only way a currency is valued is if a bunch of people believe in it.
[00:18:18.05] SY: So are there things that make a coin believable, like are there things that push people and encourage people to take it seriously and value it?
[00:18:29.18] PK: There's definitely things, in the sense that if you're coming out with a project and it has its own coin and it has its own currency, there's various ways you can think about why people would believe it. One is, it actually provides you some value - that application actually provides you some value. And using that token gives you access to whatever that application is doing. In that case, people are like, alright, I want this coin because I really want that service and I need to pay for that service using this coin. So that's one way - you have to actually build something that people value and people want to use. The other way to build more value and belief in the coin is to have a strong community. So if you have a lot of people who own this coin, you have a lot of people who are invested in it, right, and they put their money in it to buy this coin and now they have an interest in using this coin and transacting with this coin and wanting it to succeed, and the more people that you have like that, the more likely that people will believe in it and actually use it.
[00:19:31.14] SY: Ok, so if I am a potential coin-maker, and I'm trying to decide is it worth it to create, let's call it, The Saron Coin, for my Saron community - why would I make a coin instead of just have people pay in cash or in dollars? What's the advantage of doing a cryptocurrency for transactions in my platform instead of using money that people already use?
[00:20:02.14] PK: A lot of the times the answer is there is no advantage. But I can think of a few reasons why it might be useful, like for example, one is - whatever platform you use to receive payments, maybe you have to pay fees on those, right. Whereas if you have your own con, you're transacting peer to peer between you and your audience, so you don't have to pay fees. Because there's no middle-man, there's no Paypal, there's no Gumroad, taking the fee for creating those payment rails. So that might be one reason. Another reason might be that - think about how you get credit card points. Why do you care about credit card points? Because they give you access to something, they give you access to a vacation package, they give you access to some flights - so maybe you have this coin, but not only do you allow people to pay you in this coin, but the reason people might want this coin is so they can get access to other things that you're providing, specifically with that coin. So you might provide tutorials with that coin, etc., etc. So if you can create some kind of exchange, goods and services exchange that primarily occur on this token, then maybe you can argue that you need a token, but in that case I think honestly there's really no need for your own coin. Coins are most useful when you're trying to basically align incentives between a group of people. And what I mean by that is in the Bitcoin example, the reason they needed the coin was, when you think about it, they have to incentivize these miners somehow to mine, especially the early miners. When the network was just starting out, how do you convince people to come on, buy all this computer power, and do all these complex algorithms, if you don't reward them. If there's no reward, they're not going to come and do it. And so they needed this token so they could keep printing it and giving it to miners as a reward. They were using it as an incentive system. They were incentivizing the miners using this coin and it benefitted the rest of the community because now they can transact without a middleman. So that's what I mean - usually coins are most useful when you're trying to align incentives between a group of people.
[00:22:10.14] SY: So back then with those early miners, was the idea that they hoped and believed that eventually Bitcoin would be worth so much money and so much in dollars that they could cash in at a later date? Was that the main motivator?
[00:22:32.01] PK: Yes, exactly. And from the very early days, there were definitely exchanges already - I think the value of Bitcoin started at ten cents or something, super small, right? And as a miner you can always check the price of Bitcoin, and you can check that against how much it's costing you to actually mine, and if there's a profit there, there's an incentive to go mine.
[00:22:57.05] SY: So now there's a big incentive, nowadays.
[00:22:58.12] PK: Yeah, it actually is the other way around because before the competition was a lot lower so a lot more people can mine profitably, but now only the very, very giant mining farms are much profitable, whereas the smaller guys are less profitable.
[00:23:18.21] SY: And by mining farms I assume you mean a place with lots of computers and computer power that can do the number crunching, is that the idea?
[00:23:26.00] PK: Exactly - basically people are just buying server resources and putting them in giant warehouses and mining. (Music)
[00:23:35.20] SY: That's amazing. Coming up next - we talk about whether or not digital currencies are the next big thing that developers should care about. We also hear about Preethi's story, and how she learned all of this stuff. After this.
When I learned to code, I was so excited to finally bring my passions to life. I could build things that I really cared about, and share them with the world. And the first step in sharing is getting your domain name. That's where Hover comes in. They've got a really slick and easy to use interface, they've got awesome domain names to pick from, and they separate your domain from your hosting so you have full control and flexibility over your online identity. So go to hover.com/newbie to save ten percent off your first purchase. That's hover.com/newbie. Link is in the show notes.
[00:24:24.15] SY: So as developers I feel like we're always thinking about the future and figuring out what's the next big technical thing I need to learn about. Is cryptocurrency, is blockchain - is that it? Is that one of the things we should be paying attention to? Or do you feel like it's a fad that's going to phase out in a couple of years.
[00:24:44.24] PK: So, if you were in the tech industry you've probably seen these major things, breakthroughs in tech, that always seem like this, right. Think about AI - AI was, it still is, machine learning and AI are such a hot thing, and it's this breakthrough. So there's waves of new innovation happening, and Bitcoin is definitely one of them. The other thing to realize is again it's an experiment. It could actually just not work. So if you're excited by something like that where you're like, hey, if this works it's going to be huge, but there's a chance of it not working as well, and that kind of risk excites you, then yes, I would highly encourage you to look into, or at least understand it, because even if you don't become a blockchain engineer or whatever, at least learning about it teaches you a lot about how the traditional financial system works, economics work, how money works. Should money work the way it works today. Like you start to ask question like huh, why do I believe this paper bill, or how does credit work, or how do banks work - it forces you to ask questions that you might not otherwise think about if you're just not in the space, and I think as an educational experience, at least, it's fun. I wouldn't say that everyone needs to go be a blockchain engineer, because we need other people to do other things as well. We can't have everyone in blockchain, but if the mix or economics, finance, engineering, and politics, basically - if the combination of those four fields interests you, then it's probably worth looking into.
[00:26:20.13] SY: And so you mentioned that, a few times that, that this whole cryptocurrency thing, this Bitcoin thing is one big experiment and it may not work. If it didn't work, what would that look like?
[00:26:32.13] PK: That'd be scary. Well, one, people would lose a lot of money. I'd like to clarify what I mean by it doesn't work - it's not that it won't work because of technology limitations and whatnot, but it might not work just because of society and how we actually adopt it and whether we use it and whether the government lets us use it, and so forth. So far it's been very promising because the government can only do so much when something is so decentralized. They can't go knocking on every people's doors and taking away their Bitcoins for example. That's just not scalable and the government is just not going to be able to do it. So at some point, once it gets big enough, it's almost going to be like ok, it's too big for them to do anything about this. But I think there's definitely going to be short-term hiccups or failures. Like the price of Bitcoin can literally go to, I don't know, two thousand dollars in one day, who knows. And then all of a sudden something happens and everyone loses faith in it. That's kind of what I mean by failure and people getting scared and leaving and so forth. But I'm making my bet that it will work.
[00:27:41.13] SY: So going back to your earlier description of yourself as a blockchain engineer - now that we have a better sense of what blockchain is, and what this whole Bitcoin cryptocurrency situation is about, what do you personally get to do as an engineer working on the blockchain?
[00:27:58.23] PK: It kind of evolved. I was an engineer at Coinbase. Coinbase is a centralized digital currency exchange, it was a web application, and mobile application, so I wasn't doing necessarily core blockchain work there. And then after that I did a lot of game development, where I was providing a lot of smart contracts and providing protocols, and I spent a few months consulting for a company and helping them lead the effort for building a new protocol on Ethereum, so that involved writing smart contracts and to write smart contracts you use a new programming language called Solidity, and it's somewhat similar to Javascript but it's kind of a brand-new language and you have to learn that and then learn all the infrastructure around it, so it's like you're kind of coding on top of the blockchain and creating smart contracts. That's what I do mostly, and now as a founder of a new company in the space, I'm going back, I'm designing a new protocol and application that will exist on the blockchain, and so that involves both protocol code in Go and so forth, and then application code using smart contracts like in Ethereum using something called Solidity, like I said before.
[00:29:10.14] SY: Wow, that sounds like very smart and hard things to do. How did you learn all of this?
[00:29:17.17] PK: I wish I had a better answer than this, but I actually just had to teach myself everything -
[00:29:22.01] SY: That's a great answer, I love that answer.
[00:29:24.08] PK: By just reading - I read code, I read a lot of Wikis, I read code again, I read the Ethereum code base, I just like reading code, was the way I learned it. Now it's starting to get a little bit better in the sense that people are starting to put together tutorials and blog posts explaining this stuff, but I would say that part, in terms of actually teaching people how to code different contracts, I think that part needs to get elevated better because it's quite daunting. I remember when I started, there was no tooling, like it felt like I was coding in the 1980s - no debuggers, no IDs for this stuff - it literally felt like coding in history, or something. But I think it's getting better and I think you're starting to see more tools being built and more people focusing on the infrastructure.
[00:30:20.18] SY: That's such a good point about there just not being as many resources, because something that I love about being a Ruby on Rails developer is that every error I can possibly encounter at this point, someone else has encountered, asked on Stackoverflow or wrote a blog post about, and there's such a high chance that I'm going to have an answer to my question, or a solution to the bug that I've hit, but if you're dealing with a new technology, something that just hasn't been around for that long, I imagine there isn't the same wealth of information -
[00:30:55.29] PK: Literally, nothing. Oh god, when I started, Stackoverflow questions were non-existent. The thing to realize is that protocol is being so actively developed, the things change so fast, so errors you run into, how someone solved it even six months ago, it might be different from how you would solve it today, and so a lot of the Stackoverflow stuff was outdated, it still is outdated. The worst thing is the documentation is just nonexistent, literally nonexistent. So I remember one of these APIs, and I was trying to follow the API and nothing would work, and the API was kind of documented, and I was like huh, and then I looked at the code and I realized that they updated the code but not the documentation, and they were just adding code but never updating the documentation, and so the only way for me to use that API was to actually just read the code. So when you have that kind of tooling, it's really hard to get people into it because it's frustrating. It's not Ruby on Rails where you can Google an answer and kind of get through it.
[00:31:59.12] SY: So if our listeners want to get started on Bitcoin or cryptocurrency, getting into it on a technical level as developers, what are some places where they can start?
[00:32:12.07] PK: I would start by reading the Bitcoin white paper, reading the Ethereum white paper, just understanding what Bitcoin and Ethereum and what blockchain is and I know there are several decent books out there and there's also a lot of blog posts that people are good at explaining this stuff. I wrote a blog post as well called "How does Ethereum work, anyway?" That might be a good way to start. It's a thirty-minute long article, but hopefully once you finish it you'll get an idea of how the blockchain actually works. And once you actually understand the fundamentals, then I would pick a platform - whether it's Bitcoin, Ethereum, or EOS, any blockchain that has decent documentation - I would personally recommend Ethereum, because they probably have the most developer interest, and then just Google how to build in Ethereum for a contract, and I'm sure a lot of this stuff will pop up now.
[00:33:03.21] SY: So I want to talk about you a little bit, because I think your background is very, very interesting. You have a fascinating mix of finance and engineering, you've worked at Goldman Sachs, you've worked at Andreessen Horowitz, you did a bootcamp, you talked about working at Coinbase, now you're a founder. Where did it all start for you?
[00:33:21.27] PK: I would say it started when I was four. So I'm the oldest and my mom, when I was four years old and my little sister was one, she dropped us off in India and she was like, peace, I'm going to med school, you're going to stay with your aunts for a few years until I finish med school. From four to eight we were there, just kind of hopping from different aunts and uncles because no one wants to take care of two other children for too long a time. So I think those were foundational years for me, because as a four year-old, I had to learn how the world works, I had to take care of a one-year-old, and I had to be independent and just figure things out for myself without parents. And that's when I realized that I can mold the world in whichever way I want it to be, it's all up to me, and no one can tell me what to do. And I think I realized that at a really, really young age, and so ever since then I was kind of like an outlier in the sense that every rule there was, I would always question it. I would be like, is that what I want? Or is that just a rule because someone told me it was a rule? And then I went to college, I was an engineer there, and then things worked out just because I worked really hard in college and my good grades got recognized and that's how I got into Goldman. After Goldman, I started to build my own network in Silicon Valley. I was in Goldman Sachs in San Francisco, so through that I met a lot of really smart people and ended up at A16Z through a smart person I knew, and then at A16Z - at Andreessen Horowitz - I continued to meet a lot of people in Silicon Valley and just continued to grow my network, and that's how I was able to keep going from there, step by step, by meeting really smart people, working with really smart people, and doing what I want to do. And again, going back to the first principles, anytime I do something, I usually do it because I want to do it, and not because it's a rule or because I have to do it.
[00:35:19.19] SY: So you studied engineering in school, how did you get from the finance, the VC world, back into engineering and back to being technical?
[00:35:30.21] PK: Yeah, when I was at Andreessen Horowitz I was on the investing side, I was on the deal time doing investments. And then I was meeting some of the entrepreneurs and fell in love with the fact that they can code and they can build their own products, and I got a little bit envious. That's when I started to teach myself how to code. I'm not going to lie, I failed many times in the sense that I started some online course, and it would just be - I just wouldn't be interested in it, or I'd be stuck and I'd get frustrated. I remember I was at dinner with my boyfriend and I was like, I really want to learn how to code, but I just can't get into it, I don't know what's wrong with me, I don't think I'm smart enough. And he's like, what are you doing. And I'm like, I'm learning Python, and he's like, go learn JavaScript. And the next day I remember I didn't go to work, I just sat there finishing this ten-hour JavaScript code on Code Academy, I think. And I just got hooked. Eventually I was just falling in love with JavaScript and I was noticing that I was more interested in doing that than doing my day job. And that's when I left A16Z and I joined Hack Reactor, which is a three-month coding bootcamp, and then I spent six months doing independent contract development with a few projects, and then joined Coinbase.
[00:36:45.00] SY: So first of all I just want to say that your story of learning to code for me, specifically, is very, very comforting, because I think a lot of times when we talk about our journeys, we celebrate the starting of it, but we don't always talk about the times where we started and stopped. So it's really encouraging to know that you also had a couple re-starts and now you're here and you're obviously doing amazing, and kudos to you, and thank you for sharing your story with us.
[00:37:14.24] PK: Of course. I think we'd be lying to ourselves, even if we don't admit that we all struggle.
[00:37:20.12] SY: Yeah, yeah, absolutely. So now let's do a few fill in the blanks. Are you ready?
[00:37:24.01] PK: Yep.
[00:37:25.20] SY: Number one - worst advice I've ever received is?
[00:37:28.16] PK: Oh, my mom told me to become a doctor.
[00:37:31.29] SY: Mine too!
[00:37:33.14] PK: There was no way I was going to do that.
[00:37:35.08] SY: Did you ever consider, did you ever seriously consider it?
[00:37:38.21] PK: Yeah, when I was eight years old, because she brainwashed me to feel like, I want to be a cardiovascular surgeon. And then when I got older and in college, I ended up becoming an engineer, and she got so mad at me, and she's still mad at me to this day. She's like, you should've become a doctor, engineering is stupid. She's very traditional and doesn't really understand what software engineering - what we do. She likes it's like IT. So - go with what your heart tells you, not what your parents tell you or anyone tells you.
[00:38:13.28] SY: (laughs). Yeah. Number two - my first coding project was about?
[00:38:16.13] PK: It was when I was at Andreessen Horowitz, and I was trying to solve the problem of entrepreneurs not knowing their metrics, meaning their business metrics. So using D3 and JavaScript and HTML and CSS to build this simple webpage where you can click on a metric and it will show you the formula of how that metric is calculated. So if you click on ARR, it would tell you - ARR stands for Annual Recurring Revenue - it will tell you how that will be calculated using dynamic D3 charts.
[00:38:48.19] SY: Oh, that's awesome. That sounds useful for any business.
[00:38:52.00] PK: Yeah, it was amazing because it was a personal problem I was solving, but it was a project I was using as a way to learn how to code.
[00:38:59.24] SY: Very nice - and how long did it take you to build?
[00:39:01.23] PK: Oh, I remember literally I made an excuse that I can't come to work for a week and I sat at home and built this thing in seven or eight days, literally devoting twelve hours a day and just finished it.
[00:39:13.29] SY: Number three - one thing I wish I knew when I first started to code is?
[00:39:18.09] PK: I wish I was better at finding answers on the internet.
[00:39:25.13] SY: Me too.
[00:39:27.07] PK: I wish I was better at knowing that everyone runs into errors. Reading an error message, I wish I realized how to do that sooner. I would get an error message and it would scare me so much that I would just want to give up. Instead of realizing that, I should just read the actual error message and try to figure out what it says, or at least Google the error message. I wish I just knew that you just have to push through these errors, and that's the only way to solve it, and the fact that everyone runs into them.
[00:39:55.19] SY: Yeah. Oh I love that - I love that a lot.
[00:39:58.14] PK: Yeah, and the beautiful part about reading error messages is that as you become a better and better programmer, you go beyond that, and now you start to look at the stack trace, and you're like - there's so many clues in that error that you should just be using that you can figure out so much just by looking at that and not getting scared and running away.
[00:40:19.09] SY: Mm-hm, absolutely. Well, thank you so much for coming to talk to us about cryptocurrencies and Bitcoin and blockchain and all this fun stuff - do you want to say goodbye?
[00:40:27.24] PK: Thanks for having me, this was awesome, I'm excited for it to come out.
[00:40:31.18] SY: And that's the end of the episode. And that's the end of the episode! So let me know what you think. Tweet me @CodeNewbies, or send me an email, hello@codenewbie.org. If you're in D.C. or Philly check out our local CodeNewbie meetup groups, we've got community coding sessions and awesome events each month, so if you're looking for real-life human interaction, look us up on meetup.com. For more info on the podcast, check out www.codenewbie.org/podcast, and join us for our weekly Twitter chats. We've got our Wednesday chats at 9 PM EST and our weekly coding check-in every Sunday at 2 PM EST. Thanks for listening, see you next week. (Music).
Thank you to these sponsors for supporting the show!