Aladdin Biyabangerd
WritingSoftware Engineering

The backend problems tutorials do not show

Written byAladdin BiyabangerdPublished:3 min read

When I started learning Java the problems were clearer. There is a class, a method, a database; a request comes in and a response goes out. When the exercise is finished, the program works.

In a real system, “it works” is a very low bar.

What happens if the request arrives twice? If the database answers slowly? If another service is down? If the operator enters the wrong data? Can yesterday's transaction be touched today? What if the same room is reserved for two people? What if the payment succeeds and the response is lost?

The main thing I learned

Backend development is becoming less about writing code for me, and more about thinking through what could happen before it does.

The code itself matters. But for a system living in production, state, failure, data consistency, logging, security and recovery matter at least as much.

I do not think I know all of this yet. The opposite: every real project turns up another detail, and some of the approaches I was sure about get thought through again.

That is the interesting part of software engineering. The learning does not finish. The problems you meet simply change.