Programming has taken over my life


#1

I live in a bigger city and work at a 4 person startup as their lead dev (whatever that means). I really like the idea of our product but unfortunately I am in a situation where there are not adequate resources to execute.

My boss/CEO is insistent on keeping the team small and cheap for our investors but I am very frustrated and sick of juggling soo many responsibilities (crud/admin/custom analytics pannel/algorithm/deployment/ front end js).
He has taken up some efforts to try and learn our backend language and I have encouraged our “front end developer” to really improve his javascript but frankly they are not proficient enough to write code that I do not have to go back and fix.

Is anyone else in this position where you feel like constantly having to rewrite other peoples code to ensure that it is maintainable?

Because of these circumstances, I can not turn to any proficient developers to guide the process and programing has taken over my life. I need a mentor but I look around and suddenly realize I am that guy. This realization leads me to spend every fucking waking hour coding, solving architectural issues that are above my experience level and reading anything that might help. I hate this and frankly after taxes I am not getting paid enough to give my life to this company. I spend my weekends learning more and don’t see friends anymore.

I have tried turning to resources like codementors or hackhands (which my boss has been supportive of) but frankly working with someone even a few hours a week for a couple hundred $$ is not that beneficial and does not help solve architectural issues.

Has anyone been in this situation?


#2

Yes, been there in my previous job, as a “tech lead”. It is a burden to be the most senior and capable engineer. And most of the time you won’t be payed what you deserve and expect. So, you have to start managing yourself (e.g.: prioritizing how you spend your time), otherwise you can easily burn out or start behaving dysfunctionally (e.g.: moral hazard.)

For example, when I first became a tech lead, I spent a lot of time doing code reviews, coding and refactoring other people code, design high level architectures, i.e.: tasks that are typical for a senior engineer, in addition to project management and working closely with HR and other engineer managers. As I hindsight, I’d say most of the first half was a waste of time. Good maintainable code is not valued anymore neither a business priority for small companies. In other words, revisit your priorities as a leader according to how much time you want to spend at work, for example, stop refactoring and only jump in to unblock people. Yes, the trade-off is to have an less than ideal code base but life is short, and the world couldn’t care less how you implemented that backend.

In all my past jobs, I found advanced technical mentorship to be rare. All mentorship I found was either basic/new-hire technical stuff or office politics.


#3

Thanks, I appreciate your insight.


#4

Why were you refactoring other peoples code? If I would be senior, I would tell what is wrong and tell them to refactor to make it right. And over time they would learn what is right and wrong.