The Changelog – Episode #271

My Roadmap to Become a Blockchain Engineer

with Preethi Kasireddy


All Episodes

Preethi Kasireddy, a self-employed blockchain and smart contract Engineer, joined the show to talk about why she left the best job in the world at Andreessen Horowitz on the deal team, how she got entrepreneurship envy, the roadmap she laid out in 2015 and where she's at today as an engineer, her excitement for blockchain-based technologies, and why blockchains don't scale.



CircleCI – CircleCI is a continuous integration and delivery platform that helps software teams rapidly release code with confidence by automating the build, test, and deploy process. Checkout the recently launched CircleCI 2.0!

LinodeOur cloud server of choice. Get one of the fastest, most efficient SSD cloud servers for only $5/mo. Use the code changelog2017 to get 4 months free!

Toptal – Hire the top 3% of freelance software developers, designers, and finance experts. Email for a personal introduction.

Notes & Links



Our transcripts are open source on GitHub. Improvements are welcome. 💚

So Preethi, almost two years ago to the day as the time of recording, 11th September 2015, you wrote a Medium post "Why I left the best job in the world." You were at Andreessen Horowitz and you wanted to become an engineer -- uh-oh, I spoiled it... But a very lengthy post, going through a lot of different options. Tell us about that, and why engineering was a draw for you.

Yeah, sure. I guess it would probably make sense to start a little bit even before Andreessen Horowitz to kind of give you a little of my context. I was an engineer in college, but I wasn't software engineering, I was industrial and systems engineering. At the time, I really loved the major and I thought software engineering was basically like a bunch of nerds sitting in front of the computer and just doing really nerdy stuff, whereas like systems and industrial engineering was like you're out in the field and doing really cool systems stuff.

So I had such a wrong perception of what the different engineerings were, just because -- it's sad, but most of the times, before you go to college, you don't really get a good description of what each of these fields are, what the actual real-world job is like.

Where do you think your perception came from? That idea you had - where do you think it originated in your mind?

Yeah, I guess -- my parents are immigrants, so they never really knew it themselves, so they never taught me. It was kind of like this self-taught notion, or something that I just thought was the case just because I observed it. When I visited some of these campuses, for example, when you visit the computer science department, all you see is really nerdy kids walking around with really big backpacks.

[laughs] That's funny.

Yeah, and I felt like I didn't fit into that, even though I was a pretty nerdy person. I kind of have always had this conflicting personality where I was a super-duper nerd and I was really into math and physics, but I also had the social side to me, where I wanted to interact with people. So I didn't wanna just be sucked into this nerd nation.

[00:04:14.24] That's what computer science was to me, for some reason, in college. And engineering itself was like that, but when I did industrial systems engineering, we were kind of cool engineers in school.

[laughs] The cooler nerds.

Yeah. Some people even called it -- the major was like an acronym, ISE (Industrial and Systems Engineering), and they even sometimes called it I'm a Sucky Engineer, or I'm a Snobby Engineer, or something like that, because they thought we weren't real engineers. But we still took very heavy math and physics and all that, and I loved it, but basically I didn't really get a holistic picture of software engineering when I was in college.

When I was a junior in college, I had met someone from Goldman Sachs, and he really liked me and he was like "Hey, you should recruit for us." Long story short, I ended up getting an offer there. I interned there, and then they gave me a full-time job, so by the end of junior year I already knew where I was going in terms of full-time... So I didn't really have an opportunity to explore engineering opportunities after graduating college, because that's where I was going. So that's what brought me up to San Francisco.

Then I pretty quickly realized when I was at Goldman that I didn't wanna be a banker; I didn't wanna do finance, it was just not my thing. I missed being an engineer, I missed really thinking through hard problems, and actually solving problems creatively. Within a year, I decided I was gonna leave, because it's not my thing. There's no point in staying the full two years if I didn't wanna pursue this banking anyway.

Then I was gonna go and join as an engineer at a small startup, and then serendipitously I met a friend who was "Okay, it looks like Andreessen Horowitz is looking for someone for their deal team. You should just reach out and see if they're hiring." I cold-emailed them, and long story short, I ended up getting interviews with them, and three months later I ended up getting an offer there.

I was pretty torn at that time, because as I said, I was trying to go back to engineering, but I got this really amazing offer to join a venture capital firm and be on the deal team and so forth... So I decided to go for it, because I felt like it was a once in a lifetime opportunity, and I did.

I honestly loved it. Life was pretty great when I was at Andreessen Horowitz. My job was basically to meet with entrepreneurs every single day and hear them talk about what they're building, what problems they're solving with the product they're building. It was kind of cool to see them come in with this incredible ambition and drive to build something and change the world. It was up to me and my partners to decide whether we would give them the funding to make that happen.

So it was a very exhilarating job, very emotionally and intellectually challenging, but what started to happen was I started to get envious of the entrepreneurs, and I was like "I wanna be in their shoes." It was so cool to see them being out there building something, and I felt like I was just listening to them and I wasn't doing the same thing.

One of the core theses with Andreessen Horowitz is we always invested in technical co-founders, meaning that the founders should be technical, because if you're building a software company and you don't know software, that's kind of a problem. So a lot of the entrepreneurs we were meeting were software engineers who turned into entrepreneurs. I also wanted to be an entrepreneur, but I also knew that I was missing that skill set of knowing how to do software engineering.

