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.

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.

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.

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

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.

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.

Premature 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.