$100k in Gitcoin Quadratic Funding, Uighur Muslims, and The Ethereum Facebook Group

09/29/2019

WeWork CEO Steps Down

This should’ve happened a long time ago. It’s funny, a lot of colleagues told me to join WeWork back when Sebastian Gunningham joined, because they were hiring like mad. Things like this indicate there is too much available capital going around, and that financiers are competing for investment opportunities, which usually leads to bubbles.

Facebook Acquires CTRL-Labs

There’s little doubt that this tech is interesting, but that doesn’t mean that it’s a sound acquisition in the same way Instagram was. This is similar to the Oculus acquisition, which a cursory DuckDuckGo search shows wasn’t profitable in 2016 and I doubt much has changed since then.

Gitcoin Quadratic Funding Round 3

The Ethereum community makes me hopeful for the crypto community. All the idealistic things I would like to see happen in software development get tried out in earnest by the Ethereum community.

Uighur Muslims Shackled and Blindfolded

I try to stay apolitical in this newsletter as much as possible, but this video of Uighur Muslims in a Chinese camp surfaced this week. I have a feeling history will not look kindly on the world’s inaction on this.

China Sends 100 State Officials to Corporations

I know I’m biased given I’m an American citizen, but I don’t think this kind of posturing is going to end well. No offense to government officials, but typically they’re not the most adept businessmen. I suspect they’ll likely get in the way or slow things down at these businesses just when these businesses need to be as lean as possible.

Blind Engineer Builds Smart Cane

I found this right after posting last week’s newsletter, so this is going in this week’s newsletter. Tell me this isn’t cool!

Bakkt Futures Went Live

And number go down.

I’m a Moderator at the Ethereum Facebook Group

Come say hi!


This content is for informational purposes only, you should not construe any such information or other material as legal, tax, investment, financial, or other advice. Nothing contained in this post constitutes a solicitation, recommendation, endorsement, or offer by myself to buy or sell any securities or other financial instruments in this or in any other jurisdiction in which such solicitation or offer would be unlawful under the securities laws of such jurisdiction.

The opinions expressed in this publication are those of the author. They do not purport to reflect the opinions or views of any of the author’s employers.


Don’t forget to follow me on twitter, add me on linkedin, add me on facebook, subscribe to my blog, or follow me on medium for more content like this. I post a review of topics I find interesting every week. I’m always looking for new topics to cover, so if you have anything you find interesting and would like to discuss please reach out!

Advertisements

GitHub Acquires Semmle, Vitalik’s Time Machine Visit, and Condolences to the Facebook Engineer


Vitalik’s Time Machine Visit

Vitalik tweeted out screenshots of some of the Python EVM code he wrote 5+ years ago when Ethereum started. I suspect this tweet storm from Vitalik started due to Igor Lilic tweeting the first commit to Ethereum from 2013.

I particularly like this tweet, as it illustrates a “code first, think later” approach to software development I myself take in the early stages of a project. This may sound crazy, but, there isn’t anything wrong with coding something that isn’t useful or doesn’t make any sense. It’s almost like grappling somewhere unsafe temporarily so you can use the momentum or position to grapple somewhere else and thus arrive at your final destination. Inelegant or illogical code can often lead to elegant solutions when it shifts your perspective. The benefit of illogical code is, you wouldn’t have considered the elegant solution without first landing on shaky ground and surveying what this new illogical position has gotten you.

Vitalik writing code to sign messages in the EVM

I know this approach can annoy other developers, but it can be effective approach to producing code that solves a problem.*

Too much can get mixed up between words, or even design documents, and the implementation of a project. In this approach, the implementation should drive the project and not the reverse, but to enact this approach you must have the ability to implement without painting yourself into a corner, and few developers are capable of doing this. Design reviews are effective for teams of software engineers at various skill levels who may not be able to avoid corner-painting, but I digress.

*notice the problem is of principle interest, and not the code. The code is simply produced in this approach.

DOJ Sues Snowden to Freeze Memoir Revenue

What fantastic PR for Snowden. I thought it was common knowledge that the quickest way to ensure people will read a book is to try and stop people from reading a book. This does highlight how much power the US has over the current financial system. I would wager the majority of Snowden supporters won’t have any trouble getting around the revenue freeze though.

Facebook Software Engineer Commits Suicide

I’ve been hearing colleagues talk about the terrible work life balance of Facebook engineers lately. The rumors made it sound like Amazon circa 2016. I’m sad to hear the rumors anecdotally confirmed. This comes on the heals of a prominent YouTuber getting fired from Facebook for having a YouTube channel (according to him of course).

GitHub Acquires Semmle

I’ve noticed GitHub has been sending emails with the security vulnerabilities present in repositories lately. This is a good direction and acquisition for GitHub. I would imagine the amount of code present on GitHub also has the potential to make Semmle a more effective product so this seems like a natural fit for both parties.

I hadn’t heard of Semmle before this news broke, but their software sounds super interesting. Semmle has written a query language you can run against your code base for vulnerability detection, and companion software for the query language. You can actually query through open source projects using https://lgtm.com/. I did, and found a few small bugs in a project I’m currently working on.

Bill Gates Continues to Hold 60% Equities

I’m starting to sense an unintended theme in this newsletter. I shouldn’t be so brash about my pontification given the future is highly probabilistic. However, the wealthiest men on the plan are still holding larges chunks of equities in their portfolios. If you aren’t leveraged and can weather the bumps, continue holding your equities.

As I wrote this, economic indicators came out beating analyst forecasts.


This content is for informational purposes only, you should not construe any such information or other material as legal, tax, investment, financial, or other advice. Nothing contained in this post constitutes a solicitation, recommendation, endorsement, or offer by myself to buy or sell any securities or other financial instruments in this or in any other jurisdiction in which such solicitation or offer would be unlawful under the securities laws of such jurisdiction.

The opinions expressed in this publication are those of the author. They do not purport to reflect the opinions or views of any of the author’s employers.