[00:07:59.09] So I was kind of torn, and it was eating me apart over time, and I was like "You know what, I'm just gonna start to learn how to code on the side." So I started with Python; I remember it was "Learn Python the Hard Way" - I picked up that book, I dropped it within two weeks because something didn't click, and I was like "This is too hard. I don't have time, I'm busy with work."

Then a couple months later I got remotivated and tried this online course. And again, I did that for 2-3 weeks and then I dropped it again because I got busy with work and I couldn't really focus on it. It was not clicking to me; it wasn't something I was like "Oh yeah, I wanna go home and do this." It felt like work.

Then I was pretty disappointed in myself, and I kept trying and trying and nothing was working, and I was like "Maybe this just isn't for me. Most of the engineers I meet are super passionate about it, this is what they do day in, day out. It doesn't sound like I'm that interested in this, so maybe software engineering isn't for me.

Then my ex-boyfriend at the time - I was telling him how I'm struggling to pick this up, and he was like "Why are you learning Python? Go learn Javascript." I was like, "What's Javascript?" The next day I remember I didn't go to work. It was like a Friday, I just didn't show up, and I just sat at home and I went through eight hours...

[laughs] Just didn't show up...

I went through eight hours of Javascript on Codecademy. I think they have this 10-hour course, and I just like sat there all day, not doing anything else but going through this, and I was immediately hooked. Something about Javascript just hooked me, and I think it was definitely that immediate feedback that you get with doing something in Javascript, where you can change a CSS thing or change some little HTML element, and you can just refresh the page and see that result right away. It kind of makes you feel like a builder and a creator, and you can let your creativity out with your CSS and HTML and all that.

Something about that really hooked me, and ever since then I just became hooked. I always say this, Javascript was my gateway drug into programming, because I tried Python, it didn't work for me. I tried other stuff, it didn't work for me, but Javascript just clicked. Then I just honestly started devouring this stuff, and it was something I was just doing all the time, anytime I had free time.

It was to the point I remember I was at work one day and doing Javascript, and my boss was like "Are you sure you still wanna work here?" [laughter] At the time, I was considering "Okay, what do I wanna do? I'm really falling in love with coding, but I also have this amazing job." So I was kind of conflicted, and then at the same time I was looking into a few bootcamps, particularly Hack Reactor. I was like "You know what, if I can get into Hack Reactor...", which is like the number one bootcamp, and it's like a three-month thing and you just basically go all out, 9 AM to 9 PM, just doing coding for three months, and then you kind of emerge as like a programmer that's almost ready to be out in the industry... I figured that would be a cool way to jumpstart this process if I really wanted to do it. So I was like "If I can get into that school, I'll consider leaving."

Then I applied, I got in, and then I was like "Okay, so it looks like I am leaving." Then I finally made the decision to leave. In the post I kind of outlined a bunch of other alternatives I did consider. For a long time I considered going back and trying to apply to Stanford or Berkeley and get into the computer science program and do the masters degree, but honestly I talked to a lot of people and what I realized is that computer science, especially if you're doing web development, is a lot less about a degree; you can learn a lot of it on your own... And everyone was like "Teach yourself it. Why would you spend two years in school and spend that extra money? Just go teach yourself it." I was like "I don't know if I can teach myself this stuff", so I was a little bit not sure at the time of that.

[00:11:59.21] Then I talked to people about getting maybe even a PhD, and then I talked to a bunch of academics that I got in touch with, and they were like "No, you don't seem like the academic type at all. You should just go and hack and learn on your own." Everyone kind of gave me the same advice - "Go out and learn it; I don't think you should go back to school." And I was like, "Alright." Then after that I was like "You know what, it sounds like Hack Reactor is the good way to jumpstart this process." It was by no means the end of my education process, but it was like a start, and then I can go on from there. So that's when I decided to leave and join -- and then I did a bunch of hacking on my own, then I went to Hack Reactor. I graduated, and then I did a bunch of hacking on my own again for like a couple months, and then finally joined Coinbase a couple months after that.

As a software engineer?

Yeah, I was a full stack software engineer there.

Awesome. So it seems like perhaps a faster path, and I think you addressed this, because you have the network at Andreessen Horowitz and you have access and close relationships with entrepreneurs and startups who are always looking for talented people. You considered perhaps just like hooking up with a startup that looks like it has a lot of promise and learning on the job? Like taking the job with them... Why did you rule that out as a reason or as a path?

That's a good question. I actually had a bunch of offers from startups that were saying "Hey, you're smart. We're willing to let you learn on the job", but for some reason I had my mind set on Hack Reactor, because I didn't feel completely confident going into the job at that point, when they gave me those offers. I didn't feel like I could go on the job and actually be productive. Even though they were willing to give me the time to kind of learn on the job... I don't know, for me if I wanna go on a job, I wanna kill it, and I didn't feel like I would go on the job and kill it. I felt like I'd go on the job and be learning for two months, and then maybe getting good, whereas if I can just independently learn and get to a point where I'm confident in my skills and then join, then I can go to the job and actually add value.

I think it was more of a personal thing. I wanted these 3-6 months of my own time to grow, hack, learn, struggle, all that stuff, before I put myself out there in front of a real software engineering position.

So it sounds like your time at Andreessen Horowitz was -- like you said, you were in front of entrepreneurs, you were on the deal team, you were hearing pitches and you were essentially part of the deciding team to fund somebody's idea or not, and you got that envy. I'm confused if your goal was to build your own company or to eventually get hired as an engineer for somebody's company.

