247 karma · joined August 17, 2010
>I can't bare the endless meetings, constant micromanagement
This _can_ be fixed. Even if by switching team or even jobs. With some experience you start to understand in what teams and under what management you work best. A lot of us hate micromanagement. And I can tell you there are a lot of teams without this problem. I would say that micromanagement is the least common problem from what you mentioned here. Simply because it usually leads to overall inefficiency. Also this one you can actually fix by talking with your manager. Maybe they just don't trust you or overprotect you. Nobody wants to do your job ;).
Endless meetings are harder to fix. If your level is high enough you can try to fight it. But usually it is easier to just switch the team and even your work area. Do something lower level, further from API. Even in the worst business-centered jobs there are places where they need to you solve technical problems. Simply because meetings won't solve those technical problems ;).
> I can't bare the devs that go out of their way to work weekends without being asked
this one is on you. It shouldn't affect you personally, unless they ping you on the weekend for 'quick lgtm'. I understand it can be annoying, especially when they advertise such work as something heroic. You either need to stop caring about that or try to explain to your manager that promoting such behaviour in the team demotivates others. Actually I once was one of those 'work during weekend' guys. I had my reasons. After complains from my friends in the team, I simply stopped announcing any such work, so unless anyone specifically wanted to check commit time, they were completely unaware if I actually did something on the weekend. It worked relatively well. So while I sometimes like to overtime, I'm sure it is unhealthy for the whole team to advertise/promote someone for doing so.
I (everyone?) agree that software development is not only programming/writing code. It also system design, documentation, finding solutions, troubleshooting, load testing and so on. And yes, it is also gathering and understanding requirements and collaborating with other teams. But if your average developer only has 20% of time for coding and everything else goes to meetings, you are doing something terribly wrong. Simply because the time of the developers is used inefficiently, unless you are doing something very simple (from technical point of view) and cut costs on other roles, so devs are doing everything. Usually it means that there is no proper Product/Project management and technical leadership. You can build a lot better and faster if your developers have time to focus on development itself without going to constant meetings to understand this sentence in requirements. Even during my 'worst' (from dev time perspective) years as a TL I spent ~40-50% of my time to management/communication work. It allowed team of 5 devs to be almost distraction free (less than 3 meetings per week per dev), because I worked as proxy for them.
In my experience adding good technical PM between devs and other managers can greatly increase devs efficiency and more importantly - their happiness
But ok, lets imaging you are right. So you are saying that, it is NATO fault that Russian invades Ukraine simply because they didn't take Russia into NATO? Right?
well, if you measure skills by amount of time people spend on HN, I think you miss something.
Yeah, you don't have to work more. But imaging what would be if you wanted to work more. Not because you have to or forced to. But because you find your work so interesting that you want to put more hours where just to do it. Thats what at least some of commentors are trying to tell you. I were in positions where I could simply don't do anything the whole week and nobody would care (I was TL of the great team). But I didn't want to. Even when I actually avoid doing tasks my manager wants from me, I always find some cool stuff to do, to improve code I already have or investigate something or just bring shiny new tehcnology thing.
Anyway, I never was in a team where such behaviour OP described was acceptable. Maybe it is cultural thing (I'm not from the western country), or just social (you try to be closer to people with the same values). Yes, you probably won't get fired immediately. But it is all clear and visible if person work so little. Visible to teamlead and other team members. You won't get promotion or bonus. And eventually your direct manager will try to remove you from the team. Even i firing is not so simple, there are usually ways to rotate him to different team. And if person gets the same 'recognition' in the next team, his case usually goes to HR and they would find they to 'let him leave'. I still agree that it is ok to work just as much as you are required for your pay. But if developer simply wants to work as little as possible, he eventually is asked to go work somewhere else. Because it is simply more enjoyable to work with developers who give a shit.
> A guy who is generally good at CS or math can't show up and do wel
this is also not true. While you won't get like first places without practice, you still will be able to solve basic problems (if your cs degree has any substance behind it). And during interview it certainly shows. Nobody will give you hard problems which you can solve only by having some very specific knowledge of this particular problem. If you don't know some algorithm by hard but still can work out some approach using you background knowledge, you will pass almost any interview.
I don't believe it works like that. U get fewer promotion not because you are remote worker. The problem is that you can become less valuable resource, who can effectively make less overall impact on the product. Hence lower rating. So for employer is not trade-off between pay/remoteness, rather between better employee or remoteness. Basically nobody cares if you are remote or not if you can do your job efficiently. And be transparent and manageable.
Anyway for me the only thing that sort of works is group sport sessions. I swim and go to group trainings twice a week. It doesn't get me any real friends, but I get people to talk to, we have chat and everything. This is the only time I don't feel lonely atm. Going out to some advernture-like activities will be even better - camping, biking, trail walking. But you need to find group of people to go out with. It is easier to do if you work in some big company - there probably already some groups like this. I did positive experience with coworkers, but sadly it didn't last.
After around 6 years of crud I decided to try something different, and went to yandex (it is like google, but in Russia). First time it was just the same crud (lot of rest api), but after some time I managed to land on some infra projects - kafka, streams, microservices. And it became much much more fun. You really build stuff from the scratch, you design it, test it under high load. Anyway my tips:
1. Don't go for buzz word, find job where you can actually choose technologies. Soon you will understand how to see through the hype. And cost of choosing wrong tech.
2. Stop trying to learn what 'everyone think is cool'. Learning compilers won't make you better developer, esp if you are not into it. And Dragon book is not the best intro to compilers anyway. If you want to learn something fun, find what it is fun for you in the first place.
3. If you want to become better developer, try to improve things you do at your day job. Not something like 'we should use k8s or we die'. More like 'we will have to make a lot of these crud in near future, lets spend some time to build framework that makes building and support them 2x faster and cheaper'. Look at small and achievable improvements first.
4. Invest time to understand how things work. And build your own opinion about technological decisions.