Don’t forget to follow me on twitter, add me on linkedin, add me on facebook, subscribe to my blog, or follow me on medium for more content like this. I post a review of topics I find interesting every week. I’m always looking for new topics to cover, so if you have anything you find interesting and would like to discuss please reach out!

Get Paid Today, A $100k EOS Hack, and Tokenizing a Basketball Player


09/15/2019

Earnin

I found Earnin from the new a16z hustlin’ tech podcast. Earnin allows you to get paid daily for the hours you work, rather than waiting for the end of your pay period. On the podcast one of the “hustlers” says that he tried to get his friend to install the app but his friend wouldn’t do it because he was skeptical as it seemed too good to be true and there was likely a catch. I’ve installed the app and there’s no catch, it works as advertised.*

I got into crypto because I think we should be exploring how technology can change the ways we exchange value. Earnin does exactly this. They’re attempting to end the payday loan business altogether, which would be tremendous for society if they succeed. They’re also branching out into lowering people’s medical bills with the Health Aid feature.

Also, you get $20 when you sign up using the link above.

*One thing that kind of annoys me is Earnin uses your location as a proxy for whether you worked that day or not. This means the day that I worked from home this week, I didn’t get paid. That got me thinking. What about small business owners who work from their homes? This app would be useful to them as well but the app can’t differentiate between being at home and working at home.

Joe Rogan Gets Real with Brendan Schaub

I know this didn’t happen this week, but I happened upon it this week, and it got me thinking since we have the benefit of seeing how Brendan responded to the feedback Joe gave him.

Brendan retired from the UFC about 1 year after the podcast linked above, where Joe tells Brendan he will never be an elite UFC fighter and that he’s going to do irreversible damage to his body if he continues to pursue MMA.

Brendan now has a successful podcast and is a successful stand up comedian. When he announced his retirement, Brendan was transparent about the financials of the decision insofar as he was making more money outside of the UFC. This clip is an example of what separates the successful from the unsuccessful. An unsuccessful person may not have listened to Joe. An unsuccessful person likely doesn’t have a Joe in their life. An unsuccessful person may have listened to Joe, but their ego would have been bruised for the rest of their life. An unsuccessful person may have listened to Joe, but it would’ve been in their head the rest of their lives, paralyzing them. There is absolutely nothing wrong with pivoting your life as long as you continue moving.

There’s a case you could make that Joe Rogan changed Brendan Schaub’s life by being brutally honest with him. Successful people relentlessly seek this kind of feedback, whether it’s in their business, in their career, in their craft, in their hobbies, or in anything they’re pursuing. If you’re interested in getting better at anything, there is nothing more efficient than brutal honesty. That said, successful people are also good at deciphering the good feedback from the bad.

As Joe says in the clip, it’s very hard for people to give brutal feedback, particularly to a friend or colleague, so it happens rarely and often only comes from very special people like Joe. When it happens listen and internalize. Successful people are not opposed to pivoting when the feedback given tells them that more time and effort will not remedy the problem. Sometimes that’s the luck of the draw and there’s nothing you can do outside your natural limits. There is absolutely nothing wrong with pivoting your life as long as you continue moving.

If that isn’t enough, check out billionaire Ray Dalio’s tweet about the same thing this week.

$100k EOS Hack

To be clear the EOSIO software itself wasn’t exploited, but rather a gambling smart contract. However, this serves as evidence that smart contract development is a nontrivial activity that, when done incorrectly, can cost people a lot of money.

Tokenizing Spencer Dinwiddie

Spencer Dinwiddie is going to try and tokenize his $34 million contract extension with the Brooklyn Nets. This idea has been tried many times before, but since it’s a security the SEC is involved, making it costly to do in a regulatory compliant way. Usually, the tokenizer doesn’t realize this until they try to do it, and ends up backing out after coming to the realization of the regulatory difficulty involved.

Regardless of if it happens or not, I don’t think it’s a great investment. There’s a lot of risk in individual athletes. Look at what kind of return you would have gotten from the proposed Arian Foster IPO. He had one more decent year after his announced IPO, played two more seasons and retired.

Revenge of the Dreamers III

This is what I used to live for as a musician. Look at how much fun these people are having. I listened to the record that came out of this and it’s alright. But, the point of something like this is enjoying the process and not the end product.

There’s two kinds of art: art made for the enjoyment of others, and art made for the enjoyment of the artist, or even other artists. It’s like the difference between inventing a new product and playing a game of pick-up basketball. It’s interesting that art can be both of these things at the same time, and usually on a spectrum between the two.

More Recession FUD

Remember my previous post with the T-bill inversion commentary? Looks like Taleb has something to say about this as well.

More Binance Lending

I told you more of this was coming. Once again it’s first-come-first-serve and frankly:

The Volfefe Index

lol


This content is for informational purposes only, you should not construe any such information or other material as legal, tax, investment, financial, or other advice. Nothing contained in this post constitutes a solicitation, recommendation, endorsement, or offer by myself to buy or sell any securities or other financial instruments in this or in any other jurisdiction in which such solicitation or offer would be unlawful under the securities laws of such jurisdiction.

The opinions expressed in this publication are those of the author. They do not purport to reflect the opinions or views of any of the author’s employers.


Don’t forget to follow me on twitter, add me on linkedin, add me on facebook, subscribe to my blog, or follow me on medium for more content like this. I post a review of topics I find interesting every week. I’m always looking for new topics to cover, so if you have anything you find interesting and would like to discuss please reach out!

The $1 Billion Bitcoin Whale, A $243,000 Deepfake, Pre-Mature Optimization, and The Yandhi Leak

$1 Billion Bitcoin

Someone moved $1 billion in Bitcoin on September 5th. This highlights what makes the blockchain so interesting. Everyone was able to see this transaction when it happened, but no one knows who made it. It also cost the transactor a grand total of $600 to move $1 billion in “minutes” (try getting your bank to do this).

I say “minutes” in quotes because Nick Szabo of smart contract fame brings up a good point in this tweet in that the transactors should wait 40 days if they want to be 99.999999% sure that the transaction is actually settled (no transaction is ever 100% settled on the Bitcoin blockchain). Which highlights a flaw in Bitcoin finality.