Yeah, that's a good question. I guess I wasn't clear on that. Initially, the goal was to be an entrepreneur, and in fact it still is my goal... But what happened was I just started to fall in love with coding itself. I loved just building software, and I figured, you know what, I truly believe in the idea that the best startups are found from problems and not from wanting to start a startup. So yes, I do wanna be an entrepreneur, but I wanna be an entrepreneur when I come across a problem that I'm really interested in solving. I haven't come across that, so I figured "Until that happens, I'm gonna go be an engineer and just grow my technical skill set as an engineer."

As I'm doing engineering and as I'm just out in the real world, I'll run across problems. One of those problems will be something I wanna solve, and that's when I'll kind of pick that up and do something more entrepreneurial. That was my thinking, and that's why I decided to go and follow one more traditional engineering route.

In fact, the reason I left Coinbase was because I got the entrepreneur bug, so that's kind of the end story of Coinbase.

[00:16:15.29] That resonates with me, especially just the love of the coding. I've never considered myself an entrepreneur; some people have told me I am one. I've always just thought of myself as like a small businessperson, or like a businessperson, but I've never had big aspirations like building a big company, I should say. But doing business is a thing that I go about doing... At the same time, down through the years I've had opportunities to do other things that would take me away from the code - some more, some less - and at the end of the day, when I think about "What's my happiest day of work?", it's like eight hours of software development. Maybe six hours, because it can wear you out quite a bit. Three in the morning, a nice long lunch, and three in the afternoon - that's like a perfect day for me at work.

So you have the entrepreneurial bug, but then you also just fall in love with the actual software development, and I feel like that's something that happens to a lot of people.

Yeah. It's hard, because as I said, I've always had this conflicting thing where I love being with people, dealing with people, understanding people, so I always thought I'd be a pretty good people manager or a public speaker or whatever it is; I love that aspect. But the more you do software engineering, it's just so -- I think the part that we love about software engineering is that it's gratifying because you're constantly learning and you're constantly solving problems, whereas when you're dealing with people, sometimes you just can't solve these problems. They're really hard problems, and it's not as gratifying sometimes, whereas with code there's a meticulous way of how you can solve any problem, and if you can figure that out, it just feels good, in my opinion.

Yeah. There's also slower feedback loops with people, and even with business decisions. Like "Let's try this business opportunity", and you may not know for three months, six months, maybe years, whether or not that was actually a course correction or if you're moving further off course... Whereas with software, especially like you said with that web development, where you're hitting refresh - or I know some of us don't even hit refresh anymore, it like reloads... But I had the refresh so ingrained -- I actually turn off live reload in tools that provide it, because I'm just gonna hit refresh no matter what; even if the page is already refreshed from the live reload, I still hit the button. I just can't stop it.

[laughs] I'm the same.

But that is so immediate. Command+R, I hit it probably 5,000 times a day. It's so immediate, and it's so gratifying to see improvement, or to see the opposite of improvement -- I can't think of the word... Disprovement? I don't know... Things getting worse, and you can course correct. And it's harder with things that are less black and white.

It's easier to control. Software is a little easier to control than, say, the unknowns of business decisions, so to speak... Marketing tactics, or growth strategies, or hiring the right team and enabling the right kind of team to build the right kind of thing, you know? Those are all definitely longer-term pitches so to speak, whereas with software it's a bit easier to control the output.

Yeah, exactly. And I think the other thing with being an engineer - at least for me, what I find really satisfying is seeing it all in growth as an engineer, I find that incredible. I'm able to make certain decisions, tradeoffs that I just wouldn't have known how to do even six months or a year ago, and I love seeing that growth... Whereas in a business situation, it's a little bit harder to say like "Oh, I became a better CEO." Like, how do you measure that?

[00:20:04.23] That's true. So you had that post in 2015, we're almost two years to the day, so it's probably a good time to look back a little bit. You laid out a roadmap when you left Andreessen Horowitz. I have the three-step roadmap, and we're just gonna see how you're doing on that. You mentioned you were at Coinbase and you left because you caught the entrepreneur bug, but let me read this back to you... The first step in your roadmap was to figure out what you like developing the most - front-end, back-end, mobile versus web, and what application areas you find the most interesting: machine learning, artificial intelligence, robotics, computer vision etc.

Step two was get really good at it, and then step three was "Use those skills to change the world. That could mean building a world-changing company, or something else entirely." Where are you, do you think, on that roadmap today, and how do you feel about your progress so far?

That's a really good question. So being at Coinbase gave me an amazing opportunity to experiment with every different area, because I joined as a full stack software engineer, I wrote across the stack - front-end, API, back-end... I wrote in multiple languages, I even tried a little bit of mobile development using React Native, and so I kind of was like -- I was very broad as an engineer. Even on my side projects, I was just naturally curious and just teaching myself a bunch of things, like Typescript, I was teaching myself Elm and functional programming, I was teaching myself more of the React Native stuff at home... So I purposely decided to just like learn as much as I can up until that time, and during Coinbase as well. That gave me a pretty broad view of different areas.

