September, 2015 - Tiago (this was shared with a colleague) I can talk about the software engineer life a bit - I've been doing this professionally for about 10 years now. You know, being a software engineer is tough. Usually we spend the whole day inside a dark room, in the front of the computer and (physically) alone. Our bodies were not made for that, it's simple. On top of that, add our personal problems like the ordinary rush of life, the career growing anxiety, financial issues, mental health and so on. Sometimes our life is work & sleep. Just. No wonder why we easily become sad and depressed. There's the good side of this profession though: meet culturally and geographically different people, work on exciting and challenging projects, do something that can impact people's life, choose your area of knowledge (specially if you're in a big company) and raise up money. Informatics is so hype again after all (self note for the future: flying cars do not exist yet). Much of my daily work involves on networking (which if I'd be mean I'd translate to "forcing the connection and socialization with other people"), reading technical news (blogs, rss feeds, google+, IRC), reading and selecting emails (*selecting* is important) to read and organizing my current tasks, projects and future research areas. This is what I call the "managerial", or "strategical", part of the day, which usually I do during the morning. Then I have a break and go to the gym, to short walks, meet people for lunch outside, grocery store, barbershop, bank etc. In other words I go out to see the Sun. A bit. The "operational" part, usually coming in the afternoon/evening, is when I put the other things aside and go do the coding... man, I love coding. That's the cherry on the top for me. Coding is very important though cause it's where "people" see if we, software engineers, are good and productive. *What* to code is important. For example, it's easy to fix up bugs on superfluous piece of a program and people will think that you're doing an amazing job. But don't fool yourself. And the things are even more difficult because sometimes we lie to ourselves on this aspects -- many times I caught myself spending days, weeks programming many LoC, becoming extremely satisfied about it in the end of the day, but then I've noticed that, overall for the project, it wasn't so beneficial; that is when we lie to ourselves. Avoid this cause in the long run you going to hate yourself and people you. The conclusion? Yes, there is: I think we need to constantly question what we're doing in our engineering life and why we're doing so. Like, always. I constantly think about giving up, going for a long travel, become a musician again, study art or go live in the Mediterranean. Be a bohemian. Or something like that. So it's natural what you're doing right now and questioning, trying to find out an interesting project, changing the habits, etc. So, keep doing, keep questioning! Perhaps we are already happy on the current project. Perhaps not. "In programming, as in many fields, the hard part isn't solving problems, but deciding what problems to solve. Imagination is hard to measure, but in practice it dominates the kind of productivity that's measured in lines of code.", Paul Graham "If you want to get real work done in an office with cubicles, you have two options: work at home, or come in early or late or on a weekend, when no one else is there. Don't companies realize this is a sign that something is broken?", Paul Graham "Perhappiness", Paulo Leminski