How can you trust a data store distributed among an arbitrary number of independent peers? Since each peer has control over its own version of the data, how can you reach a consensus? In a nutshell, these are the main problems blockchain solves.
Conducting interviews is hard. Hard enough to make Google fail. In fact, so many companies are bad at it that failure is somehow expected, and finding one that does it well makes you wanna hop on board without asking much else.
Running a Rust HTTP server using Rocket is really easy and well documented, however, if you plan to go serverless, there's still a lot of uncharted territories.
From the helpful syntax error to the dreaded null pointer exception, errors are part of our everyday development experience. Although sometimes misunderstood or mistreated, each with its own quirks and perks, they can become trustworthy companions when handled correctly.
Microservices are the natural evolution of monolithic systems in an increasingly demanding, modular, and distributed industry. The strongest argument against them is usually the implied complexity, debugging, and deployment challenges coupled with the poor development experience for small teams/projects.
I've been lucky enough to start a fair amount of greenfield projects in the past years. Looking back, I feel like writing tests had always saved time in the long run but were rather cumbersome when working on UI and smaller projects.
While employers usually have a well-defined process for picking prospective candidates, individuals on the other side of the table get carried away and leave the interview without having enough data to make a well-informed decision.
Software design is a heuristic process: there's no bulletproof recipe for success. We iterate and learn as we go while common sense and previous expertise guide us. But sometimes, our common sense fails. Here are five misconceptions about coding and software design and how to avoid them.
One of the main goals of unit testing is to isolate the unit under test, or, in plainer terms: to avoid (and control) calls to any external dependencies in the flow that you're testing.