Then after I left Coinbase, I started to also get into some of the more machine learning stuff. I was working at a company that was doing machine learning in NLP, so I really got deep into that for a bit. Then when I left that, I was kind of taking a step back and I was like "All these things... What--" I didn't even think about this actually, I just started to naturally just fall in love with core blockchain stuff. I honestly don't even remember how I got into it. Obviously, I joined Coinbase because I was in love with blockchain, and I can explain why I fell in love with blockchain, but being at Coinbase gave me visibility into the blockchain world.

Then after I left, I was kind of thinking back and I was like, of all of the things I did, I felt like the blockchain stuff was something that kept me interested for the longest, and I decided to just go deeper into that. I've been doing that over the last 6-7 months, and honestly, I've definitely 100% doubled down on blockchain stuff now. So if I had to answer that question, I'm at phase two, where I've kind of figured out what I wanna double down on, and now it's about getting really good at it.

If you kind of followed my blogs, initially they were all about Javascript or the web and so forth... Just general, broad stuff - types, static types etc. Now I'm more narrowing my focus to writing and coding and teaching mostly blockchain stuff, so I think I would say I'm in phase two.

It's interesting to see you in that camp too, given your beginnings. Everyone at Goldman Sachs is probably knee-deep in learning about blockchain and implementing it and doing innovating things to the future of currencies and the future of commerce across the world. I think you said at one point you hated finance, and to some degree -- I mean, blockchain obviously solves a big problem that just simply finance, but that's...

She didn't say she hated finance.

Did she not say "hated"?

No, I did say that.

Oh, okay.

It's so funny [unintelligible 00:23:59.28] When I was at Goldman I was like "Finance sucks; I don't wanna be in finance." [laughter]

"Maybe this sucks. Maybe not yet. Maybe this sucks."

[00:24:12.01] ...and then I ended up at Andreessen Horowitz, which is still finance, and I was like "Why am I still in finance?" Then I ended up at Coinbase, which is a fintech company when you think about it. And then I'm back into blockchain. So I think even though I said I hated finance, I keep ending up there... I don't know what it is.

Maybe the different perspectives of finance. You don't wanna be on the giving people money side, you actually maybe wanna be in the technology side of it. I think the future of digital currencies is pretty interesting, and obviously it's all blockchain.

Is it the Goldman Sachs CEO the one that said that cryptocurrencies are a fraud?

No, that was the J.P. Morgan one.

Okay, J.P. Morgan. I was thinking because Adam said probably people at Goldman Sachs are learning about these things, and I thought of that quote... Basically, the J.P Morgan CEO, or a C-level executive at J.P. Morgan said that cryptocurrencies are a fraud and he would fire any of his traders who are dealing in them for incompetence... Just recently.

So people have different things to say at all times.

I would hope the Goldman CEO is smarter than to say that. It's the most ridiculous thing I've heard.

Yeah, I agree.

It's almost like -- who said something about the iPhone? Somebody prominent said something about the iPhone like day one. Everybody was saying it wouldn't last... It's almost like that. Something so disruptive and innovative, you shouldn't be so bold to say "The future is bleak for that thing." I think it was actually Microsoft; somebody at Microsoft said this."

Balmer laughed at the iPhone.

That's right, yeah.

Yeah, he did, he laughed at it. I can't remember the exact quote, but it looks pretty bad in retrospect. With that being said, like Adam said, a lot of people were laughing at it in positions where they should have been calling an all-hands meeting at their company and changing their current strategy.

It always reminds me of [unintelligible 00:26:20.05] about the iPod... You guys know that one off the top of your head?

Okay, so [unintelligible 00:26:28.12] wrote about the iPod when it was first announced in 2001. This was one of the founders of Slashdot - he said "No wireless, less space than a nomad. Lame." So it's just kind of comparing something brand new to the current state of the market and not seeing the dramatic changes that are happening.

It's just proof that specifications don't define the ability for a product or some thing's ability to do its job well. You often buy a computer potentially on its specs, right? Or something like a camera, or whatever. But it's actually what you can do with it as a creator, as an innovator or as a doer that really matters.



Preethi, you started off in finance, and in a full-circle event, you're very much into finance-adjacent blockchain technologies. You decided that it was very interesting, very important, and perhaps your path to step three in your roadmap, which is to change the world. Tell us again and go into more depth about what got you so excited about blockchain and why you today call yourself a self-employed blockchain developer.

Yeah, sure. That's a great question. I'll be honest, one of the things that I'm always excited by are problems that are not figured out, and blockchain is definitely one of them in the sense that there is this amazing technology that got created, but the actual applications and use cases have yet to be created, and there's so much room for creativity and innovation. I'd say that's one of the main reasons why I'm so attracted to this industry... Because I naturally have the entrepreneurial spirit, I wanna solve unsolved problems, and that's one of the reasons why I'm gravitating to it. But at a more fundamental level, I think the technology itself is super interesting.

I think earlier you were saying how blockchain is interesting as a digital currency... I'd go a little bit further than that and say I actually don't get excited by digital currency per se, because digital currency is just one application of the blockchain. There's so many other applications that I think have potential that haven't been created yet, and I'm more excited about those applications. In my opinion, it's really hard for the current currency system in any nation -- for example, take the U.S. For cryptocurrency or digital currency to replace fiat currency, that would take a lot. The government has a really tight control over the monetary policy and I just don't see what benefits digital currencies provide today that would make people switch over, that would make the government friendly to this, and so forth... Because in the end, what digital currency is - it's completely decentralized, completely open, completely censorship-resistant, which is not something any government really wants.