A $234,000 Heist

This is crazy, right? Social engineering is often the easiest type of hack to pull off and these deepfakes are only going to make this style of attack easier and easier to enact.

80,000 Hours High Impact Job Board

I stumbled upon this high impact job board via a follower of a follower of a follower of a follower on twitter. The idea of this particular job board is interesting insofar as it isn’t “high paying”, but rather “high impact”. If I could time travel back to my more idealistic years this job board would be were I would be focusing my attention. Perhaps in my next reincarnation.

Yandhi Leak

I love Kanye. I said it, and I don’t care who knows. I’ve been listening this on repeat all week.

Facebook’s Gatekeeper

Yet another Software Engineering Daily episode led me to investigating Gatekeeper. Gatekeeper allows Facebook to choose which features are shown to which users and when. This is particularly advantageous when doing mobile deployments, as you can turn off buggy features post-deployment without re-deploying through the various app stores.

Envoy Mobile

This comes from another Software Engineering Daily episode. Lyft has taken Envoy, which is a sidecar proxy for micro-service based back-end architectures, and provided the same functionality in the form of a mobile library. The main reasons for doing this is to provide the same functionality to mobile clients that Envoy provides to back-ends.

If this gets adopted it could introduce some interesting functionality in mobile clients. For example, one could alter the data that is sent to a back-end depending on the quality of the network. Using the example provided by Matt Klein in the episode. If Lyft’s mobile client was using Envoy Mobile, it could detect when it was on a degraded network and defer sending less important data, such as coupons, or push notifications, and instead favor more critical data, like the location of the car, or the user. When the mobile device is back in a more robust cellular network, things like push notifications and coupons could be sent again.

The possibilities are interesting in terms of what kind of adaptive computation can be done based around the user’s network with Envoy Mobile.

Pre-Mature Optimization Is the Root of All Evil

This brings me to a point I’ve been meaning to write about for a while now. New developers are too quick to pick up industry latest practices in terms of architecture and apply them to their jobs or side projects. Stop doing this. The latest practices are meant to solve problems large companies are experiencing and may not be relevant to your company or side project. Micro-service back-ends exist to allow hundreds of developer teams the ability to work on a product at the same time with minimal impact to one another*. If your project isn’t hiring hundreds of developers, or your company doesn’t have hundreds of developers working on the same project, you don’t need this architecture and all it will do is introduce unnecessary complexity and slow you down.

I get it. I’ve been there. You think that getting experience building a micro-service architecture in your spare time will help you in your interview with a FANG company in the future. It won’t. In fact, if you tell me in an interview you used a micro-service architecture for your personal portfolio site, I’m going to question your ability to select the appropriate technology for the task at hand.

*one could also argue it allows the company to isolate itself from the impact of one developer leaving the company, but that’s a discussion for another day.


This content is for informational purposes only, you should not construe any such information or other material as legal, tax, investment, financial, or other advice. Nothing contained in this post constitutes a solicitation, recommendation, endorsement, or offer by myself to buy or sell any securities or other financial instruments in this or in any other jurisdiction in which such solicitation or offer would be unlawful under the securities laws of such jurisdiction.

The opinions expressed in this publication are those of the author. They do not purport to reflect the opinions or views of the author’s employers.


Don’t forget to follow me on twitter, join my telegram channel, add me on linkedin, add me on facebook, subscribe to my blog, or follow me on medium for more content like this. I post a review of topics I find interesting every week. I’m always looking for new topics to cover, so if you have anything you find interesting and would like to discuss please reach out!

$4 Billion, Binance Lending, and EthHub

Binance Lending

Binance introduced lending this week. The idea is that users will be able to lend to margin traders on the platform. Lending opened on the 28th and almost immediately filled up. Given how busy I was this week, I wasn’t able to participate. However, I’m looking forward to seeing how this progresses in the future and will look to take part when it presumably opens up indefinitely.

Craig Wright Court Ruling

A court recommended that Craig Wright must surrender over $4 billion in Bitcoin to the Kleiman estate. If you’re not familiar with crypto news, then you may not know that Craig Wright has been claiming to be Satoshi Nakamoto for awhile now, and suing anyone who says he’s lying.

One important aspect of public key cryptography is if someone was Satoshi Nakamoto they could prove this fact mathematically. So far, no one has done this. Anyone claiming to be Satoshi who doesn’t prove it cryptographically will be branded a fraud by the crypto community regardless of the evidence they bring in support of their claim.

I think what’s happened is both Craig and Kleiman were early adopters of Bitcoin. They both purchased and mined Bitcoin early. They formed some kind of business relationship and, since the Bitcoin wasn’t worth much back then, were exchanging keys or using multi-sigs. After Kleiman passed away Craig took all of the Bitcoin they held jointly and now the Kleiman family wants Kleiman’s Bitcoin back. If Craig and Kleiman used a multi-sig and Kleiman held part of the private key (he’s since passed away), then there is a chance that Craig is telling the truth in that he cannot access the Bitcoin. Also, if my conjecture is correct, the court case has nothing to do with Satoshi Nakamoto. Although, it makes the headline more appealing if Craig’s Satoshi claims are included in it.

This is interesting from a legal perspective though, because when it comes to crypto one could always claim to have “lost”, “forgotten”, or never to have owned the private keys to an address. How does the court prove that someone does in fact control the private keys to an address? Presumably you could use chain analysis, but for addresses who mined a lot at the beginning and haven’t done anything with the coins since then, these tactics are rendered useless. At any rate, that is what must be proven here in order for the Kleiman estate to get the $4 billion in Bitcoin that would be lawfully theirs if this recommendation is held up in appeals courts.

EthHub

I heard about EthHub on last week’s episode of Epicenter. Both Eric and Anthony seem like good guys. Whether or not I agree with someone’s viewpoints, I respect them taking action to build things in order to support their viewpoints.

