Front end vs back end programming
When I work on the front end (mostly iOS/Mac apps) I feel constantly involved. Write, compile, run, verify. Rinse and repeat. There are no dead moments, unless you are compiling a big project in Swift. I am sucked in by the task at hand, I hammer it until it’s solved and then I move on to the next one.
When I work on the back end things are more laid-back. There are dead moments because some tasks take time, either CPU or network time. For example provisioning a machine might take 7-8 minutes, depending on the complexity of the installation script (that’s the perfect time slot to brew and drink an expresso).
Processing big files to import data can take even longer, up to 20 minutes in some of my apps. Perfect time for a shower or some workout.
Sometimes I even run half-day long experiments to test the performance of some code, or the quality of machines by different providers. That’s perfect when my wife has her day oof, so when can spend some time together and with the kids.
When I work on the front end I almost always know what I am working on. When I work on the back end I need to take a short note, because 20 minutes are enough to forget the purpose of the code I ran before leaving the desk.
They are two pretty different worlds. I like them both. I used to like front end a lot more, because that’s what the customer sees. Lately I am more and more liking back end and infrastructure tasks. The customer doesn’t know what it is, but I know how it impacts the customer experience.
It’s not always all roses. Sometimes I’d need focused time to work on the front end but family commitments don’t allow me that. Other times I’d need to deploy something quickly but I have to wait for a long process to finish its job.
Overall I am pretty happy with the variety of tasks that I daily work on. Definitely I am not bored.