So for me, I'm more excited by what else blockchain enables. At a fundamental level, blockchain is a decentralized technology where it's maintaining a ledger of transactions or basically state changes, and the state changes are cryptographically secure because they are maintained by something called the consensus process. This consensus process in Bitcoin or Ethereum is called proof of work, where a bunch of miners are there and they run a bunch of complex computations to validate these transactions, and they get paid for validating this blockchain. So the entire chain is decentralized, it's trustless, because there's no need to trust any central party to maintain this database or this ledger, and then it's completely censorship-resistant because you can't have really any central authority trying to censor it... And it's completely secure, because it's cryptographically secure. So with those primitives you can do just so much on top, and that's kind of what I'm excited by.

Now, I know that one of the things about it is the untapped possibilities of things that we can't possibly have imagined yet, but what are some of the starting to be tapped possibilities with blockchain technologies put to good use, that aren't necessarily token-based economies that are starting to pop up, that you see and say "Okay, this is a different use of the blockchain, that will radically change this particular aspect of life"? What are some things, at least on the horizon?

[00:34:23.10] Yeah, I wouldn't completely turn off tokens as a valuable application; I think tokens are incredibly valuable depending on how they're being used. I'm not sure if people are familiar with Ethereum, but Ethereum is a blockchain just like Bitcoin, and one of the things Ethereum makes it super easy to do -- you can do this on Bitcoin too, but Ethereum makes it super easy to create basically alternate currencies, which are what you're referring to as tokens... I think there's a lot of actually interesting use cases for these tokens, which I'm pretty excited by.

For example, there's applications that -- one example is there's the Brave browser, which you might have heard of, which Brendan Eich is working on (Brendan Eich was the creator of Javascript), and they're going to be using a token in their browser to align the incentives of the end user versus the content publishers versus the browser itself, in the sense that unlike Google Chrome, where they take the user data and they sort of sell it to the publishers, and publishers are allowed to monetize on that data and kind of suck eyeballs and attention, but the users don't get really paid for the attention, what Brave is doing is using a token system to align the incentive so that users still give their attention to these publishers, but they get paid for it with these tokens.

Similarly, the user can also choose to pay the content publishers for their quality work if they want to, and then the browser also takes some cut of that. In that sense, tokens can be used to align incentives within an application in a really interesting way that was just never possible before.

It's like all these applications can now have this digital currency that aligns incentives in a certain way in a completely secure, open, trustless manner... Which I think is very interesting.

If we're talking non-token stuff, basically one thing that I've found really interesting recently is I think about a company that's trying to bring basically real-world real estate assets onto the blockchain. Again, the blockchain is just a ledger, so they would basically maintain these assets on the blockchain and allow users to transact on the blockchain to trade these different assets, or buy and sell various portions of these assets, and so forth.

I think that's pretty interesting, if you can just have the entire world's real estate on the blockchain, and it's completely open and you don't need to log into these proprietary real estate systems to figure out how much a certain property costs or how much it costs to [unintelligible 00:37:10.03] and bid it, and so forth.

Yeah, you cut out a lot of middlemen that are currently in our existing systems, which provide really the security, or the risk; they fight the risk problem, but we don't need that because you have a consensus, a mechanism which is providing the legitimacy of the transactions, which is huge and will reduce costs of things and probably put a lot of industries out of business, which you'll have lobbyists fighting against things... So there's lots of large-scale implications of these things being put to more uses. But one of the problems that you've recently written about with putting blockchains to use at scale is that they don't really scale very well. Talk about hard problems that you like, and dealing with technologies that aren't quite figured out yet, this seems like something that a lot more research has to go into, which is how we actually get blockchains to work at scale, because you have a distributed public database, which is append-only, so it just grows and grows and grows... Tell us about that a little bit.

[00:38:29.20] One thing to notice, it's actually not distributed, it's decentralized, meaning every single node in the network creates a copy of the blockchain. Of course, there's light clients which don't necessarily need to carry the entire state, but every fully-operating node carries the entire state. So it's decentralized, which means basically that every single node in the network needs to process every single transaction and maintain a copy of it. That means if you're maintaining a full node, your Mac computer has to contain the entire blockchain since it started, which obviously becomes harder and harder as a blockchain grows. That's why blockchain is hard to scale at a very high level.

Every blockchain that operates in a public, decentralized way have to either make a tradeoff between having low transaction output, or having it be centralized. What I mean by centralized is as the blockchain grows and as the network becomes more and more heavy, as the state becomes heavier, the only way for nodes to be able to process that is if you can beef up your system. So it just becomes -- a smaller and smaller pool of people can actually handle being a fully operating node, and that's why it would become centralized if you don't solve the problem.

So it's like the weakest link problem, where if you have 30 nodes and one of them is a dud, it's gonna slow the whole network down, because that one has to also process all the transactions.

Yeah, exactly.

The blockchain is append-only, right? So you're always putting something on top, you're not going back to the bottom of the stack and changing the bottom of the stack, you're always putting at the top of the stack.

That's right.

So why couldn't you just like -- essentially, in the way databases do it, like shard pieces of it and just put it somewhere else and have it as like archive, or access as needed.

That's one of the solutions that for example Ethereum is looking into right now. The fundamental thing is you need to figure out a mechanism where you can -- let's say you shard, there still needs to be some way such that every node can still validate every transaction, because that's the fundamental premise of a blockchain. Every node should still be able to validate it.