EthHub is a central place where Eric and Anthony put documentation such that it can be linked to when people are spreading misinformation about Ethereum. This way they don’t have to continue repeating themselves in responses. They also have a podcast and weekly newsletter which are linked to on EthHub. I’m not as active in the Ethereum community as I used to be, but I’d definitely recommend checking their content out if you’re interested in keeping up to date on the nitty-gritty of Ethereum development.

Quantopian

Quantopian appears to be a Kaggle for stock market prediction. Quantopian provides Python libraries you can use to analyze stock market datasets and backtest trading strategies. I heard about Quantopian on a Blind thread about passive income where a Facebook data scientist claimed they were making $1K monthly in royalties from an algorithm a hedge fund was leasing from them on Quantopian. I’ve only had time to dabble in Quantopian this week due to my hectic schedule, but this looks like something I’d like to continue to investigate and write about going forward.


This content is for informational purposes only, you should not construe any such information or other material as legal, tax, investment, financial, or other advice. Nothing contained in this post constitutes a solicitation, recommendation, endorsement, or offer by myself to buy or sell any securities or other financial instruments in this or in any other jurisdiction in which such solicitation or offer would be unlawful under the securities laws of such jurisdiction.

The opinions expressed in this publication are those of the author. They do not purport to reflect the opinions or views of any of the author’s employers.


Don’t forget to follow me on twitter, add me on linkedin, add me on facebook, subscribe to my blog, or follow me on medium for more content like this. I post a review of topics I find interesting every week. I’m always looking for new topics to cover, so if you have anything you find interesting and would like to discuss with me please reach out!

08/25/2019

Goldman Sachs, Data Lineage, and Harry Potter Spells

Goldman Will Dominate Consumer Banking

Oh man…what a claim. I guess the job of the CEO is to rally the troops, but, really?

To me Goldman is the IBM of finance. Neither company has core values, which devalues their brand and enables them to lash about from acquisition to “bold new idea”, when all customers want is innovation on their part or a good product at a good price. It is actually much more difficult to hold fast to core values and innovate around these core values than it is to make deals and buy other companies or technologies.

How to Solve It III

There is a section where Polya quotes a passage from Pappus of Alexandria. The point of the passage is to illustrate an approach to problem solving whereby you assume what you’re trying to prove or find is in fact true. You do this to investigate the properties of this “object” that you’re searching for in a sort of working backward approach. In effect, starting from what properties the proposed solution to a problem would have to have, rather than starting with the given data and moving forward to the end solution. This approach works well for proofs by contradiction or what Polya calls Reductio ad Absurdum in the book.

 “A wise man begins in the end, and a fool ends in the beginning.”

How to Solve It IV

Translating ideas in English into mathematical notation is important, and also something I was particularly bad at. Although, I didn’t know I was bad at this until the fact that this translation was happening and was a necessary step to solving math problems was spelled out by Polya. He compares translating an idea into mathematical notation to translating English into French. In this way, you can’t do a simple translation of the English words directly into French words as you’re likely to miss some context. You also can’t always directly translate an idea into mathematical notation and should keep an eye out for using the appropriate notation when doing a translation as it can be the difference between having an “a-ha” moment with a problem and missing it.

Airbnb’s Dataportal

I happened upon this project from an interview on software engineering daily about data engineering (in this case data lineage). I’d heard senior engineers discuss the idea and was curious to see how Airbnb was approaching the problem. The approach they’ve taken is to treat data exploration as a social media problem. In this way users and knowledge holders of the data can connect, pin, and like data sources. Presumably, the more liked a data source is, the more useful it would be. Also, if someone you’re working with has pinned a data source, it seems plausible that you would also be interested in this data source. It’s an interesting approach to the metadata problem and it’s renewed my interested in experimenting with graph databases and page rank (they’re using neo4j for the project).

I’d heard a lot of talk about things like data lineage in college but had always cast them aside as pedantic ideas. It’s not until you work at a large company dealing with massive amounts of data that is heterogenous and the data is the business that you realize how important a concept like this is.

This led me down a rabbit hole that I’ll likely continue to write about (see Lyft’s Open Source Amundsen and UCBerkeley’s Ground).

 

 

 

 

 

This content is for informational purposes only, you should not construe any such information or other material as legal, tax, investment, financial, or other advice. Nothing contained in this post constitutes a solicitation, recommendation, endorsement, or offer by myself to buy or sell any securities or other financial instruments in this or in in any other jurisdiction in which such solicitation or offer would be unlawful under the securities laws of such jurisdiction.

The opinions expressed in this publication are those of the author. They do not purport to reflect the opinions or views of the author’s employers.

Don’t forget to follow me on twitter, add me on linkedin, add me on facebook, subscribe to my blog, or follow me on medium for more content like this. I post a review of topics I find interesting every week. I’m always looking for new topics to cover, so if you have anything you find interesting and would like to discuss it with me please reach out!

08/18/2019

Tech Politics, Math, and Career

Baakt Launch

It looks like Baakt is finally cleared to launch physical Bitcoin futures.  This has been long awaited in the crypto space.  To be honest, I was expecting the price of cryptocurrency in general to go up due to this news but it didn’t seem to move much. I guess that’s crypto for you.

Zachary Vorhies Leak

I’m wondering if the somewhat low quality production of Project Veritas is turning me off to this whole situation. It’s making the whole thing seem unnecessarily conspiratorial. I also don’t like that Zachary is calling himself Snowden, rather than letting the public draw their own conclusions. The low quality of the videos is making the whole thing seem like a PR stunt or staged or something, which is a shame because we shouldn’t judge a book by it’s cover, particularly when it comes to whisteblowing. Poor production quality aside, the docs don’t lie.

Amazon T-shirt Hack

amazon hack.png

An odd theme in this newsletter that I wasn’t expecting was the politicization of tech. I’m hoping this doesn’t continue to be a theme, but also I’m not convinced it won’t be given society’s current fixation on the topic (thanks Netflix). The fact that this happened is interesting nonetheless (and, no, I don’t know anything about it).

