Lessons Learned From Previous Projects

An exciting part of software development is what was unanimously considered good practice at one point in time can be more ambiguous years later. Or even plain wrong. However, you generally need to do it multiple times over time to realize it. Here are my top learnings from my experience in Java projects.

Packaging by Layers

When I started my developer career in Java, every project organized their classes by layers - controllers, services and DAOs (repositories). A typical project's structure would look like this:

Fail-Fast Reliable Software Strategy: Debug Failures Effectively

I love cooking and use my  Thermomix a lot. If you hadn’t heard about that amazing innovation, it's a kitchen robot… Well, it’s a magical super cooking machine. When designing the Thermomix, its designers took the approach of fail-safe instead of fail-fast. This is a smart choice in this case, but it has its drawbacks.

E.g. my machine tried to recover from a failure which sent it into an infinite recovery loop. I literally couldn’t pull out the food from the lid that was sealed shut. But normally, it’s one of the most reliable devices I own.

If Bitcoin Fails, Will Blockchain Technology Ultimately Follow?

A year ago, on December 17, 2017, Bitcoin price reached its all-time maximum — $19,783.21. Since then, it has steadily declined, just like the faith of investors in cryptocurrencies, and today, it is close to just $3,000.

Experts say this downfall is happening due to disheartening discoveries, like the one that nearly 85 percent of ICO’s in 2017 were a scam, or that more than 50 percent of Bitcoin startups stop functioning in four months after their ICOs.