So if you shard it and only make some transactions available to some nodes, then it's not possible for that node to validate every transaction. You have to create a mechanism so that even if you shard, every node is still able to validate the blockchain. That's why it's hard.

Because otherwise you're basically centralizing again, because you say "Well, I have these 13 root nodes that do all the transactions, and the rest of us can have less." Then you're centralized.

That's a tradeoff, right? The premise of the protocol and technology is to be decentralized, right? But to scale, you have to make these hard choices, which could be to centralize some of it.

Yeah. So the underlying thing is that you'd have to figure out where to shard. For the blockchain to scale, you have to--

We're obviously not experts here either, I mean... I'm totally spitballing. [laughter]

Preethi is the expert, we're the laymen here.

Yeah, just for the blockchain to scale -- it's just impossible for it to scale if every node needs to process every transaction. So you still need to have a mechanism where even if you shard, it has to be possible for all the nodes to still trust that every transaction is valid, even though they don't have access to all the transactions. That's hard, and that's why it's been a hard problem to solve.

[00:42:10.15] One of the things with Bitcoin's scalability is Bitcoin also has a blockchain, they have blocks, and they foresaw this problem quite a long back ago (almost three or four years ago). With them, they had two solutions: either increase the size of the block itself, so that you can fit more transactions in a block, and therefore every time a block gets processed, you're processing more transactions in a second, or another solution was to [unintelligible 00:42:44.22] where you basically take the heaviest parts of the transaction and move it to another part of the block that doesn't necessarily have to be calculated in the actual size of the block, so they can still fit more transactions.

So there's short-term solutions like that, but in the long-term I definitely think there's a lot more sophisticated solutions that need to be created, like sharding, as you're saying.

Another one that I've heard of is plasma, which is something Ethereum is researching, where they're basically using this MapReduce framework to scale the blockchain. Another very interesting one is state channels. State channels is basically saying "Okay, if it's really hard to process so many transactions in the blockchain, why do we need to process everything on the blockchain? There's probably certain transactions that we can process off the blockchain, and only the ones we need to process on the blockchain we'll process on the blockchain."

That makes sense.

So state channels offer that kind of solution, where you basically say -- they have some secure mechanism to say "Okay, lock the state", then you process a bunch of transactions off the blockchain, then you submit it to the blockchain and then you move the state to the next state, basically.

I'll kind of just share a small psychosis with you all, and just tell me if I'm the only one that feels this way... Something about append-only databases bothers me, because it's just always getting bigger, and that makes me nervous, for some reason. Like, there's no balance, it's just gonna continue -- does anybody have a problem with log files, where you had this log file and it was fine, and then a few years later you look at it and it's like 700 GB, or something?

You're like, "Gosh, that got out of control!" So we rotate log files, we manage these things, and I feel like anytime you have a blockchain to me, there's something that makes me - not nervous in terms like something's gonna go wrong, but it's almost like it just bothers me that it's just gonna continue to grow and grow and it's never gonna stop.

Well, if you even look at things like communities... Node has grown by 400%, or some sort of large number. Communities like that, or the way that five years ago not that many people on the internet, and now I think half the population of the world is on the internet, or something like that; 49%, or something like that.

But there's a stopping point, right? When the very last person gets on the internet, you're done. [laughter]


But the blockchain is just gonna keep going.

That's the point... With this, as all these things continue to grow exponentially, it's just gonna keep putting more and more pressure on this innovative future technology.

Right, and because of that, the scaling in blockchain technologies - we have to come up with solutions - it's almost like a ticking time bomb as well, because every single day, as we speak, the Bitcoin blockchain and the Ethereum blockchain, they're just growing, growing, growing, and they're getting more and more unhandleable. That makes me very nervous.

Yeah, that's a good observation and I totally agree. Don't you feel it's the same way with a giant corporation like Facebook, where they have database stuff going back ten years, and they have two billion users or something now? I don't know how it's any different, and they're actually processing way more data than the blockchain is today.

[00:46:08.22] Yeah, pretty amazing, really.

I don't know how they handle that much data. I'm not on the insides of that, but I've gotta imagine that's it's a very big problem with a very big team assigned to it, because it's the most precious resource they have, which is data. It's not just the actual information, like the images, the gifs, whatever, it's all the sub-data behind that, like the analysis on that, the machine learning around things like how people behave, and perceive, or change jobs, or change relationships, or react to world-changing news. It's much more than simply the activity.

Facebook's most valuable commodity is all of us arguing about politics.

That's true.

Basically, that's like most of their databases...

Or storms. Recently, I've realized how important real-time communication like that can be, but then at the same time how misinformation it could be in politics with electing a president, or with storms, trying to track down people to rescue. They may not be there anymore. Just because they put out a beacon on Facebook two hours ago doesn't mean they're still there on the roof, waiting to be nervous.

Real-time makes me nervous, too. I'm very nervous. I'm just a nervous person.

Well, you're definitely cynical about these things a little bit. You like to take the right steps, you're a planner. Your completion is -- so you have to make a good plan, because otherwise you can't complete it.

I think that's probably it, you've psychologized me - I'm a completionist, and that's why the blockchain makes me nervous, because I know it's never gonna be done. [laughter] I'm gonna create a blockchain technology that ends. Like "Well, you've gotta open up a new blockchain, because this one's finished." Anyways...

Well, that's the beauty of it - you can verify anything in the past.