T-bill Inversion

I generally tend to agree with the Taleb tweet linked above. The media often tends to exaggerate market moves to get ad revenue. If you’re swayed by the exaggerations you’re going to be in a bad place as an investor. Confidimus in statistics.

I also feel that the last recession we had was a statistical outlier, but being that it was the most recent, we’re more prone to remember all recessions as the previous one (availability bias). The next one will not be as bad. Finally, the last was exacerbated by the unknown-unknown of the subprime mortgages. This time everyone can see the recession coming, which to me means it’s already been priced in.  It should give you comfort that Berkshire Hathaway just purchased more Amazon stock on the public market.

How To Solve It I

I’m currently reading How to Solve It as I always felt I was a bit of an unimaginative mathematician. One thing I came to realize in my reading is that part of the reason I was so unimaginative is I approached mathematics from a computer science perspective. By this I mean my intuition about problems is not bad, but I always had trouble constructing proofs from my intuition, or attaching rigor to my intuitions (in the book Polya calls it “check every step”). This is because in programming, you need an intuition and an implementation. If the implementation works that’s usually the end of the story (although it can be argued that this shouldn’t be the case). It’s very infrequent in software engineering that you’re expected to prove anything. Because of this I never developed skill in proof. Some might say this is not a problem, but speaking from experience, it is. Here is why: skill in formal proof can often drive intuition, even as much as the opposite is true. Understanding where you’re going, and the options related to how to get there (you can take a bus, you can fly, you could walk, etc), can often lead you in directions you wouldn’t expect to go in.

I would often get to a point of understanding a math problem, even convince myself of the mechanics of the problem and find a solution, but when it came time to prove it, nothing. I was bad at convincing not only myself, but any reader. This is because you get little to no practice doing this in a computer science curriculum.

As an aside, I think checking that your logic is sound after developing an intuition is also important as an intermediate step in computer science that is often dropped (as it was for me). The steps to a computer science solution should be intuition -> convince yourself that the intuition is correct -> “check each step of the argument” -> code -> “check each step of the implementation”.

How To Solve It II

Given this is my first post in this newsletter, I’m going to make a second observation from the book. Polya’s introduction of the “unknown”, “constraint”, and “data” of a problem that can be applied almost universally is a useful tool, particularly when applied to the part of the book outlining different approaches to varying these “parts” to a problem.

Patience

The importance of patience in a work context is something I’ve had to learn with experience (it’s almost impossible for someone to give you this feedback as it could easily be misunderstood by the person receiving the feedback, so managers tend to avoid giving it).  When given a task, particularly a complex task, I was prone to diving right in to the problem to arrive at a solution quickly. There is something about visual effort in that a junior engineer wants to appease their superiors by delivering something even if it isn’t the exact correct thing. Usually this is fine. As long as you’re close enough to correct, it can be course corrected. But, sometimes you may be way off, causing a long delay between being assigned the task and the ultimate solution due to impatience. I’ve learned to be more effective by being patient when given a new task. Don’t be afraid to “peruse”. You should know what you plan to do in very good detail before carrying it out. The act of carrying it out should be just that, carrying it out, nothing more. You should not be finding new things out in the act of enacting your plan. If you do not have this, you should not be proceeding and should instead either investigate the thing blocking you further, ask questions, or often, wait for something to happen. Experienced management will understand this and will respect you for showing restraint and patience much more than they will laud your ability to dive in. Effective, prudent, deep dive is the goal.

 

 

 

Of course, these opinions are my own, and not those of any of my employers past or present.
Don’t forget to follow me on twitter, add me on linkedin, add me on facebook, subscribe to my blog, or follow me on medium for more content like this. I post a review of topics I find interesting every week. I’m always looking for new topics to cover, so if you have anything you find interesting and would like to discuss it with me please reach out!

Why I Turned Down an Interview with Google

Around the time I was graduating from Utah State University I went on a massive job hunt.  The aim of this massive job hunt was more to garner interviewing chops, as well as to experience as many different companies and their interview process as I could.  During that time I got offers from a bunch of great companies and got to visit many different corporate campuses all over the United States.

Google

The obvious front runner for every computer science major is Google.  To many of us Google represents the pinnacle of computer science.  They pay really well, they have a great company culture, they’re illustrious, they’ve got great brand recognition for non-technical people, and the interview is well known as one of the most difficult. They also have the 20% rule (that doesn’t actually exist), which peaked my interest above all else.

My thought was, I’ll prepare for an interview with Google, and if I don’t manage to land an interview or get an offer, hopefully those skills will be transferable to other interviews at other companies.  As luck would have it, I did manage to interview at Google, and, as luck would have it, I also managed to not receive an offer.  However, I did receive offers from every other company that I interviewed with.

Amazon

One of the most intriguing processes I went through was at Amazon.  In fact, I didn’t even have an on-site interview.  The interview process for college graduates at Amazon at the time involved an online pre-screen (nearly every other company also has this, including Google).  After this, you’re given a proctored online behavioral assessment, immediately followed by a coding assessment, which is also proctored.  At the time, I thought this proctored assessment was taking the place of a phone screen and would ultimately lead to an on-site interview.  I took it, and did relatively well.  I knew I did well because before the interview process I searched for what the assessment generally involved and found there were a certain number of coding questions.  I finished these and had time to spare, so I clicked complete, thinking “great, I’ll get called for an on-site”, instead yet another coding problem came up, this one more difficult that the previous ones.  I couldn’t quite get all of the tests to pass and eventually ran out of time.  After a few weeks I got an email from an Amazon recruiter saying something along the lines of “we’d like to move forward” and nothing else.  Again, I was thinking “great, I’ll get an on-site at Amazon”.  A few more weeks pass, and I’m directly sent an offer letter via email.

IBM Watson

