Why I left Trivago to become a blockchain developer

0
Why I left Trivago to become a blockchain developer

 69 total views,  1 views today

Why?

Because I get to program innovative and creative solutions for many unresolved challenges our society faces today.

Because I am relatively young (27) and I don’t want to compete for Java positions against developers with 20+ years of experience.

Because Web 3.0 is coming. In the last ten years, we ’ve helped build large platforms for mass communication. Life updates? Facebook. Story to tell? Medium. Picture to share? Instagram. Unfortunately, these platforms have a dark side. And this dark side powers their entire business model. Users have given up their data sovereignty and lost attention to advertisements.

Because the blockchain ecosystem is programmer’s dream – you get to program software like this:

The architecture diagram above is called Smart Vault – an authorization protocol managing programmable file permission access to protected content in a peer-to-peer network.

Data is accessed on a need-to-know basis and can be erased forever. Access is controlled by programmable smart contracts that contain an Access Control List (ACL). This offers transparent, public, and verifiable access without a central controller. Control is always in the hands of the data owner, smart contract author, which means it is GDPR compliant by default.

I was developing Smart Vault at Lightstreams for the last two years. It was a lifetime career experience, and in this blog post, I want to show you what skills you can learn by exploring the blockchain world. But before we get there, let’s rollback to 2016, where the story truly begins.

Rollback

It was five years ago. The project was called: trivago Intelligence. Together with my team, we were developing a massive monolith. The project goal was to enable OTAs (online travel agencies) to decide how much they want to pay for new customers, traffic coming from trivago to the OTA’s booking website.

We generated millions in revenue monthly.

A lot of fun. Incredible team. The best one I ever worked with.

Technical stack:

  • Few bulky database servers with 250GB+ of RAM to support MySQL DB
  • A set of PHP servers to handle traffic
  • A very complicated workflow processing millions of advertisers bids from an uploaded CSV to a MySQL DB to a bunch of Hadoop machines, and everything eventually fed into the trivago almighty hotel search’s Java cache services

So much fun and good memories, BUT as the years went by, I was looking for a career change. A new job or project to expand my programming career. I was deciding between a Java position in NewRelic (great company, recommending) or a GoLang position at a new emerging blockchain startup.

Yep. I went with Go and blockchain. Why?

Because it is unexplored territory, better for my long-term career, and I recommend you to do the same.

If I would continue in Java development, I would keep programming monoliths, learn something here and there. Still, the majority of the time, I would be just working on autopilot, fixing bugs, and every second sprint, I would implement a nice feature. A good, safe, enjoyable choice but a bit slow for my personal taste, linear, at best, career progress.

Or worst, I would be working on broken micro-services 🙂 Just joking, they are great for scaling individual parts of the project and dividing the ownership between independent teams.

Aside from less exciting opportunities, there is also a financial aspect to every job. We all have bills to pay. In Java/PHP/Javascript world, we compete over a salary raise with others 10 million Java developers, each with 20 years of experience. Possible, but an uphill battle that will get harder by every day.

…fast forward to the present.

Why do I recommend learning blockchain to every developer

Blockchain is a paradigm shift in software development and architecture.

I recommend blockchain programming because it’s an entirely different way of programming – no centralized database (sorry MySQL). No frameworks. No company is storing all your personal data in a “secured” server.

It’s new. It’s exciting, and especially, it’s complicated and challenging. It’s morally right, fair, and beneficial for the end consumer (more about this in the next post).

In the blockchain world, I have the opportunity to explore and learn daily about:

  • Peer-to-peer systems software architecture
  • Event-based architecture
  • How computers can communicate autonomously (Bitcoin, Ethereum, XRP)
  • Go programming language ❤
  • Solidity programming language (Turing machines are quite fun)
  • New Javascript framework! Yey…
  • Encoding and secure hashing
  • Asymmetric cryptography and general internet security

I learn about topics I would most likely never come across otherwise, and more importantly, I get to do something new every single day because the industry is evolving on the fly.

In the blockchain industry, my skills grow exponentially. Including my daily headaches from unclear error messages, one can’t find on StackOverflow, yet 🙂

1) Peer-to-peer systems software architecture

The most famous example of this software architecture is probably our favorite Friday movie provider - BitTorrent.

From a technical perspective, the p2p architecture forces you as a developer/architect, to think about your program from a radically different perspective.

Every peer:

  • is the custodian of her/his own personal data (money, documents, metadata, analytics)
  • communicates independently with other peers (individuals or companies) and fully control what they share with whom
  • can at any moment disconnect, change/update its software

Let me ask you something. Let’s say the discussed web from the diagram has a user module. Where are those users stored without a centralized MySQL DB and no user table? What about the credentials (email and password)? Authentication? Firewalls? Personal content? How do they synchronize?

In the case of shared software, how on earth do they collaborate releases?

Challenging enough?

If you are as excited as me about a p2p design, you are in for a treat. Blockchain is like a torrent network but on steroids! 😍

2) Event-based architecture

Blockchain is an immutable, append-only database. The DB changes as a reaction to new events. Because of this, blockchain is the best data structure for auditing and financial systems where everything must be tracked.

It’s impossible to delete an event occurrence and “cover your tracks.”

It’s impossible to conceal evidence.

In SQL systems, a rare politician with tech skills can execute a query like:
DELETE FROM donations WHERE id = 10

Blockchain is actually very bad for illegal activities despite what social media “experts” claim. Cash $$$$ and the current financial infrastructure is a MUCH better alternative for doing dodgy business.

3) How computers can communicate autonomously

This is a really geeky and complicated concept. Blockchain is like a Tesla of databases. In the blockchain world, all servers constantly communicate, make decisions, evolve, and search for consensus.

4) Go programming language

The most famous Ethereum blockchain client (geth) and many other projects in this industry are written in Go.

I coded in many languages in my life, but I never encountered such a practical and high-performance language like Go. In Go, you go straight to the business problem. You don’t need a framework. You don’t need an Apache/Nginx. You just solve the problem. Quickly and efficiently.

BONUS: Go is trendy and well paid – supply vs. demand. If you won’t like blockchain, you can stick simply with Go and expand your career in that direction…

⭐ Although, I am sure you will fall in love with blockchain programming as these 25k go-ethereum fans! 🙂

X) Cryptography

I will keep this part short. The current Web 2.0 security is “solved” by a centralized firewall.

Everything is stored on a few servers, and no one can access the servers except the one trustworthy, underpaid company’s sysadmin (or the new rich $$$$ DevOps version of him). When you say that loud… it doesn’t sound that secure, anyway.

Blockchain wouldn’t be possible without cryptography. Are you ready to explore asymmetric cryptography, elliptic curves, and digital signatures?

Exciting times to be a software developer.

Read More

LEAVE A REPLY

Please enter your comment!
Please enter your name here