That's true. But it gets harder and harder to verify, because you have to back through more and more transactions.

You definitely have to find a way to archive parts of the blockchain over time. There has to be a way to do that, because otherwise, whoever invented that originally had to have thought like "At some point this may grow huge", and there's no stopping it.

Yeah, actually Ethereum and Bitcoin too offer that kind of stuff. You can download the full [unintelligible 00:48:27.11] you can download some of the lighter clients, you can download a super light client... So they kind of figure out -- some of the lighter clients just carry the state cash, which is calculated in a certain way, whereas like the full nodes carry the entire data set.

There's obviously a lot of ways, so even though Ethereum at a full node is probably -- I don't even know how big it is now... 20 GB? I don't know, but the light clients that I use are 3-4 gigs, not that big.

Yeah, not too bad. Preethi, one thing that -- you're doing a great job, by the way, of educating Adam and I as we go here, because we're very much crypto and blockchain laymen, as we said... But I think that speaks to what you've been up to for a while now, which is actually how we came across you, and how many people online who know you know you, is because as you got started in software engineering, slightly before that post in 2015, and here we are, two years later from that you've taught and you're written and you've helped people learn along the way. Can you tell us what's the impetus for that and about some of the things that you're doing with Ask Preethi, and with Between the Wires, and all the good stuff you've been putting out for people to learn alongside you?

Yeah, sure. I think at a very early age I realized I had -- I think I told you earlier that I had this skill for communication, and one of the things I've always wanted to do was blog, and I just never had the chance, or I didn't really know what to blog about or what I wanted to blog about, and I didn't feel like I had much to say. But when I got into programming, it was much more straightforward, like "Okay, I can actually talk about this. I can talk about what I'm learning, I can share my learnings, and maybe someone in the world will find it useful."

[00:50:17.00] That's what I always tried to do, and I remember when I was going through the bootcamp and I was going through just like teaching myself how to code, I started doing it like every other week or something, just kind of talking about what I learned that week and how I think it will be useful, and over time people started to like it. I was like "I guess there's something here", and I just kept writing. I honestly found writing as a way to solidify what I was learning myself, because I would learn something and I'd be like "I wanna write about it", and then immediately after writing about it I'd be like "Holy crap, that whole writing process just taught me so much more about what I actually didn't know about what I thought I knew!"

I just kept doing that - every time I learned something new, I'd write about it and then I'd just grow and learn so much more by writing about it. It almost became like this addictive thing. I loved writing, and people found it helpful, so I was like "Okay, it seems like other people find it helpful, too." I got a lot of feedback saying that I have this ability to teach, or that I can break down concepts in an understandable way, and honestly that's what kind of kept me going. The reaction from my readers is what keeps me going, because when you get that one "thank you" or that one "Oh my god, this totally helped this thing click for me. Thank you so much!", or you just get these e-mails with exclamation points and like being so happy that they learned something new... It's just like impossible to stop. That's kind of what keeps me going, because it actually helps people.

Then in terms of Ask Preethi... Because I kind of made this transition successfully, I guess, as a software engineer, one of the things that I started to notice was a lot of people would e-mail me or message me on Facebook saying "Hey, I really empathize with what you're doing, and I'm going through the same thing but I'm not succeeding", or "I'm failing here" or "I'm really struggling", or whatever it is. There's a lot of beginners who just weren't making it all the way through for some reason, and it was really hard for me to answer all these e-mails one on one, and that's when I decided to start that Ask Preethi thing...

A lot of the questions were pretty common questions, and similar questions across the board. It's like "Hey, I learned this and I don't know what to do next" or "I learned a bunch of things and I don't know how to get a job", or "I wanna learn React, where do I get started?" Very common questions, and I was like, the best way for me to provide help at scale is just to answer these common questions. That's when I started the Ask Preethi thing, where I just take a question, break it down and then answer it. I'll be honest, I'm not doing much in those videos except talk about how I personally went through answering that question for myself, and I think that's the best I can do. I don't have the answer for every single person out there, but I can talk about how I thought through the question, and that way it at least gives people a mental model for how to think through a question.

I'm not trying to provide answers to everyone; I want them to be motivated and give them the confidence to think through these questions themselves. That's kind of my goal with the Ask Preethi series.

Yeah, sometimes the answers that we seek, like in the case of watching or listening to your feedback on how to deal with certain things, is less about the answer and more about how you go about solving the problem, or how you go about thinking through the various resources out there to make a good decision.

[00:53:58.09] For me, there's other things outside of what we do here at the Changelog that involve taking pictures or shooting video that I do as a hobby and find so much fun, and it's really nice to see people -- which is completely different than programming, but there's a recipe for how to do certain things, but there isn't one recipe (just like in programming) to do the same thing. There's many ways to Rome, so to speak, but seeing how somebody uses certain things or approaches a certain problem and how they think through it is sometimes more valuable than the actual answer itself

Yeah, exactly. I've gotten feedback like "Oh, can you actually walk us through an application and build it front to back?" Honestly, I don't know... I think one of the core skillsets of an engineer is being able to figure out stuff, and the way you can achieve that is by having confidence that you can figure it out, so my goal with this series is to just give them the confidence that like "I don't need to walk you through every single step of how to do this, but I want you to be confident that you can figure it out. Here's how I thought through it, and here's how you should think through it, too" kind of thing.

What's the state of Between the Wires? I see it's pretty active, you've got a lot of stuff happening there. What's the back-story on this?