Contrast this to how IBM handled the offer process.  I did a similar online coding assessment, which I had to do in a language I wasn’t terribly familiar with (the choices were Python and Java).  I then had a phone screen which went extremely well.  Rather than moving forward with an on-site or directly to an offer I was sent an invitation to some bizarre hiring event in Atlanta.  Mind you, I was still a student at USU and the event was scheduled near to midterms or finals (I don’t remember which).  I was also trying to prepare for interviews at this time, so I was spending all of my time on weekends and after work/school working through algorithm questions.  It felt like a waste of resources, especially considering after searching for what the hiring event entailed I found out that everyone would receive an offer from IBM regardless of how they performed at the event.  For these reasons I tried to get out of going, but was told that if I didn’t attend I wouldn’t be given an offer.

The event was very odd to me.  At one point during the event we were sent into a conference room and given some kind of propaganda type film (I will say, it was very well made) about how IBM has been around since the beginning of computing.  I also received a text from “Watson” during my flight back, informing me that I’d be receiving my formal offer soon.

It all seemed a bit unnecessary and wasteful.  One thing that really intrigued me about Amazon was there was no frills and no bullshit.  I met their hiring bar, and they sent me an offer, the end.

Why I Turned Down an Interview with Google

Fast forward 8 months.  I’ve been with Amazon as an SDE since graduating.  During this time I’ve been contacted by all manner of recruiters, CEOs, start ups, block chain enthusiasts, and competing companies trying to marshal skilled developers behind their cause.  Recently a Google recruiter has reached out to me about interviewing again at Google. I’ve elected to pass on the opportunity.  Here’s why.

The Hiring Bar

The hiring bar at these companies is a bit absurd if you ask me.  I’ve often heard the argument for this absurdity is “it’s the best indicator we have” or “how else will they assess candidates?” I don’t have the solution to this problem, but I do know I’m not going to validate it as an engineer.  I did previously in order to make up my mind for myself using actual experience and I know which side of the fence I sit.

There are a massive amount of things that go into being a good engineer, let alone being a good employee.  I would say coding maybe makes up 40% of this, and I would say algorithmic skill accounts for maybe 5% of this 40%.  I would also say that assessing for this 5% is largely random luck.  Yet for some reason, this 5% of the 40% is what’s most carefully assessed during the interview process.

My time is better spent on things like building businesses, teaching others, and investigating technology that I find interesting rather than preparing for irrelevant algorithm puzzles.  Don’t get me wrong, I’m glad I did it a year ago, but I don’t want to do that now.

The Culture

As I stated in the opening paragraph, the phrase “they have a good culture” is often heard in the tech industry when talking about Google.  However, I feel that’s a marketing ploy that’s worked out quite nicely for Google (see the non-existent 20% rule that lured me in).  With recent controversy like the James Damore lawsuit, or the $2.7 billion EU fine, to even just a few weeks ago this article written by a (now) ex-Google engineer.

What intrigued me the most about Amazon was there was no illusion.  This is business and you are an employee that will be leveraged in creating new businesses for Amazon.  For many this may be a bad thing, but for me, that’s just fine.  Google is no different.

My Interests

Since my days as a musician I’ve never made decisions strictly for money.  I took the job at Amazon because I wanted to see how a large scale tech company functions internally.  I wanted to learn how to write large scale software using industry best practices.  I wanted to grow as a leader, a coder and an engineer.  If I’m going to leave my position at Amazon it’s going to be for a position I feel passionate about, not more money.  I’m not convinced that Google is going to give me that.  Sure they’ll say “pick any team you’re interested in” (and that’s assuming I’m some tech rock star, which I’m not) or whatever other lip service is given to new hires.  But, one of the things I learned interviewing at so many different places is, you rarely get to pick anything and recruiters will tell you a lot of stuff in the initial phone call to get you excited about the company and the position.

My Current Position

I really like my current manager.  This is her first role as a manager.  This is my first role at a large tech company.  I feel like her and I are learning the ropes together.  Up to now she’s doing a great job, and she herself has a very good manager who I can tell is mentoring her very well.  Together they’ve created a culture of high quality work without sacrificing the work life balance of the engineers.

I also like my teammates.  To put it bluntly, there aren’t any assholes.  Everyone is ready and willing to step in and help when a helping hand is necessary.  For the most part no one is overly critical of one another and the senior engineers on the team are always happy to share wisdom.

I’m sure this same scenario could easily play out at Google as well, but, why put myself through months of mind numbing algorithm puzzles, and set my side projects on hold, for a chance to roll the dice on a new team at a new company for slightly more money?

 

 

The Dfinity Consensus White Paper

Dfinity released their first of what they claim to be many white papers last week.  This particular white paper was centred around the consensus protocol.  If Dfinity is in fact planning to release many white papers it makes sense that they would release the consensus white paper first, as the consensus layer is the foundation for any other innovations that will come from the larger Dfinity tech stack.  The core of Dfinity’s biggest consensus innovation is the threshold relay, which uses BLS cryptography, and is encased in this consensus white paper.  This post is intended to be a very broad overview of the consensus white paper. However, I intend to do a follow up post detailing BLS cryptography and threshold signatures, the main drivers of innovation in this white paper.

Verifiable Random Function

Let’s begin with the Verifiable Random Function (VRF), as this is the smallest building block of the Dfinity protocol.  A VRF is very simply, a pseudo-random function that provides publicly verifiable proofs of its outputs’ correctness.  If we recall from my previous post “The Blockchain from a Git Perspective” I point out that from a git perspective, consensus is simply randomizing the selection of the maintainer of the “repo”, where the repo is the block chain.  I then make the claim that proof of work mining is simply a method for distributing the amount of time a node on the network is allowed to be the maintainer of the repo.  But this begs the question hundreds of engineers have asked since Bitcoin: what if, rather than competing to act as the maintainer of the repo by burning electricity to secure the block chain, there was some other method of randomly selecting the maintainer of the repo?  Enter the VRF.

What if there was a way to randomly select a maintainer of the repo without relying on a proof of work competition?  Lets say every block included in it the name of the maintainer of the next block, but no one could guess which name would be chosen, not even the current maintainer, until the block was created.  At a very basic level, this is what the VRF enables.  However, rather than the name of a maintainer randomly being selected, the VRF is used to randomly select a group which can then be used to randomly select the group after that, and so on.

