I've thought about this. I actually do not think I'm the smartest person in the room, hell two of the people in my direct team are definitely smarter than me. I think I have really good systems that allow me to consistently solve problems and write code.
On the loneliness front, I meant in the scope of working. I have four kids, I am everything BUT lonely with them.
However, I do agree that aside from work and one of my hobbies I have neglected my health, specifically I need to eat healthier, exercise more and lose some weight. I've debated working one hour less than I'm supposed to just so that I can exercise daily, but I find myself worrying that without me things will fall apart.
Logically, I know that's not true. If I died today, the company or my team would not collapse. Nevertheless I feel that if I'm supposed to be working from 8-5 (which 1 hour lunch), I need to actually be working.
Being the big fish at your current job gives you some advantages. I would talk with your manager and explain that you need to work fewer hours so you can take better care of your physical health. Especially if you combine this with coaching your peers, they may not resent the fact that you are getting some perks they don't get. And if they do, well, that's not your problem. I have worked at many jobs where I received flexibility that others didn't have, and as long as you're not a dick about it, others will accept it because of your obvious value. The alternative is, you quit and then they get all the work.
Work isn't everything. If you start working on your health, it will improve your mood and outlook. My guess is, you have an introverted personality and occasional feelings of isolation are just part of it. Try to accept it rather than fix it, because you might find that if you did have peers, that would have its challenges too.
aside from your 1 hour lunch, you're entitled to at least a couple 15 minute breaks. Make sure you're stepping away every now and then to take care of yourself. Working from home is not the same as working in the office and we all need to adjust.
1) food: this guy Rip is truly a lifechanger (esp if since you're in the zone when it would be smart to look after your heart: https://mealplanner.plantstrong.com/
I don't have any career advice for you, leaving is one option but consider that it would great for you to "skill-up" the people around you so when you leave it isn't like they lost their Golden-Boii, but rather bow out like a Bob Iger at Disney & leave them with a glorious future blah blah
> I actually do not think I'm the smartest person in the room, hell two of the people in my direct team are definitely smarter than me. I think I have really good systems that allow me to consistently solve problems and write code.
I had the exact same experience in my first job, where I was one of the least experienced developers and I wasn't even remotely the smartest one there.
However, I was working smarter than everyone else. For example, I was the only one that had adopted a "proper" IDE (IntelliJ IDEA). I was the only one using the source control the way it was supposed to be used. I was the only one using scripts to automate the gruntwork. Etc...
I could be told about a bug and the function name it was in and be done fixing it in under a minute. Literally just the "global semantic search" feature of the the IDE saved me hours of time compared to everyone else. Incremental builds saved me another hour. Automated tests running in the background eliminated an hour of manual testing.
Hilariously, the reason I leaned on the tools so heavily was that I felt like I wasn't good enough to navigate the codebase without the assistance of an IDE.
The end result was that I could run circles around everyone else. Like you, I compared the checkins per week and I was #1 by far. Literally more fixes per unit time than everyone else combined.
This should be a lesson for everyone here who thinks that they are smart, or experienced, or "senior":
- Your typing speed is not your velocity. It doesn't matter how good you are with VI or Emacs if you take hours to complete a task that a purpose-built IDE lets a junior developer finish in a minute.
- Tooling outside of the editor matters. Incremental builds matter. Automated tests matter. Telemetry from production matters.
- Focusing on features while there are open bugs is a guaranteed catastrophe. You will have to fix the bugs sooner or later anyway. You can fix them right now, or you'll have to compensate for them while adding features... and then fix them later, after having wasted your own time.
This was a looooooong time ago, so I can't remember the details of the specific tools. I even forgot the name of the SCM, it was some weird nonstandard one.
The codebase I was working on was Java, server and client.
I actually learned a lot from that job! I stayed just long enough to see how they do everything so I can then do the opposite in my career. I purposefully quit before I ran the risk of being infected by their attitude.
Random examples of the madness that went on in that place:
- They created a custom database engine in Java that used millions of tiny flat files to store the data. The reasoning was that Oracle was too expensive. They then had to license Oracle anyway because they couldn't generate the ad-hoc reports their customers wanted out of their own DB engine.
Lesson learned: Always use common, popular CoTS OLTP DBMS products. Don't make a DB engine unless the DB engine is your only product.
- No transaction capability in the custom DB. The logic for writing data to the DB was... hilarious.
Lesson learned: never try to "emulate" transactions. Always use the built-in transaction idioms of the underlying system.
- Deadlocks, live-locks, data corruption, and even thread leaks were the norm, not the exception. The server would only start up successfully 2 out of 3 times at best.
Lesson learned #1: Multi-threaded code is either proved to be correct mathematically, or it is Wrong with a capital W. There is zero wiggle room on this.
Lesson learned #2: Use the best quality[1] multi-threading libraries for their "primitives" such as bounded producer-consumer queues. Never try to hand roll these yourself for any reason, ever. Just don't.
Lesson learned #3: If you code is riddled with critical crash and correctness bugs, you'll never know if the change you just made has introduced a new bug.
- Only full compiles would work (by default).
Lesson learned: a 30 minute delay in the type-build-run-debug cycle is productivity-killing madness. This is the most important metric to optimise for anyone in charge of a dev team. Pretty much nothing matters more than this, because it multiplies out everything else. Buggy code? Now it's minimum 30 minutes to fix a bug. Slow code? Any optimisation had better be worth the 30 minute wait! Behind on features? 30 minutes minimum for the smallest change. Etc...
- Ignoring naming errors, such as functions being named as if it does one thing but it actually does something unrelated. Similarly, there were tons of typos in identifiers.
Lesson learned: IDEs with refactoring capability were invented for this. If you don't fix it, every newbie is going to trip up. Every time. Every. Single. Time. It will cost you more time eventually if you don't fix it, not less. Just. Fix. It.
- Not using debuggers. This one was the most hilarious for me. Developers would spend hours adding debug print statements to the code, while I would just create a breakpoint, run the code, and solve the problem immediately.
Lesson learned: programming is 10% typing, 90% debugging. If you use an editor like VI or Emacs to optimise your typing speed, you are optimising the 10%, not the 90%. You've failed fantastically badly at your job. You're not a typist. You're a correctness ensurer. Act like it.
- Testing is optional in the same way that tasting the food you cook is optional. I mean, sure... if you're really good you can make tasty food reliably. If.
Lesson learned: IDE-integrated test frameworks can save more time than they take to set up. At a minimum, test any "clever" code with every corner-case. Null and empty inputs. One input. Multiple inputs. Max/min inputs. Inputs expected to trigger errors. Etc...
- Reams of dead code left in the source. That dead code had changes made to it after it had become dead. Bug fixes. Renames. Cleanup. Consistency changes. On and on, and on. The staff were easily spending 30% of their time editing code that wasn't used.
Lesson learned: dead code is pure, unadulterated overhead at every step. Checkout? Wasted time. Build? More wasted time. Running tests? Time wasted. Refactoring? Extra work. Etc...
[1] At the time I used EDU.oswego.cs.dl.util.concurrent by Doug Lea, which was amazing. Several modern standard libraries are modelled on it, including Java's java.util.concurrent.
Sounds like you just need to redefine what "working" for the company is.
If your exhausting yourself at a desk for 8 hours x5 until complete burn out...well...then you go from writing 80% to 0%. How does that help the company? It really doesn't, and your overall average drops real fast (even though your not there).
Others maybe already get this (or live like it anyway) and spend less time typing code. Taking care of yourself so you can continue to contribute 4-5x of others is far more beneficial for the company in the long run.
Think about the "10x" companies - FANNG if you will - they have bicycles for people to go between campusus's, entire gyms, foosball, etc, etc. They seem like insane perks to the outside world, but it's what give balance to the 10x'ers whom work there - and they do it on company time.
> I've debated working one hour less than I'm supposed to just so that I can exercise daily, but I find myself worrying that without me things will fall apart.
So be it. This may be harmful to your team/company in the short term but it will make it clear that there is a gap in output and productivity within the team that must be addressed. Go lift heavy weights (im talking about iron).
Came here to say something similar, as I feel the OP's "fall apart" comment too. However, my bigger anxiety is not that it'll "fall apart", but that things will "fall apart" and then it'll be my role to fix it.
If I died, I don't care.
If I left the project entirely, I don't care. I've moved on many times over my career. I can live with that.
But... if you leave early for a bit, then things "fall apart" and you have to then fix things.... that is the bigger concern. It's the 'fix it' part that bothers me.
Timebox your contributions and ensure you work less hours according to everyone. Even it it falls apart, you work for those hours to fix it. Then you leave. Who cares if it breaks more than you have time to fix? Nobody will die (probably) and everyone at that company gets paid to pull their weight. Time for them to do so.
This has been my experience. It became an expectation _of my peers_ that I am the one who should step in to fix stuff when it breaks as if Im the sole owner.
You may want to really go to a gym (meaning broadly, any type of physical activity, if it's not a gym but running or biking or anything else for you, it's fine) more. It's amazing how getting regular exercise (and I don't mean just walking around the block, something that really makes you sweat and pushes you to your limits) has positive influence on your mental health - yes, including the work stuff. It's hard to believe until you really experience it, but I can tell you from my experience, if you feel frustrated after a bad work day, there's nothing like putting your big brain on neutral for a while and do some physical exercise, and then you'd be surprised how much better you feel. Do take that hour - it will pay for itself, you'd get much more back in better productivity and better mental (and physical, obviously) health.
>two of the people in my direct team are definitely smarter than me
How often are you actively learning from and engaging with them on exciting new tech (or the systems you've designed and how they can be further improved, etc.), compared to water-cooler talk?
From what I've seen here: you have a family life you enjoy, at least a few competent coworkers that you are actively engaging with and learning from, you're successful and sought-after at your place of work in a field you seem to enjoy, you have a hobby that you're consistent with, you have consistent and not overly-demanding work hours, you've tried challenging yourself by changing sectors, etc.
You're hitting all of the points many people are still striving for.
Perhaps it may be worthwhile seeking a professional's opinion, as the problem may be deeper-rooted than can be explored via forum.
Yo man. It's not a secret that you feel loneliness at the top. But if that's bothering you and on top of that you are saying most if not all areas of your life are good then I have some news for you. So in general humans as a species is destined to suffering. Makin the long philosophy short, humans need to suffer to be able to enjoy happiness. From what you are sayin you live a decent life but in the back of your head there's something missing or lacking. And that's the suffering calling you to remind you that "you cant be high all the time".
To help you with that personally as I've done it myself , would recommend you to go to an animal shelter as a volunteer and help one day a week. Try a homeless shelter and do the same. Try some empathy with total strangers you won't ever meet, quick example: I was waiting in the line for a cashier and had some items and saw the guy behind me had like tw or 3, probably stuff for his breakfast for work. So I said, go ahead Infront of me you'll go quicker and the guy was like if he hit the lottery that day, said thank you so many times like if I gave him a gold ounce coin or such. Makes you wonder what he's been throu.
Try some martial arts but maybe not to get serious hurt but to remind yourself that you are a simple mortal being. I recently try humility with strangers, kinda like one year ago or more I was angry at myself and everyone else, now I do a step back and do stuff more calmly,say more times a day, thank you, sorry, please. Etc. Hope I don't wrote too much and you get the point I'm trying to say. Be gratefull for what you have and try experience some suffering from various sources to remind yourself that you are just a collection of a few atoms and a few lucky situations in the vast galaxy. Did you see the butterfly effect movie? Cheers take care.
> I find myself worrying that without me things will fall apart.
> Logically, I know that's not true. If I died today, the company or my team would not collapse.
Even before I got to the next sentence I recognized this from my own experience. You’re experiencing acute burnout.
It’s hard to disconnect from that, but I can tell you (again from experience) that you need to find a way to do that.
My advice is to set yourself a goal, to become a .1x developer for a clearly defined amount of time. A month is a great minimum. Go travel or even just find a fishing hole or something that feels relaxing and detached from work and just… don’t be at work.
Either you come back recharged and reassured that your team is as capable as your rational-voice mind is telling you, or you come back to flames and realize you deserve a better role that supports you.
Regardless, you come back with some time away to rest and think about what you want for your life, including whatever is next in your career.
Listen, if you are so good at your job you stand in front of 2 choices. Downgrade time spent and enjoy personal life more or upgrade your title/team/company.
If you are working salaried job and not earning 3x as your peer, yet you worry things will fall apart? Something is not right. Most likely you need to ease a bit on work, see nothing will fall apart or if it does ask for huge raise.
> Nevertheless I feel that if I'm supposed to be working from 8-5 (which 1 hour lunch), I need to actually be working.
Maybe it’s my young mentality but, you gotta change this opinion first. If you did enough work in a week to be 40 hours worth then go take time for yourself. Results are more important than hours, give back some hours to yourself and focus on your health and exercise. Go join a fitness class, bike group, running club, something and make friends.
> I have four kids, I am everything BUT lonely with them.
This is inadequate. Adults need "love" and companionship from adults in our lives. The love of children is inadequate; we must also have strong ties with buddies, pals, compatriots, and colleagues for mental health.
Children can never fully deplete adult loneliness.
A tip from me... Try intermittent fasting and spend the 1 hour allotted for lunch on a brisk walk or a short (30-40 minutes) exercise if you have a nearby gym.
I think you will feel better. I certainly do, on a similar regime.
On the loneliness front, I meant in the scope of working. I have four kids, I am everything BUT lonely with them.
However, I do agree that aside from work and one of my hobbies I have neglected my health, specifically I need to eat healthier, exercise more and lose some weight. I've debated working one hour less than I'm supposed to just so that I can exercise daily, but I find myself worrying that without me things will fall apart.
Logically, I know that's not true. If I died today, the company or my team would not collapse. Nevertheless I feel that if I'm supposed to be working from 8-5 (which 1 hour lunch), I need to actually be working.