That's a good question. Vivian Cromwell (who used to work at Google) and I were both pretty passionate about the developer community and really being involved with the developers, and one of the things we wanted to do was kind of show the inner workings of building a developer tool, or building more developer-focused products, because it's much different than building a product that's consumer-facing, that's profit-making and so forth... Because developer products are much harder to monetize, and it's just a different beast on its own. We wanted to really focus on the entrepreneurs who were fundamentally developers.

We wanted to ask some of the hard questions of like "Okay, when you were building this product, what were some of the toughest times you went through?" or "How did you figure out how to monetize this?" or "What was one time that you had to fire someone?", like kind of give developers an in into what it's like being an entrepreneur, without drifting too much into the consumer-facing application side, if that makes sense. Basically, other developers communicating to other developers about their entrepreneurial endeavors and the problems they're running into.

For example, our interview was with Guillermo, who's building Zite. We talked to him about why he's building Zite, what are some of where problems he's running into, what are the challenges of trying to monetize something like that where there's a lot of free solutions out there already, how do you actually pay your employees if you can't monetize this... Some of the hard questions that are harder to get an insight into if you're just on the outside and using a product. And they've been pretty successful, I think.

I think your series on YouTube is pretty interesting, too. You've got three so far... Any more on the pipeline for any more upcoming topics that you can sort of tease to the audience?

I have a list somewhere, let me see... I need to go through my e-mails too, because I've been behind on that.

I guess a better question might be how do you approach the new videos you might go about? Is it user-submitted? Is it like you hit a problem and you're like "I wanna share this", or is it literally ask Preethi, and people are submitting things to you and you go out and sort of like look at the problem and share how you would go about getting that first React job, for example, or whether or not you should go back and get that CS degree, like you've mentioned in the second video you did.

[00:57:55.12] Yeah, so when I launched the series I just shared my e-mail and I said "E-mail me with your questions or frustrations, and I'll pick the ones I think I can answer best." I just received e-mail, and I kind of go through them whenever I have time and pick the ones I like, or pick the ones that I think I can answer. I think the next one I wanna answer is a very common one (even I had this question a year ago) on generalization versus specialization, which is a very, very interesting one, and it really depends, but...

[laughs] It's just funny how many of the answers are "It depends."

I mean, everything is "It depends." That's why I don't like to give 100% cookie-cutter or exact answers; I don't think there is one. Every software engineer is so different, and they kind of all follow different paths.

What's a good kind of question, if people are listening to this and thinking "Geez, I'm gonna check this out" and they wanna ask you some question? What are the kind of questions you're seeking to answer?

If you're basically kind of starting out as an engineer, or you've done some engineering and you're trying to go -- either you're struggling and you have a question about why you're struggling, or you don't know what to do next kind of thing, or you feel like you need some kind of... Basically, anything that you would ask a parent or a mentor is how I would phrase it.

Parent or mentor... Okay. So getting people unstuck.

Yeah, basically.

That's cool. That's a fun thing to do; that's one of my private passions, to some degree. Jerod, you probably know this because you're on the shows like I am right now, but when we're done here in a second or two and the audience is like "Okay, this show is over", but for us we've got that after-show that doesn't ever get aired, I'm often...

"Ask Adam." [laughs]

It's often to some degree "Ask Adam", but it's... You know, I like helping people through their process, getting unstuck, or looking into what they're doing and saying like "Have you considered this?" That's a lot of fun for me, because it's very rewarding to serve somebody like that, but then also just the process of like being able to look at somebody else's really interesting life and interesting skillset and help them look at things differently to maybe get unstuck.

Sounds like a YouTube show.

Yeah, I guess I'm curious - do you feel like when you provide that help or when you ustuck them, I guess...


Unstick them... Do you feel like you yourself learn? And what about when you hit questions that you might not have run across yourself, or problems that you have not run across yourself?

I just throw up that hands up emoji, and we're okay, when I don't know the answers. But I think I definitely learn, because I get to learn about different types of people, different types of ways they look at the world. They're often approaching problems very differently than I've ever even considered, and they may not even be asking for my advice; Jerod knows this... I'm like "Hey, you're taking this advice whether you like it or not, to some degree." Not rudely, of course, but it's not like they're seeking my advice, but I definitely learn through the process of like trying to -- they may not even feel like they're stuck; I might see that they're stuck... It feels a little one-sided now that I'm describing it, but... [laughter] Unsolicited advice.

They might wanna be hanging up the phone, but Adam keeps telling them advice.

But often people take it, and that's good.

[01:01:51.28] Preethi, you'll know exactly what we're talking about here in a few minutes.

That's right, that's right. [laughter] Well, any other questions for us, Preethi, before we close out this show?

Or anything else you'd like to plug or talk about?

No, I think that was good.

Well, it's been fun hearing your story. Obviously, you've come so far so fast, and that's great to see. Not only did you have goals and you laid out a plan, a roadmap for yourself and you're following it, but then you're also giving back, which is the kind of people we love. People who help other people, that's Jerod and I's kind of people... And we're glad to have you on the show, glad to have you doing things on YouTube, and obviously Between the Wires and what you're doing there... A lot of great stuff, so thank you so much for what you're doing and thank you for sharing your time with us today.

Thank you, it was awesome!


Our transcripts are open source on GitHub. Improvements are welcome. 💚

0:00 / 0:00