This particular tweet from Safya Abdullah led me to some thoughts:
Perhaps an unpopular opinion (and here is a bit of irony from me).
To be a capable and excellent engineer, you don’t need to write blog articles, participate in open source projects, give technical lectures or do anything else.
You can leave your code in the office - and this is quite normal.
This position is close and sweet to my heart, although I also understand the irony. One of the things that I say to potential employers since
I was fired for refusing to program after work is that
I do not agree to overtime . At least not on a regular basis. I can sometimes participate in the hands, when it is critical to urgently roll a specific change or fix a bug, but except for such cases I will
show up, work hard and go home .
In her tweet, Mrs. Abdullah goes even further, and so I suddenly saw in a new light the image of my thoughts. Look, I switched to such a worldview (to appear, work hard, go home) mainly to protect my own mental sanity. If I do not see clear boundaries, what time to think about working problems, then I will think about them all the time - and so I can thoroughly load thoughts about what I have to do, about all these problems that I haven’t decided yet. I already have
attention deficit disorder (absent-mindedness), so the fact of setting such boundaries helps to contain impulsive thoughts.
')
The problem is that our problems never end. For a mind craving for puzzles like my, programming is full of unsolved puzzles, so the brain will always find suitable entertainment and solutions - but you will still feel that you haven't
completed anything yet. You solved the problem! Fine! But it does not mean anything. You are still going crazy, feeling frustrated and discouraged. Hence the burnout begins.
Because of my irrepressible brain, I have to set boundaries. I have to leave work at work. I have to become a developer from 9 to 17.
I know that many developers suffer from imposter syndrome. You probably experienced it at some point; it feels like you are some kind of rogue who really doesn’t understand what he is doing and just pretends to be doing his job normally. For me, the problem is that if I do not set these boundaries, if I allow myself to continue to work, study and solve problems all the time, my own impostor syndrome is
only getting worse . I want to know
everything , but I can not - and because of this, I begin to take less care of myself.
So I have to set boundaries. Borders like "work stays at work" and "take breaks as often as possible." Borders that keep sanity intact and keep absent-mindedness in check. For a long time I thought that this makes me an inferior developer. I could not program 16 hours in a row, because after that I was no longer able to do anything else, and I have a
wife and three children at home who need attention and love. Get over it, your code will never love you the way you do it. But I still wanted to become better, to become a better programmer, like those I was up to, and I hated myself for not being able to do it.
Twitter and other social media are the worst helpers here. People who are clearly brilliant programmers, whose work I admire, can declare that they have spent the whole day on coding - and now they feel complete satisfaction. And I can only sit back in a chair in despair, why I can not do it. Why am I not able to make such an effort? Dumb brain! Why don't you let me be as productive as they are ?! I can be as good as they are, unless you interfere!
It took me a long time to come to terms with the fact that my brain just doesn't work that way. I can never program 16 hours in a row. I can never sleep all night - and still complete the work. I can never be as "productive" as these people say about themselves on Twitter. I just can not. And as I understood in the 11 years of my professional work as a software developer,
this is normal !
This is normal, because eight hours a day I can work it right. I can still do my job and do it very well. I can still manage my team effectively. I can still find interesting solutions for unusual problems. I just need borders. The trick is to realize that this does not make me worse than those guys on Twitter; I'm just different.
I can put a lot, which is the "silent majority" of programmers who just want to do their job and go home. These people do not sit all night trying to mentally deal with the problem that has been tormenting them for weeks. These people do not write blogs, do not send code to open source projects, and do not give technical lectures - and in general are not particularly interested in programming during off-hours. Sometimes they are derogatory called "programmers from 9 to 17". I want to say to these people that although we are “programmers from 9 to 17,” this does not make us worse developers.
If you are a developer from 9 to 17, this does not make you worse, it only speaks of your best time management abilities.

I'm not here to choose the best option. I can only say that it works for me and that I am a developer from 9 to 17. I want to do my job, do it well, and then go home and do other things (for example, write this blog). I need a routine to keep my sanity. And you, too, can do that, even if your brain works differently than mine! It is not necessary to spend an eternity of time programming to be a good developer. You just need to think deeply into problems - and have the desire to do a good job.
And you know what? If you read it here, it means that you are already doing a good job. And now, damn it, let's go home quickly! The code will not disappear anywhere until tomorrow, I promise.
Happy programming!