threshold_relay
A broad overview of the Dfinity block chain.  Here the VRFs are the little red rectangles “Rand i – 1”, “Rand i”, “Rand i + 1”, etc.  The outputs of the VRF aid in randomly selecting each group, “Group i”, “Group i + 1”, “Group i + 2”, etc.

If we can devise a method for a de-centrally agreed upon VRF, it should be relatively easy to randomly select a miner without the need for proof of work.  The VRF is triggered every block to produce a new output using BLS cryptography in the Dfinity protocol.  This per block VRF is dubbed the random beacon and has various use cases in the Dfinity block chain.

Threshold Relay

This hypothetical decentralized VRF is all well and good, but how is it achieved in practice?  Recall, it must be trustless the same way proof of work is.  This is where Dfinity has made a major breakthrough.  They’re using BLS rather than RSA or ECDSA, due to the fact that has a unique* threshold version as well as a distributed key generation for this unique threshold version.  This allows for a signature to be valid if a threshold of private keys signing the message is reached.

A brief example.  Let’s say 100 nodes are randomly selected to partake in the generation of the next random beacon value, and the threshold has been set to 51.  This means that after 51 of the 100 randomly selected nodes have signed the message, the system will generate the next random beacon value for the entire network.

selected_nodes
A screen shot of selected nodes in the Dfinity network.  For our example, green nodes are the nodes selected by the previous random beacon to sign the current random beacon, and there are 100 of them.  The grey nodes are all nodes in the Dfinity network.  Of the 100 green nodes, 51 would have to sign the message to propagate the next random beacon value to the rest of the network.

What’s amazing about this process is, it doesn’t matter which 51 of the 100 nodes sign the message, it will always produce the same random output, and this random output can always be verified of correctness.  The random beacon output generated in our toy example is then used by the system to randomly select the next 100 nodes to generate the next random beacon value, ad infinitum.  This is called the Threshold Relay.

Now that we have a trustless agreed upon method for generating randomness in the block chain, it’s a simple matter of using this random value to do various things on the block chain, such as selecting block makers, or a random subset of nodes for the random beacon generation of the next round (the 100 randomly selected nodes in our example).

threshold_relay
Hate to use this again, but, it illustrates exactly what the random beacon is/can used for.  It ties together both the block chain and the threshold relay chain, which is why I focused so heavily on it in this post.  However, a decentrally agreed upon source of verifiable randomness could be used for a whole host of things.

So what?

But why does this matter? So we have a different way of selecting a “maintainer” of our repo, who cares?  Well firstly, this is much more computationally, and therefore economically, efficient than proof of work.  We’ve all heard the stories of Bitcoin mining using more power than Ireland.  Message signing is a constant time operation, while proof of work is anything but constant.  There are also claims of empty blocks being mined in the Ethereum block chain in order for the miner to get the block out in time and receive the block reward.

The threshold relay also allows for faster block speeds, as block time is simply a system parameter to be tweaked, rather than dependent on peculiarities of the crypto economics of proof of work (see the BCH “emergency” difficulty adjustment).

Perhaps most importantly, however, Dfinity has devised a way to achieve near instant finality using what they call notarizations.  This is unheard of in block chain.  Even if Ethereum manages to roll out proof of stake, it will still be hampered by lengthy finality times due to the fact that an adversary could theoretically hide a mined longer chain (this is why you have to wait for X transactions to be confirmed before your balance shows up in exchanges by the way).  In Dfinity, this is not possible.

Conclusion

Note that this is an extremely simplistic view of the Dfinity protocol (I’ve left things like block notarization out).  But I didn’t want to inundate readers with complex explanations and math proofs.  I understand, however, that Dfinity must go through this pedantry in a white paper, particularly to defend the block speeds they’re claiming to achieve.

Given how important BLS and threshold signatures are to this protocol, I intend to add a second post teasing apart this cryptography in more detail, not only for my own benefit, but also my readers.  Until then!

 

 

*Dfinity defines uniqueness in the whitepaper as: A signature scheme is called unique if for every message and every public key there is only one signature that validates successfully. This property applies to single signature schemes and threshold signature schemes alike.

Bitcoin is not Cryptocurrency

“4 Strategies for Investing in Bitcoin”

  1. Don’t

With the recent rise in Bitcoin prices, everyone has taken notice.  Even this guy:

hqdefault
My favorite part of the video I watched recently was when he said: “Ether, or Ethereum, Ethereum is the more scientific name for Ether”

Because of this, I’m getting a lot of questions about Bitcoin, but almost none about cryptocurrency.  People are having a hard enough time wrapping their heads around the technology of Bitcoin that they’re not even bothering to ask about the larger cryptocurrency ecosystem.  They’re also equating Bitcoin to cryptocurrency.  Bitcoin is a cryptocurrency, yes, but Bitcoin is not the cryptocurrency.  This may seem obvious, and indeed it is.  However, people are conflating the price and notoriety of Bitcoin with the tech of Bitcoin, thinking, “since Bitcoin has the highest market cap, surely it must have the best technology, and the most utility, therefore, whatever Jackson says about Bitcoin must hold at least somewhat for the entirety of the cryptocurrency market”, which is patently false.

An example.  Someone recently told me they asked their financial advisor about buying Bitcoin, and he told them it was a ponzi scheme and to steer clear. I think this financial advisor came to the right conclusion, but probably for the wrong reasons.  If you’d have asked him what he thinks about cryptocurrency in general he probably would’ve said the same thing, but that’s because his only frame of reference for cryptocurrency is Bitcoin.  Bitcoin may very will be a “ponzi scheme” (I don’t know if it is or isn’t, so don’t ask me) but that doesn’t say anything about cryptocurrency generally.

But, I’ve also had numerous discussions with engineers who view it the same way.  Many call Bitcoin digital gold, which is one step removed from real gold, of which the famous Warren Buffet has this to say:

The second major category of investments involves assets that will never produce anything, but that are purchased in the buyer’s hope that someone else – who also knows that the assets will be forever unproductive – will pay more for them in the future. Tulips, of all things, briefly became a favorite of such buyers in the 17th century.

This type of investment requires an expanding pool of buyers, who, in turn, are enticed because they believe the buying pool will expand still further. Owners are not inspired by what the asset itself can produce – it will remain lifeless forever – but rather by the belief that others will desire it even more avidly in the future.

The major asset in this category is gold, currently a huge favorite of investors who fear almost all other assets, especially paper money (of whose value, as noted, they are right to be fearful). Gold, however, has two significant shortcomings, being neither of much use nor procreative. True, gold has some industrial and decorative utility, but the demand for these purposes is both limited and incapable of soaking up new production. Meanwhile, if you own one ounce of gold for an eternity, you will still own one ounce at its end.

What motivates most gold purchasers is their belief that the ranks of the fearful will grow. During the past decade that belief has proved correct. Beyond that, the rising price has on its own generated additional buying enthusiasm, attracting purchasers who see the rise as validating an investment thesis.

As “bandwagon” investors join any party, they create their own truth – for a while. Over the past 15 years, both Internet stocks and houses have demonstrated the extraordinary excesses that can be created by combining an initially sensible thesis with well-publicized rising prices. In these bubbles, an army of originally skeptical investors succumbed to the “proof” delivered by the market, and the pool of buyers – for a time – expanded sufficiently to keep the bandwagon rolling. But bubbles blown large enough inevitably pop. And then the old proverb is confirmed once again: “What the wise man does in the beginning, the fool does in the end.”

Today the world’s gold stock is about 170,000 metric tons. If all of this gold were melded together, it would form a cube of about 68 feet per side. (Picture it fitting comfortably within a baseball infield.) At $1,750 per ounce – gold’s price as I write this – its value would be $9.6 trillion. Call this cube pile A.

Let’s now create a pile B costing an equal amount. For that, we could buy all U.S. cropland (400 million acres with output of about $200 billion annually), plus 16 Exxon Mobils (the world’s most profitable company, one earning more than $40 billion annually). After these purchases, we would have about $1 trillion left over for walking-around money (no sense feeling strapped after this buying binge). Can you imagine an investor with $9.6 trillion selecting pile A over pile B?

Beyond the staggering valuation given the existing stock of gold, current prices make today’s annual production of gold command about $160 billion. Buyers – whether jewelry and industrial users, frightened individuals, or speculators – must continually absorb this additional supply to merely maintain an equilibrium at present prices.

A century from now the 400 million acres of farmland will have produced staggering amounts of corn, wheat, cotton, and other crops – and will continue to produce that valuable bounty, whatever the currency may be. Exxon Mobil will probably have delivered trillions of dollars in dividends to its owners and will also hold assets worth many more trillions (and, remember, you get 16 Exxons). The 170,000 tons of gold will be unchanged in size and still incapable of producing anything. You can fondle the cube, but it will not respond.

Admittedly, when people a century from now are fearful, it’s likely many will still rush to gold. I’m confident, however, that the $9.6 trillion current valuation of pile A will compound over the century at a rate far inferior to that achieved by pile B.

I can’t blame Mr. Buffet for not investing in Bitcoin.  However, he’s recently said he was wrong about Google and Amazon.  Buffet isn’t a technologist, he’s a financier.  He also claims he only invests in things he understands.  I don’t blame him, or many other people for not understanding this tech and it’s nuance.

However, I tend to agree with Mr. Buffet, and the financial advisor with regard to Bitcoin.  Bitcoin may very well be a ponzi scheme in as much as gold is.  Bitcoin core is positioning itself as a digital gold, as such, if you don’t think gold is a solid investment, you probably shouldn’t invest in Bitcoin, using the logic given above by Buffet.  But this does not mean that all cryptocurrencies are positioning themselves as digital gold and that you shouldn’t invest in any cryptocurrencies.*

Also, while I’m at it, too many people who haven’t investigated the cryptocurrency ecosystem are substituting arguments against Bitcoin with arguments against cryptocurrency in general.  What may hold true for Bitcoin in an argument does not necessarily hold true for all cryptocurrencies.

Building Blocks

Speaking as a software engineer, we’re trained to crystallize logical concepts, and then use these crystallized logical structures to build more logical structures on top of the existing ones, and with the block chain, we’re doing just that.  Block chain engineers are extrapolating from Bitcoin’s block chain structure, building new things with it everyday.  One of the breakthroughs for me when learning about cryptocurrency was when I investigated Ethereum and saw the inferences made from Bitcoin’s original block chain.  Once this connection was made I started to realize the possibilities were vast, not just internal to the Ethereum block chain as many before me have already stated, but with the block chain concept as a whole.  We’re still trying to figure out which building blocks fit where, which are useless, and which will form the backbone of this new landscape.  But that’s technology.  There will be many more innovations to come, as this technology is very much still in it’s infancy.

Yes, we’re in a bubble

Yes, we’re in a cryptocurrency bubble, and everyone is trying to cash in on the craze.  But this doesn’t mean there isn’t still true innovation and disruption happening in computation in this space.  But also, what’s wrong with a bubble?  Look at the beautiful infrastructure and technology the last tech bubble gave us.  The cryptocurrency bubble is turning heads, just as the dot-com bubble did before it, and luring brilliant engineers into it’s fold due to these absurd valuations.  Yes, a lot of people are going to lose a lot of money, but a lot of people have, and will continue to, make a lot of money, just as they did during the dot-com bubble, and I don’t think there is anything wrong with that.

 

 

*note: this also doesn’t mean that Bitcoin’s only use is as a digital store of value, but for the sake of keeping this digestible for beginners, I won’t go there.  In fact, the only reason I bring this up is because I know advanced readers from the Bitcoin community are going to pitch a fit about this.  Yes, most of us understand you’re purchasing access to the btc network, but with all the price speculation it remains to be seen if access to this network is priced according to it’s value.