Tell HN: The loneliness of a pretty good developer

597 points by 100011_100001 2 years ago

I'm a 10x developer and I hate it. If you consider yourself a "top" developer I would appreciate your perspective.

It didn't start this way. I became a Jr Dev at 33 years old, people consistently assumed I was more experienced than I was. I'm not sure if it was my life experience or my relentless pursuit of self-improvement but I have been continuously improving my capabilities.

Around the time I turned 38 years old I felt competent. My code started to become defect proof. The drawback was it took me an extra 20% more time to complete. The Product Owner used to say to me, "I know it will take you an extra two days to a week to complete something, but then I never have to worry about it again". So, solid code, but kind of slow in comparison.

I'm now 42 years old, my code continues to have minimal amount of defects, but I complete stories fast, and I'm not working crazy hours, just the standard 8-5. Of course I'm involved in a lot more meetings nowadays, architectural discussions, bleeding edge Proof of Concepts etc, however that has not slowed me down. It has made me faster.

I never set out to become some kind of uber developer, but in the last couple of years I have noticed a shift in behaviors around me. It started with little things. Tech Leads inviting me into meetings to express my perspective on things. Developers pinging me when I have never worked with them, because "you probably know the answer". Being asked to weigh in specific Code Reviews outside my department. Lately if I join a meeting with people I haven't talked to before they already know who I am. Even my manager has started introducing me by just saying "This is X, you've probably heard of him".

Someone run a query to see the number of git commits by user for the application group I am in, about 350 developers. A script I wrote that performs various automation tasks was number 1, I was number 2. This surprised me, and it was an event that brought some of my thoughts and feelings into focus, thus this lengthy post.

I don't think that the number of git commits actually proves anything, other than I commit, code review, and merge code frequently. I wanted a better metric to quantify my feelings of alienation. I looked at Jira stories and story points. In my direct team of 10 people, myself included, I have completed 71% of all story points in 2022, the other 9 are responsible for the other 29%. That jives with my number of git commits compared to others as well.

So what's the point of this thread? It's not to brag, if I came across that way, I apologize. The problem I'm having is it's lonely and stressful.

This feeling of loneliness got quantified when the commit number came up. The problem is people just accept whatever I say. I used to get challenged in some of my decisions, which I always appreciated since I could create better solutions. Nowadays people just accept whatever I say as the best way.

It feels like I don't have peers. I'm solely dragging my entire team and everyone else around me with me for the ride. This leads to stress, it feels that if I am not working on the "thing" it won't get completed.

I worry that by not being challenged I will become complacent.

I catch myself becoming more controlling because at this point about 80% of the code base is my code for the applications my team is responsible for. I don't think that's a good thing, at the same time what I find plainly obvious is not to others.

The worst part is I am sensing within myself this frustration that everyone else appears to move so slowly. The thought of "great, one more thing I got to fix" is coming up too frequently.

To summarize, I'm a pretty good developer. I love writing code. However I feel alone, and I'm afraid I will become conceited of my own abilities. If you can empathize with this I would appreciate your perspective. Am I the only person feeling this way? What can I do to change things?

ctvo 2 years ago

I think you're an above average developer working at a below average company. This could be the root of all your problems. Nothing is more frustrating than working with peers you know aren't carrying their weight.

Do you want to be an engineering leader? This is what you are, regardless of your official title at your company. Engineering leaders are judged by how much better they make everyone else. You may hear the term force multiplier used. Say you are really a 10x engineer, how much more effective are you if you could improve the efficiency of 350 developers by 10%? Mentor, teach, help establish culture, make systemic changes to help your peers become more effective.

Regardless, I think you're a bad fit for your current company and its culture. And yes, many of us have worked in environments, like a startup, where we knew we were critical to success. Fail to deliver and a funding round wouldn't go through and people would lose their jobs. It's stressful, but I hope you're adequately compensated.

  • ChrisMarshallNY 2 years ago

    I wish you luck, and I can relate.

    I worked for a famous Japanese imaging corporation for almost 27 years. The pay was meh, the corporate overhead and B. S. was damn near unbearable.

    But I worked as a peer with some of the finest engineers and scientists in the world, on a daily basis, and we respected each other (but often also wanted to strangle each other).

    I was seldom the smartest person in the room (and I’m smarter than the average bear). It was humbling, challenging, and exciting.

    I became a manager, and hated it. I was a very good manager, but spent my nights and weekends, coding.

    Since leaving that company, I went straight back to coding, and I’m not as good as I was.

    I’m way better.

    I don’t really care whether or not I’m better than anyone else, but I find that I can usually meet any challenges thrown my way[0].

    It seems that I picked up some good habits, along the way.

    These days, most folks in the industry don’t want to have anything to do with me. I’m radioactive. It only took a short time to figure out that no one wants Pops on their team. I won’t go where I’m not wanted.

    I’m extremely fortunate, in that I can support myself without earning a salary. I sought out people that want to help others, and have been working with them, for free.

    It’s working for me. I’m not lonely at all, and I’m pretty motivated by the work.

    [0] https://littlegreenviper.com/miscellany/thats-not-what-ships...

  • 100011_100001 2 years ago

    The pivot I have been debating is to become a Lead Development Manager with the express purpose of enabling everyone else, removing obstacles, creating better processes etc.

    My problem is that I love code much more than talking to people all day. I have been mentoring Jr Devs for a while now in an official capacity which helps.

    I like the idea of "make systemic changes to help your peers become more effective". So that's something I will have to think about.

    • omarhaneef 2 years ago

      If you want to just code, just code.

      I accept you're a gifted coder, and that you're better than your peers. Good, then do exactly that.

      Being good at mentoring people is only vaguely correlated with being good at code. IMHO, the main factor that will make you good at something is caring about it, and if you don't want to talk to people you'll waste your skills.

      There is someone out there who would love to talk to people, worry about their development, figure out how to best use your skills and so forth. Let them do it.

      • leaflets2 2 years ago

        > There is someone out there who would love to ... Let them do it

        It seems to me, though, that OP vastly much better at that, than the others available. And that his co-workers have noticed this too.

        • lumost 2 years ago

          sounds like a good time to work on a harder problem :) OP is crushing it on their product. Given the OPs description, we can also infer that the OP works somewhere that commits correlate with output well.

          A few interesting questions that come to mind.

          1 - Does OP feel like they are doing the same things over and over again?

          2 - Does OP want to work with better/more skilled engineers?

          3 - Is OP setting the technical direction? Do they want to?

          Being the top coder by commits in a group of 350 is a super power, however many "Hard" software problems are resistant to code throughput as a fix. There are extremely difficult software problems that take years to produce the ~1k line solution.

    • rapind 2 years ago

      For a non “Valley” perspective, your work situation sounds fine TBH. You are already the defacto dev lead (making it official could mean meetings).

      Hobbies, sports, instruments, hell even a book club. Get social outside of work. Treat it the same as you’ve been treating your career (dig in and get good). You’ll find you make friends outside of work, but often at work too, as you may have hobbies in common with others at your job.

      This will naturally lead to a good work balance, because you may end up wanting to clock out early to get back to your hobby. You’re in a great negotiating position to reduce your hours when that happens.

    • sayrer 2 years ago

      Get a job at a big company, like Google or Microsoft etc. There is always someone smarter.

      • ASalazarMX 2 years ago

        OTOH, OP is invaluable to his current company. If he's being paid well and manages some balance, this could be a healthier environment than a mega corporation. If you want to balance life and work, small or medium companies are the best, specially with the clout he has.

    • naugtur 2 years ago

      I moved from a role similar to what you're describing (spent 7 years there) into a role where I'm the least senior person on the project. And I'm having a great time.

      It's always possible to find people who are so much ahead of you that you'll need to put effort into just following the conversation with them. And when you do, they're your peers and you're proud to be a 0.9x developer alongside them.

    • manmal 2 years ago

      Maybe you can write software to help make others more efficient, by empowering them to do more by themselves. Give people superpowers they don’t have at other orgs. Things coming to mind:

      - Code editor plugins (or web or mobile apps) tailored to your org‘s workflows

      - Language changes in case your org is using an OSS lang

      - Libraries for often-used functionality

      - DSLs that let your org‘s PMs encode behavior themselves

      - Small utility apps (web or mobile) that facilitate more effective communication

      - Dev tools for your stack, eg if you don’t have hot reloading yet, that’s a huge enabler

      - Test data generators

      - You mentioned that you setup automation. Take it a level further and let other devs create scripts by preparing an environment (maybe an IDE) for that

      • actionfromafar 2 years ago

        Be careful with the kind of tools that increase abstraction in the code base itself. It can easily tip into a situation where it will have to be all ripped out when the OP leaves the company. Or worse, remains as a cargoculted mystery.

        There are no hard and fast rules, but stuff that increases the productivity of other in a (to them) non-mystical way would be best.

        It's a judgement call, some of these in the list above made me pause, but the red flags will be specific to each workplace.

        The keys is to know what others will understand, and that is a super-power in itself.

    • thisisbrians 2 years ago

      Maybe consider a Staff Engineer type role at an established and well-respected firm? Still mostly IC if you can land the right role, I think, but more focused on the meta stuff that enabled the whole team like tools and automation. Would love input from others as I've not actually worked in such a role before.

      • scarface74 2 years ago

        This is the same attitude I see on Reddit. Just because someone is a top performer at a no name enterprise corp dev shop doesn’t translate to tech companies and no offense is intended. I spent my entire career until I was 46 two years ago at no name enterprise dev shops.

        • bigbizisverywyz 2 years ago

          +1 to your comment.

          I suspect they are feeling stressed because they're the main goto person on the product, and with enough random bobble heads running around trying to commit sacrilege on your codebase it quickly becomes a problem of control to maintain the quality you've so strongly instilled vs allowing the product to progress.

          Their best path to get out of this bind I'd say is to slowly try to make themselves redundant on that product, choose a victim dev to be your successor and gradually disengage. Possibly a new product or project will be started and then they're free to get involved in that instead.

          Also learn how to interview new candidates and get involved at that level, getting good (even better than you) coworkers is a great way to influence the whole company culture and make your work life much more pleasant.

        • ASalazarMX 2 years ago

          To be fair, OP's speed of progress involved aptitude and diligence, even if you discard smarts. It's true that when you work five years at a code base, you probably become an authority in it because at some point it is yours too, but I've known developers who would never achieve that state.

          That being said, tech megacorps are stressful environments, and OP looks like he has his plate full just accepting that he's become the de-facto lead developer. OP built his own niche market, why not dial it back a bit from eleven and learn to enjoy it?

    • twelve40 2 years ago

      Just move to a more intense company, or internal group, or a startup. I'm not familiar with how good you are, or your company, but I can almost guarantee there is a lot of stuff out there much more intense than the current place. And you can totally remain an IC if that's what you like.

    • netghost 2 years ago

      Having been at times a manager and other times and IC, there are some great opportunities in each role, and it really depends on your organization.

      If you haven't read it, "Staff Engineer" outlines some of the ways more experienced engineers continue to grow and provide value without becoming managers. I'd say the first half of it is worth a read to see if it sparks anything for you.

      I will say that it gets lonelier as you go along either track. Reach out to peers if you have any. If not, try to reach out to folks outside of engineering.

      It's a tricky path, and I wish you the best.

    • e40 2 years ago

      Honestly, your impact will be greater if you become a development lead.

      I know this because I've watched it happen many times, not because I'm one. I've had lead developers report to me and good ones can really have a great impact. The tooling, procedures, technical debt, etc. All will be positively impacted by someone like you.

    • nrmitchi 2 years ago

      This is also a common theme in a lot of "Platform Engineering" style roles (but not all of them, because it's an overloaded term). The output of your actual code is systems to empower others, and paving the "clean path". Support and education is also a very common piece of success.

    • ashtar 2 years ago

      From where you're coming from, I think, your next steps would be thinking "who should work on this" vs. "I'll pick this up because I can do it quickly."

      If you're not enabling your team to take over your job, you're doing it wrong. And by a comment I saw elsewhere, the tendency to control things is natural, but you should resist that - it's the only way you can scale.

      If your organization doesn't have that kind of individual contributor leveling, that would be a good conversation to have. Or if your team isn't big enough, maybe its time to look for a new challenge.

      There will be a learning curve and a mindset shift, but it's really the only way that you truly become a force multiplier.

      Soon, your commits will go down, but your reviews will go up.

      Later, your reviews will go down, but your strategy/design/planning docs/conversations will go up. Your job is designing for the 1-3yr future (or more but rare) and across the organization.

    • phkahler 2 years ago

      Get involved in the hiring process. You should be able to screen candidates well and if the company really is full of sub-par developers (doubt it but maybe) you will bring that up a bit. If you need tips on interviewing shoot me an email (same ID at g mail) it's easy for a good engineer once you know what to look for and how.

      BTW that's not isolation you're feeling. It's responsibility, respect, and frustration. You didn't ask for the first two, you earned them.

      • dawwido 2 years ago

        Hey, could you please share publicly your tips on interviewing and spotting good engineer? Thank you. It would make a valuable HN post on it's own

        • webmaven 2 years ago

          Note that in my experience, heuristics for spotting good engineers tend not to work unless you yourself are a good engineer. You don'tnecessarily have to be the same kind of good, though that's obviously the least effort, and tends to overemphasize other points of similarity that are conflated with the "goodness".

          Specialists and Generalists tend not to respect each other, for example. Folks with CS degrees and autodidacts likewise (though both can have impostor syndrome comparing themselves to the other).

          There are also three personality types (or cultural types) suited to different maturity stages of the system being worked on (which also implies different processes, BTW): Pioneers, Settlers, and Town Planners[0][1]. Many businesses tend to collect one or two of the three types. Pioneers+Settlers is viable, as is Settlers+Town Planners. Orgs that only have Pioneers+Town Planners tend to have interesting pilot programs that never get successfully rolled out.

          [0] https://blog.gardeviance.org/2015/03/on-pioneers-settlers-to...

          [1] https://swardley.medium.com/what-culture-is-right-for-you-ba...

    • icedchai 2 years ago

      If you do that, you may never write another line of code again (especially in a large organization.)

      I like mentorship, helping people figure stuff out, giving technical advice etc. I don't like going to zoom meetings all day, which is what "leadership" in today's modern world has become.

  • omegalulw 2 years ago

    > I think you're an above average developer working at a below average company.

    This. I'd conjecture that this has led to OP becoming overconfident.

    I also think that OP should not be a manager. If one dev is doing 70% of the work then that's either bad hiring practices or micromanagement where other team members are not trusted to deliver complex projects.

    • texasbigdata 2 years ago

      Re: your second paragraph, what does that have to do with OPs ability (regardless of appropriateness to the firm, his career arch, or the story) to perform as a manager. He/she might be great, normal, or terrible. How can you tell apriori from what they wrote?

      • bfung 2 years ago

        OP realizes they do a lot of work, and OP realizes they’re single point of failure/authority at the company. But what steps have OP taken to start decentralizing to mitigate those risks?

        Someone with the management sense would’ve already started thinking and implementing that and not continue to code moar.

        • lowercased 2 years ago

          > But what steps have OP taken to start decentralizing to mitigate those risks?

          You don't know they haven't already starting thinking/implementing ways to address those risks. And... it may also be that there's not enough political power to make changes substantive enough to address the systemic risk. OP mentioned 300+ developers on a team - that's a large place. There may simply not be the ability to wield enough influence to make real change to reduce this sort of risk across the board.

          Documenting your own stuff, coming up with some better ways to share knowledge, pairing, etc - that can help reduce some localized risk, but you don't know that they've not done this.

          • bfung 2 years ago

            You’re correct, I don’t know they haven’t tried to mitigate the risks.

            But post also points to being lonely of sorts and a sense of dispair. As your last paragraph describes, if OP pair programs, does some mentoring, etc, why would they feel lonely and post on the internet instead of chatting it through with the people at the company?

            If so many people are coming to him/her for things, they def have some implicit power. Not knowing how to constructively use that power also lead to my support of the “don’t be a manager” post (yet). If OP figures out how to scale themself out, then by all means…

        • travisgriggs 2 years ago

          I have no idea if I’d be a good manager. But I don’t think this is a fair connection to make. I’m currently in a similar situation of being the built it all does it all go to designer programmer. And I have desperately tried multiple ways to make this not be the case. But if the company doesn’t support your efforts to do so, does it prove I’d make a bad manager, or that that company I work for has some shortcomings?

  • umvi 2 years ago

    That's what it sounds like to me. Big fish in a little pond. If OP moves to a big pond he'll get a different perspective.

  • rco8786 2 years ago

    > I think you're an above average developer working at a below average company

    Nailed it

    • notomorrow 2 years ago

      so true. for the self pumping developer

  • dclowd9901 2 years ago

    This. I always had a rule: if I wasn’t learning at a company I either need to switch teams or change companies. It means I outgrew my position. I’ve continually felt challenged as a result with a side effect of lots of types of companies and teams in my background.

  • unboxingelf 2 years ago

    This. The company you work for matters tremendously and it sounds like you’re ready to “level up”.

  • tsss 2 years ago

    Or he just bangs out a ton of crappy code in the name of "pragmatism", while everyone else has to clean up after him and thus takes longer. I've seen this many times.

    • 100011_100001 2 years ago

      Eh, that is exactly what I don't want. Pretending I am this amazingly productive developer and my code is just trash.

      I just checked. In 2021, only two defects were created against my specific code changes. If I had to home into a weakness of mine is that sometimes I solve today's problem well, but don't think extensively about how tomorrow's problem in that space might look like.

      The struggle is between creating simple solutions vs over-engineering for future proofing. I'm pretty sure I'm biased towards simple solutions.

      • beardedetim 2 years ago

        > The struggle is between creating simple solutions vs over-engineering for future proofing. I'm pretty sure I'm biased towards simple solutions.

        I want to encourage you to keep learning about your own biases here but to continue to have that bias as much as possible.

        I like the term "throw away code" here but I think another way to say it would be that most of the code I write is like a jig for woodworking. I don't need it at the end of the day, it looks like shit, and holds up the real Things while I figure out how those things actually work.

        Sometimes in code though, I find, that the jig _is good enough for now_ and it's super easy to replace the three that break instead of all 20 I needed to build it.

      • bigbizisverywyz 2 years ago

        Have you thought about, or are you already involved in interviewing new developers for the company?

        It sounds like you might already have a nose for what makes a good dev (i.e. somebody who holds the same values as you) It's a great way to influence the company culture, and get good co-workers, which can also de-stress you as you now have fellow travelers whom you can trust with tasks.

        It's also fun, sometimes humbling but always interesting!

      • tsss 2 years ago

        It's not about behavioural defects. It's that the _code_ is trash. It is unmaintainable and slows down all future changes, exactly because the person who wrote it didn't take the time to think about the future or even good architecture in the present. Every time I touch their code I have to almost redo their work because:

        - It's impossible to understand what is going on (For example when people load huge json or sql files into a single test and you don't know what scenarios it covers because they are too lazy to write dedicated minimal test cases. Another common offense is a not well-defined data model that gets mutated everywhere in dynamic languages like Python or JavaScript where you never know what shape an object has or where it comes from)

        - Their code allows so little extensibility that following the same "pragmatism" as they did and just hacking it in would exponentially increase the complexity

        - There are no abstraction boundaries which almost surely means insufficient test coverage (which I have to amend before I can even start with my own work so that I don't introduce regressions) or the tests are coupled so closely to implementation details that any change necessary for my own work will require me to rewrite all the existing tests

        You are fast because you pawn off your design work to whoever comes after you. Of course you have fewer defects: your colleagues have to put in more time to maintain the same level of correctness or else risk introducing bugs. That's the cost of bad maintainability. It's well known that changing existing code is harder than writing new code, double so if it is not written with care. Someone has to be the janitor to keep the cruft from accumulating and if it's not you, then everyone else has to pick up your slack. Ideally, every person in the team would continually clean up and always leave a code base better than they found it.

        Lastly, I want to say that there is very important difference between simple and easy and simple doesn't come for free.

        • freedomben 2 years ago

          Do you know OP or have you seen their code? If not, you're making a lot of assumptions about them based on what they've said that are about as uncharitable as possible, to the point where it kind of seems like you have an axe to grind against OP.

          I'm speculating here but I think that you have some major hurt and pain in your past and something OP said is triggering the memory(ies). There definitely are (many) people in the dev world that do what you're accusing OP of doing, so I'm guessing you've been heavily burned by that (as have I). I actually moved industries to get away from that. In my case it was the Java (especially "enterprise" java) culture/ecosystem/etc, and things got a lot better for me when I wrote off my deep investment in Java and pivoted to C++ and Ruby. I would definitely advise to move around early and often, both company and tech stack. Try out startup life if you've been in big corp, or vice versa. IME startup life is a lot more prone to the "ship it fast" pressure that results in terribly unmaintainable code, so a big corp where you can work on a core product (core enough that it gets plenty of investment and appreciation but not enough that it's the number one money maker, otherwise the Eye of Sauron will be omnipresent and encouraging bad practices). Life is way too short to be miserable at work, especially in a field like ours where hold a ton of the cards.

        • 100011_100001 2 years ago

          It sounds like you have personal experience in this. I hear you. From what I have observed through code reviews that I, or others, have looked at that doesn't happen with my code unless there is a very fundamental shift. Even then I try to keep my inputs and outputs clean so that pieces can be removed if need be. Of course I am not always as successful as I would like to be.

          Now my first 2-4 years, that happened a lot, and I am not going to claim that I was fast. I was slow and either the code review would point something out that I would literary have to start from scratch or the next person that touched it would have to. This was actually the driver for me to focus more on simplicity. I basically discovered a direct correlation between complexity and how bad my code was.

          To this day, if I catch myself doing something overtly complex it's a sign that my solution to the current problem is inadequate.

          Ironically, my response would be the same if my code was trash. So I won't be able to convince you regardless.

        • SamBam 2 years ago

          I am confused why you are just taking the least charitable assumption based off OP's short post, and writing these long screeds just taking it as given that your assumptions are true.

          • askafriend 2 years ago

            I think they're just using this as an opportunity to rant about a personal situation.

          • scarface74 2 years ago

            My personal assumption is that anyone who thinks of themselves as a “10x developer” using the criteria he is using, probably isn’t. He only has 5 years of industry experience and I’m assuming at only one or two companies.

            • greenpeas 2 years ago

              > I became a Jr Dev at 33 years old...

              > I'm now 42 years old...

              That's 9-10 years.

        • deterministic 2 years ago

          I have worked with 10x developers. They exist. Not only are they more productive than most developers, their code is also more bug free than most developers. Get over it.

        • Too 2 years ago

          Seen the same thing happen with devs that proud themself to write “simple” code. Sure, every individual script they write is simple in itself, but in the end you have thousands of them that don’t compose or reuse at all, with lots of implicit dependencies and assumptions between them. Leaving the rest of the team slowed down, trying to make sense of it, careful not to add even more to the existing mess, while mr “pragmatic” keeps adding even more copy-paste. Basically the total complexity becomes bigger than the sum of its parts.

          What you bring up is a common and concerning scenario. It would be better received without the accusatory tone, until you know more about actual situation. There are many good and fast developers that don’t apply to this concern.

    • andrewmcwatters 2 years ago

      This could be the case, but we don't know, and it's also helpful to think about this from a charitable perspective.

      • 100011_100001 2 years ago

        I prefer this perspective :)

        Honestly, I have no need for validation. I've just started to feel angst and figured if there is a place where I can get good advice, even if it hurts, it would be HN.

        From that perspective I have gotten enough good input to make this thread worth it to me.

    • ptr 2 years ago

      You can be fast while also writing great code.

ziddoap 2 years ago

“If you’re the smartest person in the room, you’re in the wrong room.”

I know saying this is easier than doing it, but; seek upward movement until you no longer feel like you're the smartest person in the room.

I would also add, although it's purely personal opinion, that seeking a solution to loneliness through work is a surefire way to feel more lonely. You say you're big on self-improvement, but are you only focused on improving your work-related skills? All areas of life need attention, and it sounds like you've only been focusing on the work part of work/life balance (work/life balance is so much more than just what hours you work).

  • kromem 2 years ago

    Then you finally meet the smartest person you've ever met and, statistically given the quality of the room and their excellence above and beyond it, ever will meet.

    And you realize that person spends their life handing out wisdom which consistently just falls on deaf ears.

    It's an empty journey with an unsatisfying end even if you make it to the top.

    The money's great, but if you are smart enough to be constantly walking into bigger and better rooms, you should also be smart enough to realize there's diminishing returns on personal wealth but diminishing supply on personal time.

    Sometimes the best strategy in winning a game is not to play.

    • dmichulke 2 years ago

      Fully agree.

      As an aside, you can be smartest in programming and even managing teams but you might still not be most sociable, strongest, most musical, richest, most charismatic, funniest, most attractive, <insert adjective here> person.

      If the only measure you go by is IQ, you're childishly defining the game all other kids are supposed to play and then wonder why no one plays with you. That would definitely not be smart.

  • 100011_100001 2 years ago

    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.

    • prirun 2 years ago

      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.

      • pnutjam 2 years ago

        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.

    • rootingforyou20 2 years ago

      OP, don't know you but rooting for you

      Re eating/getting healthier,

      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/

      2) Lose weight (this approach might be appealing to your engineer'y instinct): https://www.fourmilab.ch/hackdiet/

      3) Exercise:

      - Warm up (DO THESE): https://www.youtube.com/watch?v=-QWyyHfARNI

      - Try to get through a round of this w/ good form + then try to do 2, 3, etc: https://www.youtube.com/watch?v=XTSIqbuZC0Y&t=369s

      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

    • jiggawatts 2 years ago

      > 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.

      Etc...

      • hughlilly 2 years ago

        Out of interest, what language was the project written in, and what kinds of testing tools did you use?

        • jiggawatts 2 years ago

          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.

        • jwilber 2 years ago

          Given the mention of IntelliJ I’d assume Java or scala (probably the former).

    • somenewaccount1 2 years ago

      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.

      Good luck!

    • wreath 2 years ago

      > 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).

      • lowercased 2 years ago

        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.

        • krageon 2 years ago

          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.

        • wreath 2 years ago

          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.

    • smsm42 2 years ago

      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.

    • ziddoap 2 years ago

      >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?

      • 100011_100001 2 years ago

        Probably 2-3 times a week actually. My team is specifically the spear point of new tech and integrating it for the company to use.

        From a point of self-evaluation I think it would help if I tried to listen more than talk.

        • ziddoap 2 years ago

          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.

          • 100011_100001 2 years ago

            Thanks for your perspective, and taking the time to express it.

            I truly appreciate it.

            • Ehh_01 2 years ago

              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.

    • eyelidlessness 2 years ago

      > 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.

    • roguas 2 years ago

      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.

    • aiisjustanif 2 years ago

      > 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.

    • EFreethought 2 years ago

      What are these "really good systems that allow me to consistently solve problems and write code"?

      I assume you are referring to some sort of productivity methodology like GTD.

    • rexpop 2 years ago

      > 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.

      • flakyfilibuster 2 years ago

        In addition to this - having people "around" you - does not negate the fact, that you still can be lonely

    • inglor_cz 2 years ago

      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.

  • hoten 2 years ago

    I like to say I aim to be the second dumbest person in any room.

    • kilroy123 2 years ago

      Couldn't agree more. You never want to be the dumbest one in the room. Stressful and dangerous position to find oneself in.

    • amelius 2 years ago

      And Feynman was in the wrong room his entire life.

      • dfcowell 2 years ago

        To his credit, it wasn’t for lack of trying. He was in a lot of pretty good rooms.

      • selimthegrim 2 years ago

        The mathematicial physicist Ray Streater on his website did tell a story where Feynman was definitely in the wrong room.

      • cranium 2 years ago

        Well, he met von Neumann a few times.

  • mepiethree 2 years ago

    Meh. 16 people from work came to my wedding (including my best man). You can be social at work without it ruining your life

    • ziddoap 2 years ago

      This doesn't run counter to what I said, really.

      I believe that if you are already feeling lonely, despite working somewhere for X number of years, the solution is very likely not going to be found at that same place of work.

      If you have friends at work and they come to your wedding, congratulations, my thoughts on the situation are not suitable for your situation and you are more than welcome to (and should) ignore it.

  • xpe 2 years ago

    > “If you’re the smartest person in the room, you’re in the wrong room.”

    > I know saying this is easier than doing it, but; seek upward movement until you no longer feel like you're the smartest person in the room.

    Since there are many dimensions of intelligence, the above is very underspecified.

    Once you disabuse yourself of the fallacy that there is a single dimension of intelligence, it opens up a whole new world of possible mindsets. This allows you to rethink your goals and even your metrics for fulfillment. Perhaps it is more rewarding to think of how you complement others, for example, in terms of capabilities, personality types, and life experience.

    • User23 2 years ago

      Spoken like a true midwit. Having had the extreme privilege of actually working with some really exceptionally smart people I can assure you that intelligence is a general trait without any significant extradimensionality. The best possible outcome for any organization that has such a person is not the crab bucket ideology you propose, but rather celebrating that exceptional person and benefiting from that person.

      • xpe 2 years ago

        Let's talk about this part:

        > Having had the extreme privilege of actually working with some really exceptionally smart people I can assure you that intelligence is a general trait without any significant extradimensionality.

        This claim is not persuasive. It also may contain various logical and statistical fallacies, depending on your word meanings. If you want to persuade, I suggest that you'll need to give more context.

        A. How do you define "exceptionally high intelligence"?

        B. Where and in what capacity have you worked with these people?

        C. How do you assess this trait?

        D. What do you mean by 'crab bucket ideology'?

        E. You are aware that there is considerable scientific writing arguing in support of many kinds of intelligence, no?

        F. What parts of (E) do you dispute?

        G. What do you mean by 'general trait'?

        H. What do you mean by 'extradimensionality'?

        I. What do you mean when you say your definition of intelligence "is a general trait that does not have any significant extradimensionality"?

        J. WRT (I) are you saying that your definition of intelligence is not correlated nor caused by other traits?

        K. Do you have a physiological or biological basis for your claim?

        L. Please share sources (writing such as studies) that you find persuasive.

        M. What are the chances that we are talking past each other? Do you have questions for me?

        • rsaarelm 2 years ago

          > E. You are aware that there is considerable scientific writing arguing in support of many kinds of intelligence, no?

          There's certainly considerable social demand for this to be true, and Howard Gardner is tirelessly promoting it, but the current expert consensus seems to be against it. Both Stuart Ritchie's _Intelligence: All That Matters_ (ch. 2) and Russell Warne's _In The Know_ (ch. 5) consider the multiple intelligences hypothesis false and have further citations.

      • thrwouybgt 2 years ago

        Spoken like someone with low eq.

        Intelligence has many forms, athletically gifted, musical, emotional, the list goes on.

        Your classical & narrow definition of intelligence is outdated.

        To be a true polymath - as is hinted throughout this entire discussion, there's a need to nurture more than ones intellectual prowess.

        • xpe 2 years ago

          I'm likely to agree with you in many ways, but I think it's more interesting if I play devil's advocate. Ok with you?

          How would you respond to the following criticism? Isn't this just semantics?

          What are some benefits of shifting the labels of various skills and traits such that they get included under the umbrella of "intelligence"?

          Ok, I'll stop my satanic advocacy now... :)

          Let's take athletic skill in particular. Can you help me understand why it makes sense to call it a form of intelligence?

          I think it is fair to set aside certain physiological traits that provide athletic advantages such as cardiovascular fitness and muscle composition and body structure (since certain sports/activities often tend to favor certain body types).

          Once we have set aside those things, what traits remain that that are 'intelligence like'? (How are we defining intelligence?) Off the top of my head I would suggest spatial reasoning, causal reasoning, planning under uncertainty. Of course someone such as yourself would likely include emotional intelligence especially for e.g. team sports. Am I getting the right drift here?

        • webmaven 2 years ago

          > Intelligence has many forms, athletically gifted, musical, emotional, the list goes on.

          I'm slowly coming around to the idea that intelligence doesn't have dimensions or types per se, but something skin to modes that are skill-like, and while there are aptitudes (largely biophysical) that may either preclude or predispose one to enjoy certain activities, what really determines ability in particular modes is how much you invest into practicing that mode (often unconsciously), simply because that's what you find comfortable or pleasant.

          You get high EQ if you enjoy figuring people out so you spend more time doing that, but other factors like introversion may affect how often you afford yourself the opportunity to even try. You'll have a low EQ if you find it hard to meet people's gaze directly. In general, high EQ is correlated with empathy (so you enjoy anticipating other's needs). However, psychopaths lack empathy, but if they are highly intelligent (ie. high g) they are often extremely observant master manipulators of others' emotions.

          Someone who is tone deaf is unlikely to be particularly interested in music (possible exception: percussion). Manual dexterity (but not necessarily hand-eye coordination) figures in pretty strongly for mastering an instrument. Perfect pitch is definitely a nice-to-have, but some people don't have a voice with a particularly broad range. So who is more "musical" , the popular and theatrical singer-songwriter (that doesn't actually write any of their own songs), or the Pop songwriter that can't sing and gets stage fright? Perhaps the renowned violin or classical guitar player?

          Ability in higher (or "pure") mathematics is somewhat associated with musicality (though not the reverse), but neither is particularly correlated with arithmetic (which is what most people mean when they say they aren't good at math). I suspect that what's actually going on is that high g individuals who enjoy constructing deconstructing and recombining particular kinds of abstractions that often can be aesthetically represented as mathematics or as music. Nudge that aptitude in one direction and you get a mathematician. Nudge it a different way and you get a musician.

          Athletic giftedness is most dependent on things like physical build[0], genes that code for building extra muscle, other genes that code for more efficient oxygen transport, higher pain tolerance, and so on. Fast reflexes can help, and a lack of any number of contraindicators like poor eyesight or vestibular problems. The closest we have to an innate "athletic intelligence" is proprioception, and I think the jury is out as to whether that's an attribute of the central nervous system or not.

          Basically, if you can get into a state of flow such that what you're doing is just challenging enough to keep you engaged and there isn't anything that derails you, you're going to get better at that thing. If you enjoy doing the thing you're going to enjoy getting better at it. Your aptitudes (including fairly abstract ones like right or left brain dominance, or Big Five personality factors), can push you in particular directions at the outset and keep giving you nudges in that direction, as can your environment, but most people start out with a broader array of these than they end up leaning into. We all know people who stopped drawing because of unkind feedback or comparisons with others in their age group, for example. We've also seen a huge explosion of computer-mediated visual art made by people who never really learned how to draw well with pencil and paper and that use a mouse but not a stylus, that in an earlier age would not have been labelled "artisticly inclined".

          In short, these so called different intelligences or ways of thinking are more like skills that are encouraged or not by the environment you're situated in (including your body); you get better at them the more you use them at the edge of your ability especially if you think you can get better at them.

          [0] https://www.dailymail.co.uk/news/article-2502477/amp/Can-gue...

      • xpe 2 years ago

        > Spoken like a true midwit.

        This is a fair definition I think:

        > midwit: A person of middling intellect.

        You recognize this is an insult, yes?

        If so, why did you call me a midwit? Does it help you in some way? Does it make your comments more persuasive?

      • xpe 2 years ago

        > Having had the extreme privilege of actually working with some really exceptionally smart people

        Why did you include 'actually'?

        Are you suggesting that I have not?

  • amelius 2 years ago

    > seek upward movement until you no longer feel like you're the smartest person in the room.

    What do you mean by "upward"? If it's the classical meaning: you're not guaranteed to find smarter people higher in the organization.

    • ziddoap 2 years ago

      Of course it's not a guarantee, I didn't intend my message to make it seem like it was. I think upward movement has a higher chance than downward movement, though. And considering staying where OP is at is causing issues, I said upward.

      I could have said "seek movement until you no longer feel like you're the smartest person in the room", I guess.

  • throwaway012299 2 years ago

    > “If you’re the smartest person in the room, you’re in the wrong room.”

    Easier said than done. I found smarter people only in few teams in FAANGs, but never in other companies.

    Unfortunately there are many other aspects that we need to balance out in life other than being in the right room.

    • ziddoap 2 years ago

      >Easier said than done.

      My next line literally says "I know saying this is easier than doing it,"

      >Unfortunately there are many other aspects that we need to balance out in life other than being in the right room.

      And then I finish with "work/life balance is so much more than just what hours you work"

      So... yes. I agree?

mooreds 2 years ago

> I worry that by not being challenged I will become complacent.

Fair worry.

> What can I do to change things?

You should switch jobs.

I've been the top technical person at a couple of companies (not the size of your company, however). It can be exhilarating to be "the person". You get a lot of respect and autonomy. But it can be easy to fall into the curse of the expert beginner: https://daedtech.com/how-developers-stop-learning-rise-of-th...

While you can mitigate this to some extent by participating in groups (virtual and physical) for other great developers, the easiest way to handle this issue is to switch jobs.

So, I'd suggest you start interviewing. Either you'll find a better place, or you'll discover advantages of your current situation.

  • cableshaft 2 years ago

    I concur, switch jobs. It may just be that you've become the big fish in a small pond (or even a large pond, but just at that company). No better way to make you realize what all you don't know except by switching jobs.

    I've been "the goto guy" at a few places, usually just ended up that way over time, and when I switched jobs, suddenly it felt like I didn't know anything, or at least had a lot of catching up to do.

    Like I was a SME at my previous company, that got pulled into a bunch of meetings, and was often brought up and thanked in multiple town hall meetings for various projects I worked on.

    At my new job, it was obvious that everyone was using technology and architecture that I was never exposed to and I had a lot to catch up on, and I still am. I am definitely not a SME here. Although I have been on one project just long enough that I will start helping onboard and overseeing some junior engineers soon, it sounds like.

    Also, I'm smart and can pick up things quickly, but I would never consider myself a 10x engineer.

    • megous 2 years ago

      Will the "getting busy/challenged learning new things at new job" resolve the loneliness feeling though?

      • cjaybo 2 years ago

        Considering that the loneliness seems to be a byproduct of feeling like the smartest person in the room, I think it could be a good perspective shift. There are always smarter people and harder problems.

  • hellisothers 2 years ago

    +1. I had a similar crisis when I was a “big fish in a smallish company”, I wasn’t learning, I wasn’t being stretched and felt like I was going to get stuck in this eddy. Move to a bigger company, be challenged again.

    • biomcgary 2 years ago

      I mostly agree, but I don't think the company necessarily has to be bigger, just more competent and ambitious(?).

      • mooreds 2 years ago

        I agree. It depends on what you want to do. I've been challenged technically at 2 person startups and 100k person companies.

        Advice for OP: what companies do you admire? Either globally or locally? Have conversations with folks at that company (LinkedIn is your friend in accomplishing this) and see what people actually working at these companies think about challenges and accomplishments at their employer.

      • drewcoo 2 years ago

        The parent meant to communicate "big fish in small pond" but tossed in the word company instead of pond. Ignore that bit.

        Big fish in small pond still describes the need for room to grow accurately enough.

    • QuercusMax 2 years ago

      Same with me. I was the most senior dev still writing code ~every day, and there was literally no place to grow. Moved to Google and learned a ton, now I'm one of a number of big fishes in my org, and I also feel like I can potentially move on more easily if I want to.

      • dosethree 2 years ago

        IMO people who describe themselves as big fish in a small pond come off as extremely arrogant

        • QuercusMax 2 years ago

          Was just a statement of fact. 11 years at one company with only 20 engineers runs into limits of your scope pretty fast.

        • lostlogin 2 years ago

          How about ‘largest fish in a small pond’?

  • xpe 2 years ago

    Also: don't rule out an intra-organization move.

phphphphp 2 years ago

I’ve worked with people who could have written this post with the stats and how they consider themselves, but they were awful to work with. People didn’t challenge them because it was exhausting, because they knew best, despite their constant churning out of garbage code that the business didn’t have the guts to address.

That’s not to say you’re bad or your code is bad, but it’s definitely worth considering whether the way you’re measuring yourself is a true reflection of your value: have you talked to your co-workers about what it’s like to work with you? What value you provide to them? How you can contribute to their careers, their work? The greatest value you can deliver to a business is rarely code: if you can improve every other developer by 1x, the business will be much better off than you being on an island all by yourself.

My measure of myself always starts with whether or not people enjoy working with me, whether I’m providing value to the people around me: I could write 10x as much code as I do now, but I don’t believe it would have better results for the company overall.

  • MauranKilom 2 years ago

    > People didn’t challenge them because it was exhausting, because they knew best, despite their constant churning out of garbage code that the business didn’t have the guts to address.

    That doesn't square with how people are going out of their way to query OP though, no? If people drag you into meetings tangential to your work, it seems unlikely that they hate working with you...

    • phphphphp 2 years ago

      Difficult to say without knowing the OP personally, but in my experience, all of this can square.

      There’s complex dynamics at play that are a product of the genius developer mythology: someone produces a lot of code, the system becomes an extension of that person, everyone becomes dependent upon that person regardless of whether the person is good or bad, enjoyable to work with or not, because they’re the genius system-whisperer.

      Earlier this year I spent some time at a company that has an incomprehensible system that is deeply problematic and painful to work on — so much so, they brought on dozens of developers to try and speed up the rate of delivery (I was one of them) — but the person who built it (and is most productive in it) has been elevated into a position where he now owns the entire technical implementation for the company, and is responsible for designing the solution to the nightmare he created, despite clearly demonstrating he has no business doing so: he’s simultaneously a linchpin and incompetent.

      There’s probably some version of the Peter Principle that applies to software engineering: a software engineer’s output will rise to the level where it’s a burden.

      • 100011_100001 2 years ago

        This is a fair criticism and concern.

        Part of the reason why I made this post is I can sense internally that I'm starting to lean on the whole "I know this thing better than you", which actually scares me. If I'm thinking it, I'm probably sub-communicating it.

        Both this reply and your original one are solid thoughts.

        > someone produces a lot of code, the system becomes an extension of that person, everyone becomes dependent upon that person regardless of whether the person is good or bad, enjoyable to work with or not, because they’re the genius system-whisperer.

        I hope this is not true for myself, but your logic is sound. I see the truth in it, I just hope it's not the truth. You gave me something to reflect on.

        • jv22222 2 years ago

          > I know this thing better than you

          Whenever I hand code over I ask, does it make sense? Usually they say something like, yep looks easy.

          I used to think it was because I was a dumb ass and only wrote simple stuff, but finally realized it's because I spend large effort on making the code read like english. (Good function names, good variable names, code that looks like logical short sentences, etc.)

          All this to say, if you make code it's own wiki, you can avoid "I know this thing better than you" quite effectively, and complex code can be made to seem quite simple.

          You may already doing that, but thought I'd share in case it's helpful in any way!

      • Dave3of5 2 years ago

        Your experience is the same as mine x several.

        This has happened to me in I think almost every company I've worked at. The person at the top really has no business being there and has produced a terribly bad system. Often they think very highly of themselves and have 0 self reflection. They'll be called into meetings as a subject matter expert on things they have no clue about.

        The speed thing is also a clue often these dev rattled code out at a high pace without self reflecting on the code either.

        Code being perfect and bug free is highly unlikely. I've worked with some very talented devs and there code always had something wrong with it. The type of dev that the OP fit into would argue about something being a bug to make it seem like their code is perfect. So rather than a bug all their bug would become new features. A perfect cop out when something they write is less than perfect.

        Doing 79% of the story points is a big red flag. You're hogging all the work when you do this and not letting anyone else in the team learn about what it is your building. It's a bad PO / SM that doesn't notice that one person in a team of 10 is doing almost all the work.

        FYI this never ended well for the devs I've seen like this in the past. Either through M & A or change or leadership something will happen that knocks them off the top and their ego will take a massive beating once the new top dev comes in and takes over.

      • deltaonefour 2 years ago

        This is how it is at every company. The older developers create the universe new developers need to figure out. ON average newer developers don't perform as well as the older ones. This effect is highly correlated by the complexity of the code base.

        • ratww 2 years ago

          I feel like that's the only measured answer.

          This is normal. The thing that affects the team the most in this case is the complexity of the code base.

          A lot of comments are blaming speed for a supposed lack of sophistication, excessive duplication or disorganisation of the code.

          But sometimes a developer can be fast is due to someone not introducing unnecessary complexity in the codebase.

          A fast developer is not necessarily a 10x developer, but it also isn't making a mess.

          Most of the cases of unmanageable code were made by developers with a lot of time and planning on their hands.

  • gray_50 2 years ago

    I agree with this. Worked with a guy who sounds exactly like OP. The official perception was that he was a smart 10x engineer. But off the record people actually hated working with him. He was a massive control freak and the only reason we bought anything up with him was so he didn't have a cry about it later.

    Sometimes the "10x engineer" is just the one that's loudest and most persistent. Doesn't mean they're good. Just means no one else can be fucked dealing with them.

  • Andrew_nenakhov 2 years ago

    From my experience, a person claiming to be a 10x developer probably isn't one. All real performers I knew were pretty humble people.

    • jslaby 2 years ago

      Like someone saying they're an alpha male... imo most devs, junior or not would love to tackle problems without the oversight of a lead. Maybe his code reviews are so heavy handed that devs would rather get his okay before rather than getting scorched after.

    • gamblor956 2 years ago

      To second that, the best programmers I know are quite upfront about how much they don't know.

      This can have the paradoxical effect of people relying on them less in situations where they should, because they think the 10x doesn't know anything, and instead they turn to the braggart 1/10x programmer who claims he knows everything. (Not meaning the OP on this; I just know a guy IRL who is exactly this.)

      • leaflets2 2 years ago

        Mistaking confidence for competence.

        (It seems to me, though, that OP is both competent and reasonably confident, a good combination.)

    • xpe 2 years ago

      I wonder if this is based on a statistical summary over your experience. What does your confusion matrix [1] look like?

      Also: (1) It is easy to say "from my experience" without sampling from it representatively. (2) It can be difficult, in general, to gather life experience that is balanced across all four elements of the confusion matrix. (This is a general statement that includes survivorship bias.)

      [1]: https://en.wikipedia.org/wiki/Confusion_matrix

  • seattle_spring 2 years ago

    That is spot on to what I was thinking. I have encountered a few of these guys in my career and ohhhh man do they ever think they're the absolute best.

  • aprinsen 2 years ago

    The situation OP described is really not that unbelievable to me. I've met one or two developers who really were "the best in the room" at a smaller company and I can imagine them writing something like this. Nobody hated them. The 70/30 balance seems relatively lopsided though.

soneca 2 years ago

I am not a top developer or even close to it (I don't or want to have this trait of "relentless pursuit of self-improvement"), but I have worked with a couple.

It seems to me that being controlling is part of the problem. When I worked with a top developer, every and each code that I wrote they would have written it faster, more elegantly, more maintainable, and more bug-proof. But when they reviewed my PR, they would approve it if it was good enough. They would point out possible improvements, but once they were done, they would approve and go on. If they used their skill level as the bar to accepting other people's code, they would be doing 80% of the work and writing 80% of the code. In that case, I would be very comfortable just doing much less work than I could for some time until eventually I would get bored and leave.

Still, this top developer eventually changed areas completely (in the same company). From web development, which they mastered to cyber security, where they could start again their relentless pursuit for self-improvement, working with people that knew more than them.

That would be my suggestion. Just change areas, inside software development (inside the same company, if you like there, would be easier, as you already have the respect from people and they know your potential). Go learn something that you are not a top developer. But this is just me, a very regular developer, looking from outside what I saw people more similar to you doing.

  • alisonatwork 2 years ago

    This is an underrated answer.

    When your colleagues start treating you as the "go-to guy", I think it's often holding back their own development. Why should they try harder when they know your code review will catch everything they missed? Why bother volunteering for challenging tasks when they know you will do it faster?

    Often when you are put in the position of being the "go-to guy" at a company, you start to imagine that the company will fall apart without you. But it turns out that when you leave... the company just keeps going. And sometimes those developers you worked with that you might have seen as mediocre or unmotivated now grasp the opportunity to step up and grow into something better.

    I think if you feel like all the pressure is on your shoulders and the company would fail without you, you have a bad relationship with your job. Your work is where you go to get paid. The end. Unless you are literally being paid 10x what your colleagues are being paid, from the company's perspective you are not a 10x developer. The truth is, in most cases, the company doesn't care all that much whether they have in you a 1.5x developer or a 10x developer. They value you exactly as much as they're paying you, no more. So don't feel irreplaceable. The world will keep on spinning long after you are gone.

    • xpe 2 years ago

      > They value you exactly as much as they're paying you, no more.

      Define "they".

      It is sometimes useful to think of an organization as one actor, but this simplification can break down. For example, a great developer may get noticed and recognized by her manager, but said manager may have a difficult time making the case to bump her pay due to organizational dynamics and policies.

      My point: different parts of the organization may value you differently, each with different abilities to 'compensate' you, whether it be pay, benefits, project flexibility, work-life balance, skunk works, or the option to not be anywhere near Chris.

      (No offense to people named Chris intended. Unless, well, you are that Chris.)

      • 314 2 years ago

        Oh this made me laugh. I worked at a startup for a year where Chris was actually a guy called Chris. Oj the stories

    • xpe 2 years ago

      > Unless you are literally being paid 10x what your colleagues are being paid, from the company's perspective you are not a 10x developer.

      First, the usual accepted definition of a 10x developer is not about pay; it is about value added. Second, it is well-known that market pay is not necessarily linearly related to value added.

    • xpe 2 years ago

      > Your work is where you go to get paid. The end.

      As I interpret this statement, it seems too narrow. It is one value judgment of how one person views work. It is not universal. I don't think this view is widely held in the software world, at least in the United States.

      • freedom2099 2 years ago

        I love my job (at least most of it) but I do it to get paid! It is by any means what defines me! I feel sorry for people in the US if work (especially considering what is done in most software companies) is such an important parameter in your self worth evaluation!

        • xpe 2 years ago

          I'm glad -- that is a good situation.

          I know what you mean: some people's self-worth is coupled to how their workplace perceives and values them.

          And there is plenty of room for a synthesized (from 'synthesis', not 'synthetic') view; namely, it is natural and common and useful to enjoy and want to be good at your work.

          Many people throughout history enjoy (some aspects of) working. For example there is satisfaction in seeing the fruits of your labor bring value to others.

          I think a useful distinction is separating the quality of your craft from the inevitable ups and downs that come from working in organizational contexts, which have power struggles, politics, and vary in terms of how people are respected and treated.

          Many workplaces (attempt to) optimize exclusively for short term employee output. This is short term thinking. If a person were to act in such a way it would be foolish in terms of achieving success over most time frames. It perhaps even would be immoral. Many ethicists suggest we should treat people as ends, not means.

    • dilyevsky 2 years ago

      This. “The cemeteries of the world are full of indispensable men.”

prlambert 2 years ago

You're at the wrong company. I've worked at a startup, at Twitter, and at Google and each time there was notable "raising of the bar" in the talent I was around. I know there's a lot of Google hate on HN, and it's such a big company it is true not every team is mind blowing, but... I've been there 5 years and I still have serious imposter syndrome and am constantly amazed by my colleagues. I get to work with some crazy smart and productive people. The suggestion isn't "go work for Google" (but maybe you should) but find a group of people that push you and amaze you and make you want to improve. They definitely are out there.

  • svachalek 2 years ago

    I think it's totally this. In my experience there is variance in how effective the top percentile of developers are at their work, but not nearly as great as the variance at the bottom. There are MANY teams out there where even the best developer on the team could hardly answer any question on leetcode, and some where everyone on the team could rip through every question like a bag of chips. People who call themselves 10X developers have generally not spent much time on the latter kind of team.

  • turtlebits 2 years ago

    Agreed. If there is a lack of engineering culture, it's easy to feel like you're the only one pushing the envelope, and feel like you're the most productive. I've definitely experienced that, working for large enterprise and/or financial companies.

zmxz 2 years ago

IT is full of impostors. You're surrounded by them. You like writing code and solving problems. Your coworkers want to get by. Many people working in IT are like that, that's just how it is - it's a field that pays well and it's hard to catch an impostor. Entry barrier is easy.

However, why do you want peers? Why don't you make the most out of the situation? If you're pulling such weight, you're worth a nice sum of money. Use it, create stable life, start something as a side-gig, OSS project or anything that can attract likely-minded individuals you'd like to spend your time with.

The situation you're in is not grim, it's the opposite. You're the one who gives praise, not the one who gets it. You grant approval, you don't receive it. You're the one who is relied upon, and you yourself don't have a "safety net". It's not bad, it's good.

The hard part is realizing how old we are and what our roles became with the passing of time.

somenewaccount1 2 years ago

- Become a serious mentor. Not just in passing code review, but actually spend time teaching.

- Try documenting your processes and thinking to get to the right code answer. Like a company coding manual. This way it scales your knowledge rather than being stuck as the 'doer'.

- Consider taking on different challenges, like management, either at your company or another company.

- Reflect on what it would be like to really be in a room with other 10x developers - you will all think you have the right answer which is different from each other. Does that really sound like fun to work through on the daily? It was fun when you weren't so sure you were right, it gets less fun the more sure you are.

- Most round B/C startups have ~50 developers. If you have 350, you're in a massive machine. You may think your 10x everywhere, but it's possible your only 10x in your locality, where you know the entire code base. It may simply be time for new challenges at a new company.

- Ask if you can start writing for some open source project you like (new or existing) as "developer relations" for the company in some way. Yes, you will need to reduce your in house tickets - but it will keep you happy and working and contributing and still probably doing 50% of the work. And the company gets other benefits from it.

- Along the same lines, you can start writing technical articles to publish as dev relations/marketing. Theres a lot of value in those seo posts for a lot of companies.

Theres like a million ways to go with this, but hopefully these ideas help a bit. Best of luck and I hope you find some meaningful company to hang out with.

  • cushychicken 2 years ago

    Being a mentor is fucking awesome.

    I'm a great fucking electrical engineer, but there's no project I've enjoyed like watching the junior people I work with start to apply what I've taught them.

    They're now more valuable, and so is the company, because we can do more, better, and faster.

adesanmi 2 years ago

My personal experience is that people who describe their abilities like you do are actually not very good at their job but think they are.

But, assuming, you're right, you should have switched jobs yesterday to somewhere where you can be challenged. How can you be sure? You can't. But making sure to utilise the interview process is a good starting point. If you walk out of an interview just as unsure that the place won't challenge you, then either you've not asked enough questions, or they gave very wooly answers (which is a pretty good sign that the place isn't right for you).

Good luck. Feeling lonely sucks.

  • mellavora 2 years ago

    > My personal experience is that people who describe their abilities like you do are actually not very good at their job but think they are.

    I respectfully have a complementary but somewhat different view (again, with full respect-- your personal experience is not mine)

    The author describes themself (humbly) as a 10x developer. And they seem to think "10x developer" means a person who fills the pareto principle (the one person who does 80% of the work). The author also has stats to back this up, and again, I stress that they are humble about it.

    As another poster mentioned, a "10x" is not the person who does 10x more than anyone else, but rather the person who allows many many other people to do 10% more than they could otherwise.

    As I see it, the author has grown to the limits of what their company offers, and should indeed interview for other jobs. Not necessarily take a different job, but to get a different benchmark for their abilities.

  • scintill76 2 years ago

    I’m curious what sort of key words you see that make you think the person is not actually very good.

    • exdsq 2 years ago

      The entire thing reads like copypasta - the lack of humility from a fairly junior developer (9 years? I have 8 years experience in tech and still feel like a beginner) is just crazy. It's either satire or written by someone with the EQ of a pigeon.

      • mellavora 2 years ago

        20-30 years in tech (depending how you count), and still a "beginner" at a large number of things. That feeling shouldn't go away.

        8-14 years is not junior, it is mid-level.

        The author has established a strong reputation in their current company. Again, mid-level, looking at jumping to senior level.

        Post struck me as self-reflective and referring to observable metrics, also phrased as benchmarking their interpretation of those benchmarks vs the HN community. Humility is hard.

        Pigeons are flocking animals and would have a high EQ.

        • taytus 2 years ago

          >The author has established a strong reputation in their current company.

          Oh please, it's a random post. You have no clue if the author is remotely saying the truth. Why people has to believe everything they read is besides me.

    • comprev 2 years ago

      If you make the statement that you're a "10x developer" then there's a high chance you're not really.

      It smacks of arrogance and lack of humility, as a "10x developer" is really a fantastic communicator and "people person" who can accelerate the entire team's productivity through improving business relationships. The type of person who could quickly unblock the team through one phone call or message.

      • therealdrag0 2 years ago

        Sounds like you’re just arguing the definition of 10x which is pretty irrelevant to OPs post.

zelphirkalt 2 years ago

Does not scream 10x to me. Your description sounds like you are simply very experienced at this job and the software made and used there. A good senior developer, who has spent a long time at the job should be like that. I think 10x is nonsense anyway, except if compared to subpar developers. You are probably good at thinking about edge cases, while others are too inexperienced or lazy to take care of those.

Sticking to a job can enable you to know most or all of the software there. Over time it forges the connections in the brain, that make you immediately think of important aspects and how things work together. It is good, that people realize, that they should include you in architecture meetings and such to get your input on things.

What you can do is, that you present problems you are thinking about and ask other developers for their input. Maybe even, if you already got a solution. You can also act as a mentor to get them up to speed. It can be very satisfying, if you manage to guide someone else to some learnings and then see how they are able to solve things on their own using that knowledge. Teaching is a very important thing one can do in society.

Also do not forget, that not everyone wants to work at high capacity all the time. People can also lean back a bit, when someone very reliable will take care of the problems. Perhaps decide to not influence some project at all for a change.

molyss 2 years ago

The beginning of your post did sound like a lot of bragging. Once I got to the end, I felt that I could have written a large part of it...

Feeling of being rarely challenged, loneliness, frustration with slowness, and urge to go and fix "it" have been very present for me over the past 2-3 years. It's been pretty harmful to my mental health. But it's also forced me to look at the bigger picture. So while I feel like I've lost a few years of my career, it's not all lost.

Some things I would suggest :

Don't express your frustration. You care, that's a good thing ! But you can't let the frustration overshadow your knowledge and your message. Seen it in some uber-smart people, and it just makes everyone feel bad.

Act as a teacher? I'm not sure if that's something that interests you, but it's something that'll take some of your time, improve the team around you, make you feel less lonely and make you seem more approachable for everyone. I also find it very rewarding.

Change jobs ? New team, new company, new role ?

If you're interested by CS in general, find people outside of work in the industry that you think are "10x" devs as well (god, I hate that term...)? Simply people you respect that have similar interest. I haven't solved the "how" myself, so if you're open to having some off-HN conversations about this, just let me know and we'll figure something out :)

  • 100011_100001 2 years ago

    I hate the term 10x as well. I just didn't know how else to phrase it.

    If you go to my profile...and translate it you will find my email address. Ping me :)

    • meitros 2 years ago

      Did you delete your profile text? It looked empty to me.

      (Cool translated profile name, though :P)

    • tomxor 2 years ago

      heh, fun :) Maybe need a more challenging one as a filter.

throwanem 2 years ago

You're not a 10x engineer. You're a 2x who hasn't figured out yet how to teach other engineers what you know. It sounds like it's past time you got started, for your own sake as much as that of those around you.

  • PaulStatezny 2 years ago

    > You're not a 10x engineer. You're a 2x

    That's not a fair characterization. Did you read his post? He said,

    > In my direct team of 10 people, myself included, I have completed 71% of all story points in 2022

    So on average, the other team members complete about 3.2% of the work, and he does 71%. At least in relation to his team, he's ~20x in output.

    • zimpenfish 2 years ago

      > So on average, the other team members complete about 3.2% of the work, and he does 71%.

      Without further context, though, those numbers are meaningless. There's been spans in my career where those sorts of numbers would apply to me but not because I'm an nX developer but because, e.g., a lot of the stories were related and it made sense for me to do them as part of an ongoing sequence whilst the others handled, e.g., bug fixes in other areas.

    • Chris2048 2 years ago

      Without knowing how a story-point is derived, it's not possible to conclude how much "work" this entails.

  • mathgladiator 2 years ago

    There is truth in trying to uplevel people, but first it feels like dialing in on oneself within the global market.

    • throwanem 2 years ago

      Only till you think it through. What hiring manager doesn't want someone who can demonstrate a track record of leveling up the people around them?

      • mathgladiator 2 years ago

        One dimension of this is that if you invent something, then you must uplevel people around you.

  • 100011_100001 2 years ago

    I actually try to help others. Though I admit that I should be doing it more.

    • dfcowell 2 years ago

      It might be helpful to think about what you mean by “help.” It sounds like people fairly frequently come to you for your opinion, to get an answer to a question or to solve a problem. It is extremely easy to give them what they’re asking for (the answer, a solution,) and it even feels helpful in the moment.

      This doesn’t help people grow in the long term, though. It builds dependence on you and your skills. You can quickly become the bottleneck (unintentionally!) and the “smartest guy in the room” by virtue of handing out answers and hoarding domain knowledge instead of developing the people around you.

      I don’t know you, so I don’t know if this is what’s going on. If it sounds familiar though, I have two suggestions. First, read The Phoenix Project and pay attention to the character arc of Brent and see if his journey rings any bells. Second, next time someone comes to you for help, or asks for your opinion, instead of giving them the answer directly, coach them through the problem solving process by asking questions until they arrive at the answer themselves. This will help develop that problem solving muscle that they need and help them to level up.

    • throwanem 2 years ago

      It's its own kind of skill, and takes deliberate effort to develop just as with any other. Being a great engineer, as you evidently are, is no guarantee of being a good mentor, any more than of being a good pilot. You should expect and intend to work hard at it.

      It's reasonable to expect it to feel weird at first, especially if you're not used to or comfortable with working closely with others. The good news there is that that gets much easier with effort and practice, too.

      It can be easy at first to want to just do stuff while people look on. You want to watch out for that; it can be gratifying, but doesn't much help anyone learn.

      The key, I think, is instead to find the right balance between talking through your analysis of a problem and how you work through it, and giving whoever you're working with opportunities to practice doing the same with you as a sounding board and counselor.

      It sounds basic, maybe, put like that. But it isn't; "problem" here can mean anything from "implement a function to add two numbers" to something that extends across an entire software stack and touches every level of infrastructure. It can be building an MVP from scratch. The point is that it's what your current mentee is ready for, or maybe just a little past that if you think they've got a habit of undervaluing themselves and could use a chance to build some confidence.

      Above all else remember that your essential purpose as a mentor is to make yourself no longer necessary to the person you're mentoring. You are trying to engineer yourself out of this job, because to have done so means you've succeeded.

      You needn't worry too hard about what comes next, I think. A good mentor never wants for work, and it's a surprisingly good way to keep your own skills sharp, because you can't teach like this unless you really understand what it is you're teaching.

      Too, demonstrating you can work well with other people this way makes it very easy to continue into management, if that's what you want - and it is worth thinking about that, at our age. Some folks stay great engineers all their lives, but not all. And hell, after a few decades doing the same kind of work, some folks just find they want a change.

rattray 2 years ago

Work somewhere with really, really smart people.

When I joined Stripe in 2017, I couldn't get over the number of people I worked with who were smarter, better engineers than myself. It was new to me. It was hard at times (impostor syndrome, feeling like an idiot, etc), but mostly super fun – and of course, incredibly humbling. Humility is really important to me, and it sounds like it is to you, too – you can gain it, along with a sense of camraderie, with the right team.

Switching jobs is normal, healthy, and not a betrayal – you've put in great work at this company and it will outlast you. It's time to look for something new.

Don't just say yes to the first company that comes your way – say "no" to a variety of them and when you feel really excited about the people you interview with, lean in and spend time getting to know them before signing.

If you've never worked at a "fancy silicon valley company" before, don't feel afraid about applying to them. At Stripe, we hired people with backgrounds like yours all the time, alongside folks with fancy Harvard/MIT/Google/etc backgrounds.

Don't worry, you're not anything special in the grand scheme of things :) find a company with lots of engineers better than you and you'll find a lot of joy.

As an aside, what you describe of your current role sounds straight out of the eng ladder for Stripe's "Staff Software Engineer" level. You can read more about that style of work in Will Larson's book if you want more like that, or join an earlier-stage company with a heavy-hitting team.

If you'd like to chat further, my email is in my profile, happy to set up a Zoom.

  • xpe 2 years ago

    I'm not dismissing the comment above -- it is useful -- but it leaves a lot of fundamental questions unanswered, such as:

    Which kind(s) of smart people? The kinds of smarts that are like yours? What about the forms of intelligence maybe that you don't even recognize yet? What about pairwise intelligence -- that isn't traditionally captured by the term 'smart' -- it is more often captured by quotes such as "he's inspiring to work alongside" or "she teaches me without talking down to me" or "he can herd cats to push a wet rope up a hill and get the product delivered on time".

    One takeaway: optimizing for "smart people" is underspecified.

    Another: there are many other worthwhile things to optimize for besides one kind of intelligence -- or even one fixed blend of intelligences.

    • rattray 2 years ago

      For this particular person, who wants to feel non-lonely and combat hubris while continuing to primarily do what they love (coding), I would say a heuristic I might use would be "developers who humble you with their abilities, and have great attitudes". Raw intellectual horsepower will likely be a big part of that, but I agree that "smart" alone is underspecified. For example, I think this person would enjoy working with other developers with high output at a low defect rate, with additional strengths in architecture.

      Different people in different situations should absolutely look for different things in their teammates.

      • xpe 2 years ago

        Thanks for explaining -- I see what you mean, and (FWIW) I tend to agree.

djsamseng 2 years ago

Does this identify with you at all?

- You’re checking out everyone else’s PRs and requesting changes for all the bugs you find. The few times you don’t a major outage occurs.

- Everyone’s asking you for help all the time. You actually find a way to “help” all of them but really you’re just solving their problems for them

- You say you love your job, but really it’s not like what it used to be. You’re no longer excited to be woken up at 2am to fix an outage.

- You never aimed to be here, doing this, working here. But here you are and this is now your baby.

Your baby has grown up. As long as you are here the stress will eat at you. But can I encourage you that a better life awaits you. Change will be hard, but what is waiting for you on the other side is so much better. But it takes humility, humility that “project x” will go on without you (definitely not as smoothly but others will step up to the plate). Humility to try something new where you are in the bottom 10% working your way up once again. It will feel like you’re giving up all the hard work you’ve put in, giving up what makes you king of the hill, but it’s worth it. It’s worth it because life isn’t about being king, but about the journey. Welcome to a life of freedom, of learning something new every day, of waking up each morning and diving into whatever is on your heart to discover.

ipaddr 2 years ago

Remember a 10x developer means 10 times better than the worst. Which makes you a 2x developer compared to the average.

You've reached the top at your company. You work harder and care more than most. But you haven't reached senior dev status until you realize your extra work and spotlight puts a target on your back. You are a natural target now: management shifts, technology changes, projects fail and the same people patting you on the back in management will be blaming you when things go wrong. You won't be in the room either. You are one political issue away from doom.

Some developers around you see you as smarter and will lean in for advice. Help them because another group exists who dislike your pace and how it reflects badly on them and are hoping to see you fail. Try to keep the first group large and the second group smaller.

But what are you doing this for? You would make more friends by being a friend and doing less under your name and more under others. You have the extra time you spend on your tickets but can you take the ego hit and give credit to others. If everyone is praising you, you really should use that moment to praise others. You need to include others into your moment because it becomes other people's moment too.

Use your 10x power wisely.

__derek__ 2 years ago

If this is earnest, I don't mean to minimize your angst, but I thought this was satire. Measuring by number of commits or story points completed is bureaucratic nonsense. What you're describing is not a 10x developer, but a really good bureaucrat, like Hermes Conrad.

As others have said, get a new job. Prioritize finding colleagues that are better than you are.

gnarlysasquatch 2 years ago

If 80% of the code is yours, of course you will be able to work with it faster than everyone else. It's easier to write code than read others' code; you already know how it all works, where the bodies are buried, etc.; and you probably know the other 20% pretty well too because the parts you aren't writing yourself you're reviewing and understanding in the "big picture" context better than anyone else. Not to mention getting pulled into meetings and hallway discussions that give you insights into what's coming next. Long story short: You've amassed company & product specific intellectual capital.

You're being challenged, it's just not a technical challenge. You need to define for yourself what you want out of this situation. You can of course go find another job as others have suggested; I'm sure that will feel new and technically challenging for a while at least!

Or you can accept that your challenge now is to figure out why you feel stressed and alone; why your team seems so slow; why your response is to be more controlling; why you don't trust them to get the job done; and why they just obey your edicts rather than arguing and sharing their own ideas. These are not technical problems, but they are common when engineers take on leadership roles. Is there camaraderie on the team? Can you gently suss out their thoughts on the matter? What are their goals? Try letting them solve the problem; resist urges to take control. Set limits on yourself so instead of taking over with coding, you start to learn why they're slow, and help them improve (are they over engineering? getting stuck and not asking for advice?). Allow them to make mistakes, and develop a culture of sharing in success and failure and learn from both. Recognize that they won't be as efficient given random tasks as you, since you know almost all of it; help them build up their own areas of expertise, and create a "map" of experts so they can help each other directly instead of working through you.

Most importantly, stop measuring your commit count, task count, etc., unless that's really what you want to maximize... in which case, yes, the rest of your team is going to be slower than you, depend on your understanding, and probably not have much hope of surpassing your performance. Instead, focus more on the team's performance, the project's success, etc.; find ways you can measure those if you must; and discuss with your boss so he sees your efforts, can give feedback & advice, and so you both know how you're valued.

stuckinhell 2 years ago

You need a hobby to keep you grounded. Work isn't your life, it's just work. Remind yourself for many people work is just work too.

Try writing code, something wildly out of your specialty. Example: if you are good at crud code, try writing game code.

If you want to level up code wise, then you need to connect with people at meetups or conventions.

You have to keep perspective on life and work.

iandanforth 2 years ago

As an alternative to looking for a new company (which is not a bad idea) I can suggest a path taken by a peer of mine in a similar boat. They and another go-to engineer petitioned to start a 'new projects' division and basically work on an internal spinoff. Two people with the backing of the company, a decent amount of freedom, and a mandate to build something that customers will love and buy. They had an exec sponsor and good relations with much of the e-staff. They got to experience all the "fun" of a startup with more of a safety net.

This way you pick those people who you think can help you grow and put a clear and hard challenge in front of yourself.

biomcgary 2 years ago

I haven't experienced being a 10x developer (biologist first, coder second), but I have found myself in the position of being at the top of my game (problem solving and innovation more than LOC), while also being frustrated by the limitations of the company I was at. So, I switched jobs. Everyone at the new startup is equally or more competent than me (in their own domains, which overlap, but not too much). I'm inherently involved in more exploratory work and definitely less "productive" and "in control". I feel like I'm leveling up in a new way. It brings a different kind of stress, but one I'm glad to have.

  • jarenmf 2 years ago

    That's how I feel now at my first post doc. I feel frustrated and bored already with no real mentorship or any prospect of growth. I'm really eager to be in a place where people love what they do and continuously be challenged. That's why I'm seriously considering leaving academia

    • biomcgary 2 years ago

      Put a resume together and apply for interesting jobs. I had to be dragged kicking and screaming out of academia. In the end, much to my own benefit and my family's, but it took too long. Biotech has been on a hiring binge recently, but not sure if it will stay that way given the recent direction of tech stocks.

KerrAvon 2 years ago

I don't know if the strict definition of a 10x developer is relative to other people surrounding you; a lot of us could claim to be 10x situationally.

I didn't mind being the smartest person around, but I did find it a relief to be surrounded by other people at or greater than my level when I switched to a different team.

  • lodovic 2 years ago

    If you're the smartest one in the room, you're probably in the wrong room..

    I mean, if I would perform so much better than my coworkers, in the end that would lead to me doing all the work for basically the same pay. So it would be an opportunity to find a more challenging gig.

q845712 2 years ago

What kind of feedback do you give, directly and indirectly? Do you have any former coworkers you can reach out to and ask them "what's it like to disagree with me?"

Example: I'm currently working on a project led by someone that many people at the company know. Today he shared a sketched out proposal for a problem that's been on our team's plate, and I didn't immediately like it. I started asking him questions to poke holes in his proposal over slack but he had counterarguments ready for everything, and eventually I sort of gave up and said, "ok I guess I just don't quite understand the problem."

His response was to suggest a synchronous video chat, which he started by thanking me for challenging his design. This meant I went from feeling like I was probably dumb and just asking things he'd already through to feeling like I was helping in the design process, even if I couldn't see the problem as clearly.

In the end he convinced me that all my questions had answers and my only counter-proposal would be just as much work and more "surprising" (less intuitive?) within the domain, but I didn't feel argued-down. I felt like my challenges were appreciated, which makes me more likely to raise other challenges again in the future, which reduces the odds that he'll feel like he's working alone.

just an anecdote, but I've worked with high-achievers who had varying ways of welcoming or shutting down input, enabling or crippling the teams around them. I see this suggestion a few places in this thread: if you identify as someone with a relentless drive to improve, then maybe it's time to work on your communication styles and patterns.

geraldwhen 2 years ago

Why are you working 8-5?

Work 9-3 and pick up a hobby. You only need to outperform your peers, or train them up if that's possible. Beyond that you owe the company you work for nothing.

Why work harder, when working harder provides you no benefit whatsoever?

  • 100011_100001 2 years ago

    I've had the same debate myself. Honestly, not counting crazy hectic meeting days I could work 9-3 and still produce more than others. The only thing stopping me is the feeling that if I'm getting paid I should be working.

    However, I know that if I worked 9-3 my personal well-being would improve.

    • abledon 2 years ago

      you need to see a therapist about feeling guilty about overworking.

      You only need to work as much as whats required, nothing more. If you can close off your assigned 'tickets' etc, given each sprint, do so, then rest. Your personal well-being is #1.

      • id 2 years ago

        It's kinda weird watching team members finish two tickets per week when you know they could finish two per day. I know I should probably relax like them but it feels too much like cheating (and let's be honest, it is).

        • abledon 2 years ago

          i agree its gross, but its the reality we live in. Assuming you're being payed the same salary range as someone who is 1/5 as effective as you, why should you work harder than them? you're not compensated for your extra energy put in (unless its your own startup etc, or you have a large equity %) so theres no reason to do more than you're asked. beautiful thing about a salary job is you clock in, do whats asked of you, then do your own stuff on the side.

        • geraldwhen 2 years ago

          You're stuck in an hourly mindset. If you pay someone to build a house, and they complete the house, they're done. They get paid. Whether they build it in 1 day or 200 days, the price is the same.

          Getting paid for time is a trick that you need to surpass. Get paid for what you produce. That is the primary difference between businesses and individuals: the non-correlation of time and revenue for a business versus an individual.

          • id 2 years ago

            It's not just me that is stuck in an hourly mindset, it's every company offering developer jobs ever. In my contract it's not defined how much I have to get done, only how many hours I have to work per week. Time worked is tracked, work done not really.

    • RangerScience 2 years ago

      If it helps: Anecdotally 8-5 isn't standard in tech (none of the companies that I've worked for, and none of the companies of folks that I've talked to about this kind of thing have worked for). I'm betting you also don't have unlimited PTO?

      More importantly, this is my fav career anecdote:

      "You know you've made it when people pay you to be you."

      It sounds like you're at (or past) this point. The hours you work don't matter. The value you bring to the company, and the value the company brings to you - that's what matters, when you reach that point.

      Personal well-being is one of the things that the company can give (or take!) from you.

    • drc500free 2 years ago

      A team of 10 devs costs $2-$3M a year. If you are providing 70% of the value, you should be pulling in more than $1M a year - even accounting for the overhead of having someone else code review and QA.

      Are you making 7 figures? If not, you shouldn't feel guilty about how much you're working. It sounds like you could lean on your employer for a six figure raise which can pay for things like a personal trainer.

whatever_dude 2 years ago

If 80% is your code, and you're the one making architectural decisions about it, it's not surprising you're much faster at it.

Being a 10x developer is not about commits, or 0 defects short term. Situational knowledge can also blind you to your actual prowess.

How are you elevating the rest of the team? How easy is it for someone to touch on and improce your code?

If you feel and act as your team is incompetent, they either are incompetent, or will become incompetent.

d--b 2 years ago

I don’t understand how you see any kind of causality between being good and being lonely.

I worked with tons of people, some more talented, some less talented, I never felt like not connecting with people less able than me. And I don’t think people more talented than me felt lonely at all.

Keep the coding going and work on being friendly and fun and helpful. That kind of stuff.

Oh and please don’t call yourself 10x. You’re losing a lot of sympathy in that first sentence.

  • leaflets2 2 years ago

    If the difference is big enough, you'll start feeling lonely in a way. And/or frustrated and bored. When the others cannot truly understand you

dansiemens 2 years ago

> In my direct team of 10 people, myself included, I have completed 71% of all story points in 2022, the other 9 are responsible for the other 29%

This just sounds like another example of Price’s Law. Seems like you’ve climbed the ladder of competency at your organization, and now there’s nowhere else to go.

I’ll leave you with this quote from Garry Tan:

“At every job you should either learn or earn. Either is fine. Both is best. But if it's neither, quit” [1]

Sounds like you might need more on the side of learning here. Good luck.

[1] https://mobile.twitter.com/garrytan/status/13776619701789736...

nathan_phoenix 2 years ago

Thia post is kinda the epitome of HN being humble. Especially when each second comment is of the form "Totally relatable, I feel the same". So many x10 devs that soon one gotta be a x100 dev to be above average, yikes...

  • wayne-li2 2 years ago

    I really don’t think that’s how people interpreted this post. I left one of those relatable comments but I skipped over the 10x comment. In general, if you are consistently above average (which I would argue a large crowd in HN could be) you will end up with similar feelings as OP.

    Coming back to this thread now after a few hours, people seemed to have fixated on their 10x comment. It seems like a weird fixation to me.

DeathArrow 2 years ago

I am trying not to be an 10x developer. I try to stay around whatever the number of story points is considered ok for my team. If if finish something in 2 hours instead of 5, that means I have more time to do other things. Try new approaches, make proof of concepts for myself, read something interesting, browse the web.

If I'd try to work as fast as possible, I feel I would burn out fast.

My advice would be to either get slower with the work (do only what needs to be done) and do other things in the time remaining or switch jobs for one that pays accordingly to the work you are capable of doing, open your own company.

  • leaflets2 2 years ago

    People ask OP for help a lot, wants him in their meetings. Should he say: No, I'm browsing the web

    Switching company, or starting his own, seems like good ideas yes. Maybe even as a freelancer / contractor

annoyingcyclist 2 years ago

I've been this in jobs, and am one of these people in my current job, so I can relate to what you wrote here.

There's a lot that goes into switching jobs, so it's hard to offer as general advice – it's much easier to do for some people than others. Switching into any new job is a reset switch for a lot of what you experience in your current role. You come in with no/minimal reputation, domain knowledge, relationships, knowledge of the code, etc, and you'll have to work to build all that – by itself, that's probably a refreshing change. If you switch into a company with a high talent bar, you'll get all that and also be nearly guaranteed of never being the smartest/most effective person in your area. This can be a big ego check, but also means that there's plenty of folks around to learn from.

I'm primarily a startup guy, and I'm good enough that I usually end up being a key person. I spent some time at a prestigious, trendy company filled with really smart people. I didn't like a lot of things about that place, but I _loved_ the caliber of my teammates. Everyone was above average, everyone pulled their weight, followed along in fast-moving discussions, politely/professionally challenged each other's ideas, etc. Definitely not lonely, and definitely a dynamic I miss in my current team.

kromem 2 years ago

How good are you really?

Because if you are really and truly excellent, my advice is to not bother with caring about the rest of the room, and to just focus on the quality of your day to day life.

There's diminishing returns on 'success' and a diminishing supply of your time.

I burnt out on the cycle of "excited to finally be in the bigger pond," then "doing really well in this pond," to "wait, this is all this pond has to offer?" And repeat.

There's brilliant people out there. They will rarely be the person on the other end of the check. And even when they are, the person on the other end of THEIR check is certainly going to be a moron.

You'll see potential around every corner. You'll get excited about just what you and the other brilliant people you finally found will be able to accomplish. And then you'll watch what actually plays out and it will crush you.

If you have a nice life, and find fulfillment in what you have outside of work, don't sacrifice your work life balance to put more into work in the pursuit of finding fulfillment there.

Unfortunately society still just isn't quite at the point where it's realized the value in attracting the absolute best by offering them much less work.

If/when that changes and you can find yourself working one to two days a week making a living and networked with true peers - jump to that pond immediately.

Until then, beware of leaping from the pan to the fire.

rr808 2 years ago

Sounds like you need a more challenging project. However its a red flag to me if you write 80% of the code. Do you really need to write so much code? I worked with a prolific developer and instead of doing things simply he always wrote another dozen classes. The whole thing was over-engineered because this guy was always adding an extra layer of complexity, it was so hard to understand - the only guy who understood it was you know who. Make sure you're not that guy.

karamazov 2 years ago

First, a reality check - it’s great that you can ship defect-free code, but that’s table stakes for a good senior engineer. You’re locally a 10x engineer because you wrote most of the code, so you’re naturally going to be a lot more effective than the other people on your team. This probably won’t translate to new projects.

If you joined a new project where someone else had written 80% of it, it would take you years to catch up to their productivity; if they were controlling and continued to write 80% of everything, it would be impossible. The next step in becoming a better engineer for this project is figuring out what you need to do differently for everyone else to be more productive; for example, if other people are pushing bugs, you need to add tests to make that impossible. If people take a long time to ramp up, you need to refactor the code so that someone doesn’t need to understand -all- of it to start contributing; you might also need onboarding docs.

The next step in becoming a better engineer generally is to switch teams and learn new skills. If you enjoy hard technical work, miss feeling challenged, and genuinely feel like you’re a much better dev than average, try switching to a hard field that’s new to you: distributed systems, ml, performance engineering, etc.

  • lelanthran 2 years ago

    > You’re locally a 10x engineer because you wrote most of the code, so you’re naturally going to be a lot more effective than the other people on your team. This probably won’t translate to new projects.

    >

    > If you joined a new project where someone else had written 80% of it, it would take you years to catch up to their productivity; if they were controlling and continued to write 80% of everything, it would be impossible.

    So much this! I read the OP and thought that the dev should get out more. I'm 10x as productive on systems I built myself vs systems other people built.

    That's (according to my rough estimates) one developer (me) being 10x better developer than the next developer (also me!).

    Switch to an established team and see how long it takes you to get to your self-reported 23x developer status.

rendall 2 years ago

I think this is one of my favorite Ask HN's. Just, yay.

Unfortunately, I have to write my thoughts quickly, because otherwise I will not be able to write them at all. Got some things to do :)

When I get to this stage, I can get self destructive. It sounds like you're heading down that path with the negative framing.

I don't know if any of what I say will make sense.

First: negative framing. Commit to positivity. Commit - spiritually, if that makes sense to you - fully, to the idea that everyone is contributing, and can contribute at your level.

Second: communicate (positively). Figure out a way to communicate your concerns to your colleagues in a non-judgemental way. (shit, this is inadequate)

Third: challenge. It sounds like you're not being challenged anymore. Same framework, same issues. This is actually a really bad thing. It means that once this context is obsolete, your finely-honed abilities might be obsolete. Take it from a guy who got his start as a Flash developer, you need some challenge. This could be something else than development, though: start a business, move to a different country, throw massive parties (what I did). Find a challenge that's hard and meet it.

Good luck! I'd love to chat about it more. Contact info in bio. Sorry I could not write a longer letter.

pjmorris 2 years ago

Congratulations on your progress. Guitarist Pat Metheny has suggested one approach to growth is to "Be the worst guy in every band you're in." Dave Hoover applied that to his own learning in software development and wrote it up, first as a blog post [0] and later, with Adewale Oshineye, as part of a book, 'Apprenticeship Patterns.' [1]

The implication is that you could consider finding a stronger team to work with, which might involve a job switch. There are much larger issues there, involving salary, benefits, commute, effects on family and friends, and only you know the the full picture of the effects of those things on your own happiness. I can say there's a place for keeping an imperfect job as part of a pleasant overall picture. Good luck as you explore your options.

[0] https://redsquirrel.com/dave/work/a2j/patterns/BeTheWorst.ht...

[1] https://learning.oreilly.com/library/view/apprenticeship-pat...

throwawaya9059c 2 years ago

I've been trying to find answers for the last few months to the same questions you are asking. I could have written 95% of what you just wrote.

I won't try to prove my status as a 10xer beyond that as an IC in the last two years, my company and its customers have nine figures more in their pockets because of stuff I've written. As a result my compensation is in the band for a Google L8.

It's completely clear to me, particularly from your replies, you are an exceptional developer.

My frustrations and fears are *exactly* the same as yours.

I don't have answers for you. I'm right there too. All I can do is confirm that you aren't crazy, you aren't alone.

The only helpful? thing I've found so far is to make my circle of caring smaller. I've chosen half the company's codebase to strenuously avoid knowing anything about. I focus on one important problem or important code review at a time, and try to do an excellent job at it at the pace that it requires, and in spite of the dozen other critical issues or urgently needed code reviews, that are around me.

immigrantheart 2 years ago

Try teaching. This world needs more of competent developers to teach. It could also help with your loneliness, and people will appreciate it. Win win situation.

FWIW, one of my friend is the maintainer of one of the most popular FOSS. He doesn't code as much anymore, but instead focusing on building relationships with people, like a dev evangelist. He seems really happy doing it.

  • 100011_100001 2 years ago

    As in teaching college courses or other developers?

    Currently I train new developers with all the tools we are using, and our CI/CD process. I mentor one new hire in six month cycles, and yesterday I got an intern mentee.

    I also write a lot of technical docs mainly as a way to explain to others how different parts of the system function. As I make code changes, I update the docs as my own personal definition of done.

    In terms of a college career, I'm not sure a college could pay me as well.

    • immigrantheart 2 years ago

      Teaching other developers. Maybe open a youtube channel for teaching programming, but for more senior techniques, i.e, how to build a robust software, approach to testing, error handling, logging, etc.

      • 100011_100001 2 years ago

        I debated starting a Youtube channel. I don't think I'm that special. I truly believe that what sets me apart is that I have good processes to get me working, asked a lot of questions to developers I admired as I was learning and read a lot of code to figure out how things work.

        It would probably be cool to explain that to others. I enjoy talking about the developer mindset I possess when mentoring Jr Devs that cycle through with me.

        • immigrantheart 2 years ago

          I for one would want to have more senior devs mentor me. I’m sure a lot of devs would appreciate the content.

  • jerkstate 2 years ago

    Yeah, in particular, try teaching and motivating your colleagues. Programming computers is easy, programming people is a lot harder.

    “If you wish to build a ship, do not divide the men into teams and send them to the forest to cut wood. Instead, teach them to long for the vast and endless sea.” -Attributed to Antoine de Saint-Exupéry

    I often feel like I’m working more efficiently towards a goal than colleagues (and I work with others who make me feel inefficient, too), but that’s my opportunity as a tech lead. Help them figure out how to unblock themselves and motivate them towards the vision.

    • immigrantheart 2 years ago

      Yeah. And it is easier to do this in a smaller company.

dsr_ 2 years ago

"This feeling of loneliness got quantified when the commit number came up. The problem is people just accept whatever I say. I used to get challenged in some of my decisions, which I always appreciated since I could create better solutions. Nowadays people just accept whatever I say as the best way.

It feels like I don't have peers."

This chunk here is consistent across fields. It means that you are the big fish in this pond.

Some people like that. Some people hate it. It looks like you're in the latter camp, and that means that you want to look for a job elsewhere, in an organization which is bigger in one specific metric: the number of people who can teach and mentor you.

Ascertaining that metric is very difficult.

You should also be aware that if you find such a group, you may not like it as much as you think you will. Humans have a lot invested in status, and your status will decrease significantly if you move to a group where you are merely better than average, or perhaps a little below average. New job energy may mask that for some months.

kareemsabri 2 years ago

You didn't mention how many jobs you've had. If you've been at the same company for 9 years, you've likely just built up a ton of institutional knowledge and may not be a "10x developer" in the broader world. As others mentioned, you should probably find a place with better developers than you (I don't know what you're working on, but if you're not like, writing a programming language or a self-driving car or something it shouldn't be too challenging).

> 80% of the code base is my code

It's a bit of red flag imo that you don't seem to consider that being the author of a system naturally makes you much more productive in it, while others have to adapt to your code (essentially, you may be doing a poor job with knowledge transfer). An old CTO used to have a saying "the easiest way to be a 10x engineer is to make 5 other engineers 2x more productive".

  • skellera 2 years ago

    To the last point, seems like he hasn’t brought the other devs up with him. Either by lack of company culture or personal avoidance, being “that” much better than everyone else should be shared. He should be teaching others.

koolba 2 years ago

Go through your Rolodex of everyone you’ve worked with that has since left, filter out the high level positions, and contact each to see what they are up too. If you’re the type of person that you describe, they’ll jump at an opportunity to work with you, at a higher pay grade, with less responsibility, and more flexible hours.

hellohowareu 2 years ago

As a 35 year old developer who started at about age 32, just want to say: I am glad to see folks in their 40s doing well as a developer.

sometimes i get burned out on it. but, ultimately i am still interested in programming and the creativity that comes with creating products.

so, just glad that I can keep being one for at least 10, maybe 20 more years.

  • rswail 2 years ago

    As a 58 year old developer that start at 18, it's about finding the right place to do stuff that is the right level of challenge for you.

    It's also about adopting the attitude that "I can always learn more". Just by reading HN that's a really good step, because there are smart people here and interesting posts.

    I started professionally as a Pascal programmer on an IBM PC/XT, now I architect OLTP systems and either spend my time debating high level architecture, or I'm down in the weeds watching log files of the apps.

    There's always somewhere interesting to go on the journey. Especially if you treat it as about creativity and not engineering :)

    • hellohowareu 2 years ago

      Thanks a ton! I appreciate the encouragement! Great point on treating it as creativity rather than engineering. I totally agree-- makes it more fun and interesting for me.

  • 100011_100001 2 years ago

    The thought I used to help me in times of doubt, or impostor syndrome was that I might lack the experience of even 28 year old devs that worked since graduating college, but I have more life experience to compensate.

    If you look around, you will see that a lot of the struggles of younger age developers are from lack of life experience not specific developer skills.

  • mech422 2 years ago

    It's up to you...I'm 55, and still going strong... Haven't had any trouble keeping up or finding jobs.

    Have Fun!

    • hellohowareu 2 years ago

      Thanks a ton! Good to hear-- that's something I sometimes worry about. But then I also think "Well, technology is more important than it used to be, so based on that, the future seems bright, career-wise." But great to hear, just to turn off any worrying voice in my head.

n3utrino 2 years ago

I was/am in a somewhat similar position. I don't consider myself a 10x dev but I have 20+ years at the same company.

Obviously I don't vibe with all the "you should switch jobs" comments, although it can be an excellent next step for you.

My approach was to work more "on the system" than "in the system". I made it my mission to improve the skills of my team. Introducing "Mob Programming" had the biggest impact. It seems counter intuitive but stories get completed faster, knowledge is shared, ownership of code is shared, even small decisions get made together, good practises by positive peer pressure, and you get to code together.

It seems you could use your standing to suggest/introduce changes without even having an official role, that comes with less coding.

throwaway_dcnt 2 years ago

I used to be in a similar situation (smartest, most innovative person in a team of nearly 2000 developers), then I jumped ship to a smaller but way more competent team. One one hand, now I occasionally get schooled by some of the smartest people around and love it, on the other, I (very rarely) miss being the king of the hill. I have since come to the conclusion that happiness is not (and should not be) tied to your work identity, what matters is people, friends, family and how one contributes to increasing the beauty of the universe. Sounds lofty and a little vague but that is by design, you have to find what motivates and excites you.

rswail 2 years ago

I can empathize with this, but I also have the problem that I'm nearing 60 and I'm working with guys in their 20s and 30s.

So now I'm trying to become more of a "mentor". Particularly now that everything is WFH and remote, a lot of the bullshit that people used to use in the office to promote themselves has been stripped away.

So it's easier to recognize actual talent, and when I do, I try to make sure that when I do something, I do everything I can to get people to understand what I did and, more importantly, why.

So now, I see my "output" as not necessarily my code (I still write it) but the people in the teams I work with.

dgb23 2 years ago

From the looks of it you _are_ being challenged, just not in the way you expected.

> The worst part is I am sensing within myself this frustration that everyone else appears to move so slowly. The thought of "great, one more thing I got to fix" is coming up too frequently.

I find it very respectable that you are so self-aware. In my worldview, stronger shoulders should carry more weight, but that also means that you have leverage to make things better around you, for yourself and others. You obviously don't want to become grumpy or arrogant. I get that, it feels terrible. But there is a way, possibly outside of the well trodden paths.

  • 100011_100001 2 years ago

    A very interesting point of view.

    A theme in replies is that I should be teaching / helping others. I do that in terms of advice, but I am starting to realize that I need to focus more on not giving the right answer, but explaining how I go to it, and ideally solve the problem for everyone if I can.

    • dgb23 2 years ago

      Have you read How to Solve It (Polya)? It's a short read and has great advice in terms of problem solving and teaching. If not: Maybe you get some inspiration from there, seems you will like it.

alexashka 2 years ago

This post reminds me of the 'nice guy' asking why girls only seem to love jerks and how he can't get a date.

Except this is 'nice guy', workplace edition.

Just like you don't win at dating by being nice, you don't win at corporate wage slavery by being a hard working slave.

You lose by being a 'nice guy', you lose by 'working hard'. Get it? Because you'd be trying to do the wrong thing? Figure out what the right thing is, but you'll have to let go of your slave morality to get there - as long as you think lying is bad, while working hard to make someone else rich is good, you will be stuck.

lordnacho 2 years ago

Clearly you should change jobs to a place with more devs, hopefully you will find some peers there.

Don't be frustrated with slower people. Part of it is the cannibalization effect. If a team has a dominant striker, some of the others will be scoring fewer goals than their potential. You might actually be doing them a favor by moving on. The other thing to remember is that great players still need water carriers, or they'll be wasting their time carrying water themselves. Lastly, if you don't have some 1X people around you, nobody will know you're a 10X. So be happy that you are so good and so influential.

  • 100011_100001 2 years ago

    Cannibalization effect. You are probably right.

    I think one of the things I need to do more of is listen more, talk less.

Fr3dd1 2 years ago

I can kind of understand what you are saying. However some points I guess cant be true (at least I hope). In a company with around 350 devs I would say there should be at least one other dev who is "really good". In my experience there are devs like you, who just get a lot of work done in a good quality and there are other devs who enable others. They themselves dont commit that often or get a lot of stories done because they are a lot in pair programming sessions or otherwise connected with others. Maybe you can try and look if you find someone like this in your company.

kmarc 2 years ago

Since you seem to be the smartest person in the room, you are in the wrong room. Most probably you have a ton of $$$$ by this time, so leave that damn room (sabbatical, or simply quit), and use that money to do something which you maybe don't even know you like (sports, travels, hell, maybe an expensive car).

This is what I did when I was in your shoes[1]. Then I went to work for something quite different, and enjoyed NOT being the smartest in the room anymore, and not being responsible for 60%+ of commits, docs, etc.

[1]: one of the best times of my life, BTW. And I also like coding.

Jensson 2 years ago

Most developers pivot to harder things until they are reach the level where they are barely able to stay productive since the tasks are too hard for them. This means it is really easy to be much faster than everyone else just by not pivoting to new things, just continue mastering the same thing. Many people never master anything and just stall though, but the way other developers handle your problem is to move on to something harder, that is what everyone else did who didn't struggle with the tasks you currently work on.

cat_plus_plus 2 years ago

I think you are not defining the problem broadly enough. Working or coding in general can not provide all the challenge and social belonging in life. Pick something that you are not good at and recapture satisfaction of growth. For example, I took up kickboxing about a year ago and I am still not great at it, but I can see improvement month by month. Or an ultimate 100x - have/adopt a kid or another kid, no more boredom for a decade.

Next, even when it comes to work, you are not replicating your results at scale yet. Can you discover people with great potential and train them until they are able to challenge YOU and suggest improvements to whatever you come up with.

Finally, is there truly no individual challenge left for yourself as an individual contributor? Have you looked at state of the art in 3D graphics, machine learning and quantum computing and expanded your expertise in these areas? Or if you prefer traditional programming, try coding for low end embedded devices where extreme ingenuity is required for production functionality and performance. Don't mean to jump straight into recruitment, but if you want, ping me some ways to contact you and I bet we can keep you challenged for a while.

Or, for non work fun, check out retro computing / demo scene. This cuts down tedium of writing lots of code - can't fit that much in 64K or even 640L - while maximizing fun of making every line count.

gboone 2 years ago

>The worst part is I am sensing within myself this frustration that everyone else appears to move so slowly. The thought of "great, one more thing I got to fix" is coming up too frequently.

I see this as a point of opportunity for you because you have some part in this and just need to figure out what it is. Based on what you are saying, the key might be found somewhere between when you do what comes easy for you in terms of getting work done - and - doing what is very hard/unpleasant for you but would produce more work in others. You are exercising control with a high level of expertise and this could be exercised differently.

An example I could give is the case of a tech help forum I co-moderate. If I want more help from the community and to see increased participation with ideas and suggestions, I have to let the unanswered question just sit there. If another moderator takes it upon themselves to efficiently get things solved and jumps in and answers it, then others don't see a need.

I'm not sure how this translates, but it might mean that the next big challenge for you is found in choosing to NOT doing something rather than doing it. Like, being available to others during that time, rather than actually doing it, could be a strategic step. This would increase interaction, help you see the effort made by others regardless of their productivity, and man - we all benefit when someone competent is not constantly busy. I love asking questions but hate to interrupt others. Open office hours the way professors do it, or something like that.

coip 2 years ago

As someone far younger than you, yet at times infinitely jaded, through what have >0% odds of being at least related circumstance:

If you haven’t come across DFWs This is Water, I’d highly recommend you give it a sincere listen: https://youtu.be/PhhC_N6Bm_s

What is your goal? Have to make hay while the sun shines, if you perform so we’ll see if you can find another opportunity to realize that gap you’re in? If that’s not fruitful, try and try again and at the end of the day, find resolve in knowing you’re doing what you can and, while you have that going wrt opportunities, give your thoughts and time to things around you that do inspire you and provide some degree of fulfillment. As someone in the field as a moderately tenured, and currently unemployed, “software engineer”: it is hard to unplug but god is it so necessary for being present and being able to see what else is going on you can nurture&enjoy. I’m a bit scared, given the macro picture rn, about being unemployed. But, at the end of the day, we are all in this ocean of chaos with 86400 seconds to allocate everyday however we choose. Bit of a lengthy rant, but feels good to capture some thoughts I’ve been having honestly, and hope you are most excellent!!! At least it’s almost the weekend haha.

  • 100011_100001 2 years ago

    I watched the video this morning. Thanks, it gave me something to reflect on.

freemint 2 years ago

> What can I do to change things?

Find a talented Junior developer which is able to think in your in presence (not stunted by your presence) and out spoken enough to disagree while you stand them character wise and take them under your wing. Mentor them as far as you think you can be effective mentoring them. Then let them grow on their own and after some break pick the next candidate.

Edit: Oh i see you are already doing that. Different suggestions: network with fellow professionals and contribute to a trade publication.

onion2k 2 years ago

I looked at Jira stories and story points. In my direct team of 10 people, myself included, I have completed 71% of all story points in 2022, the other 9 are responsible for the other 29%.

If someone on my team can do 20 1 point "fix this typo" tasks, with 20 tiny commits, in the time it takes me to complete a 5 point task that I squash into 1 commit, that doesn't mean they're 4x more productive than me despite completing 4 times points and 5 times more commits.

Points and commits are a measure of complexity more than time. If you're doing far more of them then (in general, but not necessarily true for the author) you're working on simpler tasks. If you're getting through lots of high point stories very quickly then that's a sign that you're padding your estimates too much. Story points should judge complexity relative to other stories.

Neither points nor commits are a sign of being a 10x developer. A 10x person is 10 times more effective, not 10 times more productive. When you look at someone who is generally considered a 10x dev like Fabrice Bellard or John Carmack, they're not just doing more work than their peers. They're moving the state of the art forwards, and building apps that are fundamental building blocks thousands of people use to build on top of.

UncleOxidant 2 years ago

Put a "10x developer" bullet point near the top of your resume and look for another gig?

simonebrunozzi 2 years ago

Random thoughts trying to answer your beautiful, passionate post - which I really liked.

1) As others have said, it might be that the company you work at is below average, and you are above average. This might be frustrating in the long term, and cause most of the issues you have listed.

2) I'm 45, you're 42; I sense that you might be going through a period similar to the one I have experienced, where I suddenly didn't have a manager/boss who inspired me, or someone I wanted to be when I got older. Perhaps you need someone to challenge you, either/or your boss, or your co-workers.

3) It might be that you want to stay at this company, and moving to another one is not an option for you. In that case, see that as a powerful, maybe useful, constraint, and work around it. How can you make your job AMAZING, despite you cannot change company, or other things happening in your current role?

4) You write wonderfully, and I would love to read more and more. Maybe you could start a newsletter focused on developers, and that could be a way to find some of the exchange, the challenge, the smartness that you seem to lack now.

5) Want to chat? Ping me on email, we'll chat. Sometimes a stranger can be a little helpful, because he doesn't have any vested interest in influencing the direction of your career.

goldenchrome 2 years ago

It sounds like you’re contributing too much. If you’re the backbone of your company’s technical org and you’re not the CTO or at least a director, you’re being undervalued which causes a lot of psychological distress over time.

I recommend you figure out how to get to that position, which will probably involve training other developers to take over for you.

If you don’t want to get into management, you could join a large company >3000 employees where there will be dozens of people like you.

  • sam1r 2 years ago

    OK but at that point, wouldn't it be better for someone this talented, to contract for themselves?

    Any new position is still pretty high risk, to put the OP in not only the same position they are currently at, but possibly worse.

incomingpain 2 years ago

>I don't think that the number of git commits actually proves anything, other than I commit, code review, and merge code frequently. I wanted a better metric to quantify my feelings of alienation. I looked at Jira stories and story points. In my direct team of 10 people, myself included, I have completed 71% of all story points in 2022, the other 9 are responsible for the other 29%. That jives with my number of git commits compared to others as well.

You joke that you are a 10x dev but do you understand why? In fact doing the math... 71% vs 3% is more like 23x.

So you're a 23x dev. But it's not because you're 23x better than the average dev. You're 23x better than those devs. They achieve nothing and get away with it. Same pay either way. You are 23x against devs who are probably watching youtube, doomscrolling facebook, or playing video games.

>It feels like I don't have peers. I'm solely dragging my entire team and everyone else around me with me for the ride. This leads to stress, it feels that if I am not working on the "thing" it won't get completed.

You are lonely because everyone else isn't showing up to work. They are getting away with it because the managers also are doomscrolling facebook and playing video games.

If not for you holding shit together and getting abused someone would eventually ask why nobody is getting anything done.

You might be frustrated but any amount of holding back or trying to get this fixed will never work. You might think you can fix this situation but you cant.

The only option is to find a new job.

n4kana 2 years ago

10x or not, you’re ready to reframe your role in your company. Perhaps in your industry too. However I find it interesting that you didn’t come out saying “I think I want to find a new job.” Like there’s something keeping you at this job - you like something there. I’ve felt similarly alone at my company and I’m no doubt at least a 2x engineer in my architectural engineering capacity. Here’s the bottom line - psychedelic medicine helped me with anxiety and depression. I still get frustrated with slack-jawed engineers assisting me but ultimately I find satisfaction in the tight execution of a project even when they feel like layups. It’s not trivial work - there are new challenges but I had to adjust my mindset to see them. I wanted challenges to look one way, but with a wide angle psychedelic driven perspective, I see that they’re nearby but not what I expected. Moreover at the end of the day, I have rapport at my company. I’d need a pretty strong sense to leave a good company that respects me for some place that pays me more to scramble like a beginner all over. That’s not the chapter of my life that I’m writing right now. Feel free to write your next chapter outside of the office.

birkey 2 years ago

Thanks for the post. I can related to what you posted and would like to offer few perspectives that might help you.

1. Start with accepting the fact that you are the lead developer who is responsible for the long term success of the project thus the team. This is really important in that it puts the project and team as the same level.

2. Start mentoring and delegating more core pieces to others in the team. Allow them to make mistakes of their own so they can see the bad and appreciate the good. As long as their work is good enough, let them take more ownership so they can grow be the lead developer if you are ever to move on.

3. The last point is to always remind yourself of the fact that the project will eventually continue regardless of you being there or not. As a lead, it is your responsibility that it will continue smoothly after you move on to other things. As long as you keep doing "one more thing you got to fix", you will accumulate more responsibilities that will eventually burn you out. So for the good of the project, the team and yourself, you should start working towards a scenario where either the project or the team does not need to depend on you to be able to move forward, which will eventually happen whether you like it or not.

notacoward 2 years ago

One word: move.

I left one job, as it turns out pretty early in my career, because I felt I'd run out of headroom. I'd gotten pretty good at some things, and management very much wanted me to do more of those things. I really really liked the people I worked with, including said management. But I felt like I was always the question answerer. There was nobody I could go to for information or advice. I was stagnating. I went to another company where everyone was significantly senior to me - willingly choosing to be the n00b again. It was scary as hell, but it really helped me grow, and I've never regretted the choice. As it turns out, I worked with some of those people twice more at other companies, so I didn't even miss them for long.

BTW this has nothing to do with being "10X" or not. It has more to do with where you are in your own growth vs. what roles are available where you are. If you're in an RPG, but you're level 30 in a level 20 area, it might feel like you're 10X but you're really just in the wrong place. The "10X" idea might in fact be a significant impediment to doing what you need to do. Sometimes you need to go outside your comfort zone to grow.

markmiro 2 years ago

Change jobs, but not because of others moving slowly.

It's amazing that people trust you, but you're worried you'll let your team down. One of the biggest reasons why people leave jobs is because of a lack of growth opportunities, and the longer you stay in your position, the more likely it's going to beat the ambition out of others on the team.

And if most of the code is written by you, this doesn't make you bad for leaving. The easiest code to maintain is code that's written by one person. Sure, some people might get mad and try to shame you, for leaving them to maintain all your code. However, this might be a result of people not believing in themselves. They need encouragement, and some nurturing.

So I don't think the problem is whether you're a 10x developer or not. If you're good, it's like a white tablecloth at a restaurant. The cloth isn't bad just because it got stained. The problem is you're lonely, increasingly resentful, increasingly complacent, and it's not going to be good for those around you.

If you leave the company and it goes well for you, it's also motivating for others since they know the company won't try to sabotage them on their way up. If the company does sabotage you, then this is also good since it'll help you determine the difference between a team that has your back vs a team that wants to use you. Either way, it's important to appreciate them regardless.

So you got to your position because a you cared about others. It's important to not let your accomplishments blind you and overshadow just how much of your success comes from your care for others.

martin1975 2 years ago

Sounds like you aren't being properly motivated and your talents not used. Sign up to a project which is guaranteed to fail if you were the only person working on it. Then you will very quickly find out how your conceit dissolves, once you realize there's very little any one of us can do individually that is of great significance and why building software, like any other large effort, is necessarily a team effort.

gabereiser 2 years ago

I think it’s time to find an environment where you’ll be challenged. You currently aren’t even though you’re exceptional at what you do. If you’re still hungry for more, it’s time to move on and challenge yourself somewhere new. If you’re currently a 10x dev at SpaceX or something then I’m afraid you’ve hit the stratosphere of mere mortals and have graduated to iddqd land. (Shout out to the SpaceX team killing it).

atraac 2 years ago

I have the exact same feeling though I have only 6 years of experience(being 29 years old). At this point ~90% of the code we have, was written, touched or refactored by me, so I know everything in my org, I know services we use, even 3rd party ones, I do my work usually twice as fast as other developers, my contributions double the amount of the developer behind me. I am the guy that everyone comes to with problems, issues, ideas, architecture questions. I had similar experience in all previous companies.

At the same time, I feel the impostor syndrome hitting me hard, I never worked at big tech, never worked on multi-million-user applications. I know there's a lot that I don't know or things that I have never done. Yet, whenever I look at tech 'influencers', people who give talks, write articles, I feel like I'm nothing compared to them, like I don't know anything. That's why I'm switching jobs now again, to see new stuff and meet new people, see what's out there. This way I have somewhat of a challenge for at least the first year of new work, new environment, new project.

galbar 2 years ago

I've recently been faced with an opportunity that has put me somewhat in a similar situation.

I'm lucky that I have someone somewhat close to the team that I can ask for feedback on the solutions I come up with, which are not always the best, to be honest.

I very much know the feeling of "what I find plainly obvious is not to others". My solution to it has been strong emphasis on knowledge sharing and education. It doesn't matter if I go slower as long as the team in general starts going faster.

With the knowledge sharing I've also been able to share more of the load of the architecture, because my teammates also understand what's the guiding principle (or at the very least, they know that the "weird pattern" they see in the code has a purpose and they try to follow it).

They still come to me frequently with questions. I have spent many hours explaining the same thing to the same group of people, every time they have new questions.

Personally, I've noticed a reduced reliance of the team on me as a consequence of my knowledge sharing efforts. The team has also noticed it and at least one of them has commented on it positively.

sam0x17 2 years ago

One thing to watch out for -- all the problems you list can also be symptoms of you simply being the only one who understands most of the code. This could be because you are the only truly competent dev, but it could just as easily be because there is something about your code that makes it difficult for others to navigate and/or modify. Probably not the issue, but always something to watch out for.

snickerer 2 years ago

Dear 100011_100001,

in the olden days hacking was not only a job of producing code, there was a hacker culture. There were the gurus, the diciples, and the anarchists. It was about dediction, love, and fun. Programming is related to Zen.

You are a hacker because you love what you do. But you lack the spirit of Zen and the spirit of community. That's not your fault, it is the fault of the work environment you live in.

A good culture is one of peers who teach each other, not one of workers who get the Jira issues done.

Maybe these good olden days have never existed and Zen is a lie. But to attain enlightenment and contentment, you need the Zen mind. And Zen says that you have to keep the beginner's spirit. You are overconfident. You think there is no one who can teach you at your work place. That is horrible. You obviously are not able to teach your peers how to program like you do! That's worse. You should know: you are truly successful when you have managed to teach your peers how to outperform you.

If that is not possible in your work place's culture then you should go and look for a better place.

cookiengineer 2 years ago

In that situation most devs have evolved into a tech lead in their career, meaning that they have the mental responsibility for architectural decisions in software.

That also implies that the mental burden of responsibility won't allow you to stop, and you probably catch yourself trying to fix problems at night in bed that technically aren't your responsibility.

But at some point you have to reflect: is it worth it? And I mean worth in the sense of health, culture, stress and not money.

And is your team better off with the current situation or is your skill not better used in guidance and evolving team members so that they can help you more? Why not do paired coding days so that skills and knowledge can be shared? Why not hackathon days to inspire creativity for automating annoying tasks?

If I've learned any wisdom in agile teams over the years it's that a Lead also has the responsibility to lead...and not overworking themselves to death.

Giving away responsibility is very hard. I understand the reluctance to do so. But you should plan your life for a better future, and not a better present.

davidy123 2 years ago

You didn't mention your actual life and what makes you happy, aside from mentioning you are lonely and stressed.

If you're happy with the pay/location, work less. Most people really only have a few hours a day of full-on productivity. A large part of many jobs is station.

Maybe teach or do something so working less is less obvious, because that would be noticed. But get a life, something that lets you enjoy moving around and engage with people who aren't part of work. It's very, very unhealthy to just work. And don't forget, the only 'reward' for being a committed worker in this situation is more work. You will be taken for granted.

A lot of comments are about becoming an "actual" 10x developer. But that's contextual. If you're solving problems for a company or people you care about, great. Otherwise, tech comes and goes, keep the focus on quality but otherwise it's unlikely there's much meaning to "better" work unless you're creating something deeply reusable or are in research.

smsm42 2 years ago

Maybe you need a change of a team. Or of an area of application - try to find something you might be interested in, but never really did before. Different language, different area (backend/frontend/data/UX, etc.), different tasks. It will be frustrating and even maybe overwhelming at first, but if you're as good as you feel to be, you can take it, and you will enrich your knowledge and your abilities on the way. And sometimes you'd also get to know how it feels when others pick you slack instead of you doing it, which would be helpful too.

Also, I'd try to seek out professional orgs and groups where you could be among people smarter than you - there's always people smarter than you, and even more knowing more than you in certain areas. Find the areas that could interest you - and seek out to meet people that know a lot, and learn from them. Bonus if it's really hard for you - you probably can use some stretching, in the intellectual sense. If you have some failures on the way - it's ok, as long as you learned something, even if it's your own boundaries and weaknesses.

On the other hand, try to delegate more. I know it would feel like you could do it better, try to ignore that and let others do it anyway. If they do it slightly wrong, try to just wait and see if they can figure out why it's wrong and learn from it. If they do it absolutely horribly wrong, try to suggest them better ways, but do not be overly pushy. Instead, try to figure out, as a personal task for yourself, why they are doing it wrong - do they just don't know a better way? Teach it to them then. Do they disagree with you on which way is better? Ask them to argue it and see if you can learn anything from their argument - even if it's only about whether they have different priorities and preferences. Try to encourage them to step up, even if initially it means sacrificing some efficiency.

agentultra 2 years ago

This is pretty typical in most organizations. There are roughly 2-3 people on a team that carry 80% of the workload in a given period. It's not out-of-the-ordinary.

Even average developers can become the "workhorse" in an organization.

The problem seems to be a dysfunctional organization. You should feel safe to take a vacation, to turn down the heat for a while and let others take over while you recharge your energy, etc.

If you start to feel like you can't control the amount of stress you feel in this position that's a big, red flag that you're heading down the road to burn out. It's never worth it. Even if you have to take a financial hit to get out you should seriously consider cutting your losses and run. If you can talk with your org leaders and let them know what you're going through and that you want to take some serious time off.

Then take some serious time off. Disconnect from work and do not respond to emails, messages, etc. Find a good therapist for you and start seeing them regularly. Etc.

gamblor956 2 years ago

TBH, the last time someone told me they were a 10x developer, I asked his co-workers what he was like when he left the room and everyone said that the 10x was all in his head and he was pretty close to being the worst performer in the group. He just had an inflated sense of his own skills. Despite getting fired from multiple jobs (including that one) for performance reasons, he continued to exist he was a "10x" programmer and he was just getting fired because the managers and CTOs were jealous of his leet skills and didn't want to spend their all their time looking over their shoulders.

I'm not saying that you're this guy, but this weird humble-brag post doesn't come across as sincere, and it's the kind of post I frequently see in reddit.

If you really are a 10x, then share the wealth by mentoring other programmers. A true 10x isn't measured by the amount of code they output, they are measured by their multiplicative effect on the productivity of their team.

vinay_ys 2 years ago

It seems you have outgrown your current job. You have two choices – you can choose to stay in the same company but define yourself a different role/responsibility that would be personal growth for you and grow into it or you can leave your current company and try a different place.

Based on some elements in your description – POC, Architectural discussions, code reviews, code stats etc. – I think your organization may not be very bad. They seem to care about reasonably good things and they seem to have recognized your contributions and pull you into discussions and enable you to contribute and expand your influence. You can take a goal for yourself to uplevel the people around you and also help hire better talented/skilled people.

Also, if you simply spoke with your manager about your feeling of having to pull the most weight in the team, you may get more information – it may be as per your perception or you may get a new perspective. Best of luck.

gorbachev 2 years ago

> The problem is people just accept whatever I say. I used to get challenged in some of my decisions, which I always appreciated since I could create better solutions. Nowadays people just accept whatever I say as the best way.

This struck to me as familiar. Not because I'm anywhere near as uber, so to speak, as you seem to be, but because I've noticed the pattern with junior developers, especially people new to the company/team and myself.

What I've tried to very consciously do is to make sure I ask other people about their opinion. I also sometimes deliberately add stuff like "not sure if I'm correct, correct me if you think I'm not, but..."

That usually makes these type situations a bit more interactive and probably less lonely. Also great opportunities to really have conversations about technology choices. I often learn new things along the way as well.

cleandreams 2 years ago

If you are with a really good company (I know people at microsoft who had this) you can get a very senior person to meet with you regularly as a mentor. YOU need a mentor. You are giving a lot. I think it's possible you need to work for a better company or at a division that is better in your current company.

danbmil99 2 years ago

How do people get hired at your company? Are you a major part of the process?

Frankly it sounds to me like the situation where you're being taken advantage of by the management, probably because your personality is not aggressive and you don't push in their face how much better you are than most of the other developers.

I'm betting you could earn two or three times what you're making now by moving to a more competitive environment at a company with higher standards. Maybe you don't care about the money, but it could give you the flexibility to retire early and work on whatever you enjoy.

The truth is, people have an odd tendency to value something more if it costs more. By the sound of it you should be making a lot more money than your peers, but I'm betting you're only twenty or 30% above the next developers salary.

Basically, you're undervaluing yourself.

clolege 2 years ago

I agree with the sentiment here around leaning into mentoring/teaching. Watching videos of myself teaching others and iterating on it has been one of the best things to happen to my communication (and thus teamwork) skills.

Hearing you say things like:

> Nowadays people just accept whatever I say as the best way.

> I catch myself becoming more controlling because at this point about 80% of the code base is my code for the applications my team is responsible for.

> The thought of "great, one more thing I got to fix" is coming up too frequently.

makes me wonder if you might benefit from reading organizational books like Turn the Ship Around? You seem to be getting to the point where cultivating leadership throughout your organization might be the best way for you to affect change, and with the right mental models you can often do that with slight nudges or answering questions differently.

RustyRussell 2 years ago

I felt this way at the first company I worked for; fortunately I started hacking on g++ where I definitely was not in the same grade as the other devs. That started a life-long career in Open Source, where I never maxxed out again.

But I agree with everyone else here: time to move to a bigger pond.

timwaagh 2 years ago

I can't empathize. Im only good when my edit compile run cyclus works normally and that's unfortunately never the case.

But I have a tip. What I think is really important for senior developers is to be team players and not try to hover over your colleagues work. Like right now there's this guy who is more experienced with some things than me. But now he's often checking out my branches, testing them and fixing things on them, often in the evening when I'm off the clock. I would like to be able to finish some of my work myself, ideally. With him on the team its just not going to be possible for me to be of much value, because it always will look like I need help. Even though I could possibly fix these things myself. Could be that this applies to you or maybe it doesn't, but it's important regardless.

jollybean 2 years ago

Congratulations, you're a 'senior developer'.

It's a bit 'isolating' whatever industry or 'job' you do, once you mature to a certain point.

That's definitely not the same things as '10x developer' - I'd recommend never using that term again. Maybe there is 'such a thing' (doubtful), but even if there was, nobody should ever say that about themselves. Past the 10 year mark, one should start to develop an intuition for all the things one does not know, in which case in all humility, it becomes harder to refer to oneself as '10x' ergo, more likely a sign of possibly a hint of lack of self awareness.

What you are experiencing is normal, common.

If you have serious malaise you can change jobs but also respect that companies need senior people, it's one of many roles that need to be fulfilled.

redleggedfrog 2 years ago

I've been programming for almost 30 years, 15 of it on essentially the same code-base, and 5 years ago I could have written something similar to what you posted.

The part of being over-protective of the code-base particularly resonated.

In the end, it's not worth it. Yeah, you might do a lot of the work, yeah, it's good stuff, but that just means your good at your job. Help others up to your level, be patient, slow down, and make friends of your co-workers.

And then go ahead and learn something hard - that always does great for knocking me down a few pegs and remembering I'm not all that. I'm just a medium sized fish in a small company pond and there are people out there doing really significant work and you can learn from them. Hell, just switch JS frameworks, that's enough for a year's worth of feeling lost.

lew89 2 years ago

It seems similar to my situation. Probably I'm not as praised as you are and people do discuss with me, however everybody else seem slow and I feel I don't belong, because my thinking is totaly different and I can't do much about it, because verbal arguments seem not to work well (performance does, but it probably lead to problem you've described, that people stop to argue and take your words for granted). I practically never spend full time on working, I have a lot of time to learn which is awesome, but nevertheless it doesn't feel right.

I think that it's partialy right what @ctvo said "above average developer working at below average company" — that's why I'm looking for a new job more carefully. On the other hand, I think that it's not all in my case. I just happen to work as a programmer, it's just tiny part of my interests, so that most of the people seem very narrow minded (I don't judge them, it probably works for them, but not for me).

Maybe in more sophisticated company I would find better matches. On the other hand, as I don't care too much, my current situation has its advantages, because I can decouple self-development from work. This is good because I have some values I would like to implement and it seems they can't be achieved inside this system (because it's too specialized and my approach is too holistic), I need `f*k you money` so that I can act freely. For now, alienation at work is ok, as I'm quite introverted so I prefer to spend time alone in nature (that's why I work in countryside) and just from time to time I go to the city to party with my friends or play some games with my neighbour.

So along with "look for a new job", there is an "adapt" option. Just relax and think out of the box how to use this situation. You can reduce significance of your work and do stuff you please. It's ok to do this, because you are 10x dev so you need only 1/10 of your time to match your company. The only question is if you have what to do with remaining 9/10. :)

pg_bot 2 years ago

As someone who has experienced similar feelings. (I average about 250k-300k lines of code a year)[Yes I know lines of code is a terrible measure of productivity, you don't need to @ me]

Take 1-2 months off to travel. If your management team isn't run by a bunch of morons this shouldn't be a big deal. You probably want to go somewhere and you should do it while you're still young. During this time, your team will probably get a bit better. The other plants can't grow if one is taking all the sunshine.

My other piece of advice is to find a new challenge. Start a new hobby and get the feeling of sucking at something again. If you want to stick to computers, there are a boundless number of topics that you can dig into. Only start a company if you feel like you can't imagine doing anything else with your time.

dang 2 years ago

"10x" is too linkbaity for an HN title so, in keeping with the site guidelines (no link, sorry - I'm on my phone) I've replaced it with one of the OP's other self-descriptions.

(Considering how linkbaity it was, the thread is surprisingly good. I guess sometimes people do read the article?)

  • 100011_100001 2 years ago

    Thanks. I dislike the term as well, I like your edited title much more.

synergy20 2 years ago

"I have completed 71% of all story points in 2022, the other 9 are responsible for the other 29%" -- this is close to the 2080 rule: 20% of the people doing 80% of the work. And yes "If you’re the smartest person in the room, you’re in the wrong room.”

I work in a similar situation(a startup), the few very senior peers I work with basically can not code, they're probably much better compensated than me. There a few junior developers actually pick up stuff faster and can produce some code at the end of the day. Overall I could hardly learn a thing and feel lonely all the time. And yes I'm thinking about leaving but in the meanwhile changing company too frequently is not good, I will just hang on for a few more months.

The OP should just find a more challenging company to work for is my suggestion.

908B64B197 2 years ago

> I never set out to become some kind of uber developer, but in the last couple of years I have noticed a shift in behaviors around me. It started with little things. Tech Leads inviting me into meetings to express my perspective on things. Developers pinging me when I have never worked with them, because "you probably know the answer". Being asked to weigh in specific Code Reviews outside my department. Lately if I join a meeting with people I haven't talked to before they already know who I am. Even my manager has started introducing me by just saying "This is X, you've probably heard of him".

Sounds like you have ownership of most of your company's engineering. What's your personal ownership in said company?

justajot 2 years ago

It sounds like you enjoy being part of a team where there are plenty of opportunities for personal growth. And being an unchallenged lead developer constantly fixing everybody's problems doesn't provide this, and just furthers the feelings of loneliness. Is this about right? Or am I off?

What would you ultimately like to accomplish with your development? For example, is there a specific problem domain that you would love to help tackle that is maybe beyond your current capabilities?

Who would you love to work with? What might working a different team altogether look like for you?

Ultimately you have all the answers. If I were to provide any advice, it would be seeking out a career coach who can help you bring clarity on where you're at and where you want to be.

jairofloress 2 years ago

You need to expand your social circle.

You are not alone in this. As a 25y dev I can relate to this. I wasn't disciplined as you, that's a big difference. I entertained myself learning techs outside my job box.

This loneliness happens in many aspects of life. Reading is an example. I always encourage my children into heavy reading. Even I pay them for challenging books. As a result, their way of thinking is above average in almost everything.

But I constantly warn them to look for good peers, people that share their taste in reading, people who they can talk and enjoy the talking, or else they will end up feeling alone.

So my advice, expand your social circle and find people smarter than you, people you can admire and enjoy listening. It worked for me. Good luck and good coding!

ravedave5 2 years ago

You should consider stepping back and spending 25 or 50% time mentoring instead of coding. But what I've found is that it's REALLY hard to do something 20% without doing it 100%, so perhaps a few weeks (months) of NO coding, then starting to code again.

Arjuna144 2 years ago

Sounds like you are really good at coding and designing software! But sadly, as you are finding, that this does not imply being good at "life".

Reading between the lines of your post, there might be a very deep rooted assumption that being amazingly well at something in life, would automatically lead to being good at life itself.

Chemically speaking "life" is just the ability to handle the naturally generated body chemistry well and cultivating it.

Remember that time you were so incredibly in love? How Happy and fulfilled you were?

Now, you did't take substances for that right? Just by accident you found some signal-patterns though your optical nerve, ears, smell and touch that allowed you to release all kinds of fancy chemicals into your bloodstream.

YOU FELT GREAT!

But now?

You are good at code, but that does not keep your body-chemistry high enough that you feel like flying. Ofc I know you feel it a little when you find a very nice solution, or when you finally fix that one thing that bothered your whole team for a week and so on...

But it is not enough or you wouldn't have made that post.

Now what if I told you, that people have found ways and means to cultivate and "train" those glands that make you feel high and ecstatic? We all know that diet and workout (and what people call a "healtyh" lifestyle) is exactly that. Enhancing the quality of your body chemistry. But is goes much further than that. Sadly these techniques have always been in the mystical and esoteric landscape which fu*ked it all up so badly.

But still the techniques work, I can confess that myself and science is also getting there more and more.

If such shit interests you at all, I recommend that you go straight to the secret techniques of the ancient yogis from high up in the Himalaya mountains. Get the real stuff and not that washed down, new-agy nonsense! I could recommend a few resources, but I trust you will also find some.

I wish you all the very best <3

lomereiter 2 years ago

You can shift your focus to mentoring your teammates and presenting at developer meetups / conferences. Simply tell your manager that you are greatly concerned about the bus factor (cite the 71% figure), and hopefully you two will figure out how to proceed.

  • RangerScience 2 years ago

    Strongly recommend conferences. If you're feeling like you need some outside something to continue to progress your skills - which it sounds like you are - conferences are a great place to see talks that'll do that, and meet people who'll that. Even more so if you give a talk yourself!

theptip 2 years ago

Two options come to mind:

1, as others have suggested, find a bigger pond so that you are no longer the biggest fish. You’ll learn and grow from working with more experienced/better people.

2, found a company. You’ll still be the biggest fish in the pond, but you’ll get a substantial equity stake which might make that role worth your while, and total ownership may give you room to grow in new dimensions (eg, now you need to figure out infrastructure, security, IT, business ops automation, hiring, training, careeer progression, etc. - if this sounds exhausting goto 1)

In the current economic climate, and given your (my impression of) general malaise I’d suggest that 1 has more chance of injecting positive energy into your work situation.

omgJustTest 2 years ago

I hear you.

The one problem with being so useful is that all problems slide your way.

While it is hard to hear, you might be enabling the problem. If everyone believes you know the best way or are the most efficient problem solver, they will default to you. There's long maintenance tails in certain problems... so even if you are great at what you do it can quickly become overwhelming.

Making opportunities for others will improve your peer group, improve your life and reduce your stress.

Loneliness is not going to be fixed overnight, and certainly is not "one more thing I got to fix". Give people space, time and mentorship to grow. If you don't see progress after doing this, move on. Perhaps you've been too long in your role.

  • 100011_100001 2 years ago

    A lot of people have made comments similar to yours. I do help others, but I could be doing a better job.

    • omgJustTest 2 years ago

      Disclosure: I struggle with this particular issue a lot, so I might just be sharing my personal struggles and seeing them in your conflict.

      Changing some of the words that you use to describe interactions helps us change their influence. "Helping others" is not exactly what I intended to say. I meant to say "help yourself". Become self-reliant (as you know you are) but that also means removing some of the pride you take from doing your job well. Allow others to be self-reliant, and imagine if you did not feel self-sufficient. That you needed some 'expert' help to do your job.

      This empathetic perspective comes from selfishness... as it should. Spend your time in a way that replaces the short-term payoff of pride in your work to overall life satisfaction.

jarek83 2 years ago

I start with that I feel similar type loneliness in my project. I always got a solution that other people were positively surprised of, I'm the problem solver in my small project team, and I also am able to write bulletproof-ish code. And I have exact same feeling, that I don't have anyone around that could, or want to challenge me. I've recently been chatting with my friend, he works for another company, he has the same issue of being not able to discuss solutions with anyone.

I always wished there was a way or a place that people with this 'problem' can meet, chat and ideally brainstorm ideas in their projects or on some other project that they would contribute in.

sam1r 2 years ago

Why not take your skills and professionally contract with yourself. You mention..

>> This feeling of loneliness got quantified when the commit number came up.

What if instead of commits, it was the # of external contracts you are able to maintain per week.

If that doesn't make you feel better, then maybe you need to invest into building a portfolio that people can contact you externally, while you are still managing/maintaining more internally.

Additionally, when you work for yourself, you have the ability to set the terms upfront, to minimize meetings/back+forth communication, and you send one-way updates with progress updates..

My two cents. I've self-contracted for myself the past couple of years and I feel much better about myself.

intellectronica 2 years ago

"I worry that by not being challenged I will become complacent"

Congratulations, you have the most useful attitude towards personal growth and development. This attitude has allowed you to continuously grow and improve to an extent that most people around you couldn't even imagine. This attitude also makes you dissatisfied, unhappy and insecure.

Ultimately, it's a question of values. What do you want more, happiness, or continuing to grow? You will likely never have both, at least not in equal measure.

If you choose to continue challenging yourself, consider finding a new group of people to work with. One where you're going to be the dumbest person in the room. Such a group almost certainly exists.

m463 2 years ago

> I worry that by not being challenged I will become complacent.

I'm reminded of the movie Bohemian Rhapsody about the band Queen.

Freddie Mercury had gone solo from the rest of the group, then realized they were his proper peers. So he was apologizing and asking for forgiveness...

  FREDDIE: What's it gonna take for you all to forgive me?

  Is that what you want, Freddie?
  I forgive you.
  Is that it?
  Can we go now?

  FREDDIE: No.
  I went to Munich.
  I hired a bunch of guys.
  I told them exactly
  what I wanted them to do...
  and the problem was...
  they did it.
  No pushback from Roger.
  None of your rewrites.
  None of his funny looks.
  I need you.
  And you need me.
jdeaton 2 years ago

Perhaps the root of your loneliness comes not from the flaws of others but from within. Have you considered that it's source is actually your feeling of superiority to everyone around you, not their lack of (what you perceive as) ability?

isoprophlex 2 years ago

Could it be that you're at the point in your career where you've hit the limits of your own scalability?

No matter how well you perform, you're always you. The single one of you. Carrying the burden of excellence, knowing people depend on you to know the answer can wear you out, i empathize with that.

Maybe try finding a role where you aren't contributing individually, but where you are helping others become their own little centres of excellence. Find a new way to scale your abilities, beyond coding yourself. This might mean mentoring, leading a team, if you're up for it. This could be something novel and fresh to do, without entirely abandoning software.

mattnewton 2 years ago

Not to be flippant, but I have often felt if I look around and feel that I am the most capable or smartest person in the room, I am probably in the wrong room. Have you thought about applying to work at a company known for engineering excellence? With remote work becoming more mainstream, why not try it at a big Fang-type shop? I know I felt I was a 100x type engineer until I joined Google for example - a ton of people to learn from in a company like that :D

Another option is to embrace the role and lean into mentorship at your current company. But it sounds like that is not something you are interested in at this point, so I would start applying to companies.

fifticon 2 years ago

I don't think you 'brag', and I can also understand how the situation is making you feel. I have known and met guys like you where I have worked, which had similar experiences. It's a bit like being the tallest in your class. It feels better than being the shortest, but it can feel very lonely just the same. The normal advice is to search and find a group of peers to work with. The trouble is, if your skills are mostly technical, and not matched in social/networking skills. Google the phrase 'never be the smartest person in the room' to see some perspective on your situation, you are not the first :-)

john-titor 2 years ago

I can relate, not necessarily as a software developer, but as someone who recently completed a PhD in natural sciences.

When working on something niche for a couple of years, it is natural that you become a specialist of some sort in your daily environment. This why in academia there are conferences and workshops where such specialists can gather and exchange ideas. It seems to me like you are passing up on opportunities to socialize outside of your day-to-day. Why not look up an event that might challenge you and ask your boss if you can participate? There is always room for improvement and companies should support that.

414techie 2 years ago

I think you’re learning that there is more to this career than just slinging commits. I can relate to the experience you are having.

At a certain point, the code just wasn’t enough for me. I still love code and systems, but it isn’t the only way I make impact anymore.

When I reached the point that I wanted something more rewarding, I started learning other skills. I have found business, sales engineering, delivery enablement, product development, and people management are really interesting.

I echo others who say to switch jobs. You’ve got to find a role that will let you branch out.

I’ve got a lot of those opportunities at a small tech company if anyone wants to chat btw…

SNosTrAnDbLe 2 years ago

I used to think I was a 10x developer but then in grad school I spent an hour with a university post doc optimizing an embedded OS to decrease its power consumption. It took 1 month for me to understand what he did in that hour.

And then I took a graphics class with an undergrad in that same school and he created a ray tracing program in 30 minutes or so and it also ran the first time he did a run on visual studio. He then went out to do a dance practice with his friends. I sat there in the lab for the rest of the night trying to understand Ray tracing and what happened.

  • RhodesianHunter 2 years ago

    Don't confuse knowledge for intelligence. Watching someone in a different niche may seem like magic, but they've been at it for a while.

scarface74 2 years ago

80% of drivers think they are above average. Unless you are a top performer at a top company - and it doesn’t sound like you are - how are you giving yourself such a high assessment?

I thought I was “above average” in my area of expertise until I landed a job at BigTech coming from a 60 person company where my “specialty” was table stakes just to get a mid level position.

I use to always say with a point of pride that it never took me more than a month to get a job. Does that make me a 10x developer or is it because I only applied for no name companies until my current one?

frontman1988 2 years ago

Maybe try shifting to coding custom firmware for High Frequency Trading firms. The money is great and they need talent like you. If you can be a 10x developer in this field you will be worth millions.

  • kmarc 2 years ago

    This is.... oddly specific, but I verify it's true :-)

Tycho 2 years ago

Why not just quit and do something else that interests you. A different industry, or your own project or startup. Sounds like you’ll easily be able to get re-employed if things don’t work out. Or even do consulting for your current employer. Most 1x developers probably don’t feel confident enough in re-employment prospects to throw away their current gig where they’ve built up some credibility.

Also, I’m curious what you did before, if you didn’t start until 33? I figured most 10x devs were people who mastered computer systems as children.

ar_turnbull 2 years ago

Hey OP,

I sometimes feel the same way as a director-level UX'er. That said I take great pride in mentoring juniors so if you do the same maybe it's time to think about giving back (you'll probably also find that you also get rewarded personally and professionally by doing so).

Also, at my company we recently hired another senior ux'er whom I consider a peer. She works alongside me on many of the same projects and the feeling of "the two of us against the world" is SO MUCH better than "individual against the world".

brianhorakh 2 years ago

I can relate. I was 10x, that was a decade ago. Now approaching ~100x.

I've studied. I learned every language, I know too many app patterns, framework, protocols, blablabla.

I study the tricks of every role. I sense bugs before I even realize, its subconsciously unsettling. I feel like neo in the matrix.

I don't have answers for you other than I can relate.

Try to work on harder things and you will only keep getting better.

When you are the person who gets all the hard problems, you are forced to keep getting better, faster, and you take on and consume all the experience for the entire team.

8n4vidtmkvmk 2 years ago

I used to feel exactly that. Then I joined a different company where everyone is super smart and now I feel perfectly average. If you're unhappy, maybe try another company?

I can't say I'm a lot happier. People will challenge me occasionally now which is nice but I have to spell out my concerns to get any kind of response. Everyone is busy with their own shit and the product is so big and complicated that no one can have the full picture to properly critique your work. The code itself is never the problem.

sakopov 2 years ago

I was one of the top developers at my previous job and recently took an architecture role at a new company where I spend most of my days improving processes and mentoring other engineers. I guess you could say I'm pretty lonely here, but it really doesn't bothered me at all. Sharing knowledge and mentoring has really given me new a new insight into my career and I really love what I do here! So, become a mentor either at your current place or elsewhere. It might surprise you.

wayne-li2 2 years ago

I felt this way somewhat recently. Switching companies to a place that had top tier engineering talent put me in my place pretty quickly. Now I sweat like the rest of them — and trust me this is a good thing. You want your peers to challenge you, trust but verify, question assumptions. You want to cover each other’s backs. I’ve never been happier than I am now, because even though I’m working harder, I’m able to trust and lean on the people around me, and that’s so valuable.

bluedevilzn 2 years ago

This is a 42 year old with an emotional maturity of a 22 year old.

0xabe 2 years ago

It sounds like you’re good at what you do, and that it comes relatively easily. Be thankful for that. Many people don’t have that. It sounds like your performance has made you a bit of a superstar. Be thankful for that. Many people work in obscurity. Don’t let it make you feel lonely. Quite the opposite, it sounds like you’re popular. Use your “status” to create the network you want. Stay humble and remind yourself to be happy. You’re in a good place.

scotty79 2 years ago

I'm not a great developer but I can pretty much do everything that is needed and I noticed the pattern in my career that I tend to drift towards messiest, hardest, least flashy jobs because I'm the one who can find his way around there. And I tend to be left alone in those jobs as others move to greener pastures. I'm left on some stale but key project as lonely one man army. The way to get out is to switch an employer.

martiya 2 years ago

Change job if you can looking for smarter colleagues and/or just reflect what are your priorities: you do not need to carry all the responsibility in your shoulders. You have room to give more time to your health, for example, and still be a good contribution to the team. You do not need to do it all. For what you say this change will not come natural to you and you will need some discipline. Just start and see how it feels.

kache_ 2 years ago

Why do kevin durant & steph curry play on the same team?

Switch teams dawg, join a place where there are other freaks like you. I used to feel the same, until I switched.

taf2 2 years ago

Few thoughts ideas … as tech founder maybe this advice helps.

1. Pick an outside of work hobby… for me it was to teach myself electronics. Arduino, soldering, 3d printing , 3d modeling etc…

2. Remember using a computer is going to pull you down - I’m sure there are studies that show increased depression from using and being connected 24-7, I’m not saying disconnect - I’m saying be self aware and pick yourself back up. Live for the problem solving.

Hope this helps

stevenalowe 2 years ago

What do you want? Do you want to be challenged? Do you want to be a teacher? Do you want to help your peers elevate? Do you want peers that will help elevate you?

If you want to be a teacher and your peers want to learn perhaps you would enjoy staying where you are. If not, FAANGs, startups, and consultancies (like Thoughtworks) will challenge you.

Or, if you want to feel like a boss and a noob most of the time, start a startup. :)

The point: it’s okay to move on.

danrocks 2 years ago

I was trying to figure out my multiplier the other day and came to 1.05x. I'm an average engineer who works longer hours - hence the 0.05 premium.

roguas 2 years ago

> worry that by not being challenged I will become complacent.

Find something more challenging? Plenty of people find themselves at this place and start doing something more "ambitous" whatever that might be. Start a framework, a startup, a research in the field or maybe just look for company with bigger problems. I bet you won't feel complacent working in some bleeding edge team at FAANG.

Misdicorl 2 years ago

A lot of comments saying you should find new opportunities. Another path in case thats not what you want:

Consider taking a step back. It seems like your worry about becoming complacent is what might prevent you from doing that. If you stay in your current role, try to anyways. Channel your drive into a hobby or personal project or ... Take a month off in order to reset baseline expectations with your org.

michael1999 2 years ago

Learning to teach what you know will help more than working more hours. Don’t try to force teaching on the uninterested. Invest in the curious. Surely some of your team would like to be more like you. Have you asked?

And find a physical hobby you enjoy. Weights, zoomba, climbing, whatever. Even better if it’s something you can share with your wife or one of the kids.

Movement and teaching will do wonders for your state.

marcodiego 2 years ago

> I catch myself becoming more controlling because at this point about 80% of the code base is my code for the applications my team is responsible for. I don't think that's a good thing, at the same time what I find plainly obvious is not to others.

I heard once from people who prepare for math competitions: "If your are the smartest person on a team, you are on the wrong team."

jonnyDev1 2 years ago

Hi, thanks for your post, you mentioned in the comments that you have good systems that allows you to write code well, do you mind sharing what are those systems? Or where could we learn them? I definitely don't see your post as bragging but more inspirational and I would like to learn how to type code like that and be that kind of developer that ships good quality products.

Kind regards.

skauffman76 2 years ago

If I can input anything, I would encourage to single someone out that shows real promise and invest in their skill level. Having a humble outlook and asking if they would be interested, would be key in starting. Review and ask their point of view often. Let it be their discovery, your just leading them. It will not be so lonely and You will find yourself again.

urthor 2 years ago

I find number of commits is a lot more correlated with development ability than people thing.

People who've made lots of git commits... have made lots of stuff.

Experience and knowledge is commensurate with ability.

Even though we say "lines of code don't matter, it's about the importance of lines of code."

Anecdotally, lines of code is a very good proxy for how much time you spend puzzling through the machine.

weq 2 years ago

Ive moved between segments unlike alot of devs. the experience you have for me highlights just how degraded the dev community has become.

ie. in defence, the standard is always ok to great devs. In Enterprise, its a mix of crap, crappier and ok and great.

What your doing is holding up the team of crappy to ok devs. the fact that you cant have technical converations anymore just highlights this.

lr4444lr 2 years ago

I catch myself becoming more controlling because at this point about 80% of the code base is my code for the applications my team is responsible for. I don't think that's a good thing, at the same time what I find plainly obvious is not to others.

Why don't you get into management? You may be one of the rare devs who successfully makes the jump.

troyastorino 2 years ago

Echoing other comments, the issue might be as simple as not being at the right company.

Interviewing elsewhere seems like the right thing to do. I'm confident there are environments out there where other engineers would challenge you.

It's possible that could be the case at my company, PicnicHealth. If you'd be interested in chatting, reach out (email in profile)

iamstef 2 years ago

Time to find a new gig.

Starting fresh somewhere else with no reputation, no karma, and the potential for being the small fish again will pay dividends.

At the very least, different social and organizational challenges may exist there and allow you to grow in a different light.

(also, be sure your enjoying non work-related hobbies and adventures as much as you can. Life isn't just work)

  • xpe 2 years ago

    > Starting fresh somewhere else with no reputation, no karma, and the potential for being the small fish again will pay dividends.

    This assumes new place will recognize the attributes that you bring, no?

    This reminds me somewhat of the allure of rags-to-riches stories. Of a world (or a company, at least) where talent is consistently recognized and fairly rewarded.

    One can hope that such places exist, to varying degrees, but it seems unwise to assume your next job is one of them, unless you have some solid evidence.

fistfucker3000 2 years ago

Ill tell you a cool trick: just halve your hours. This is what i do. You’ll still challenge yourself but with more constraints.

Learn to let go of things and let them get a little fucked up. It makes the people around you feel better too.

Find ways to expand yourself but not technically. See how much joy you can inject into your workplace rather than story points.

oh_sigh 2 years ago

How much do you get paid? If it is less than $300k/yr (assuming you're in America), then you're just in a company that doesn't apparently value tech.

Go get a job at a FANG, and I guarantee you you will be pushed to your limits, and a number of staff/senior engineers there will make you feel like a little baby developer.

tmountain 2 years ago

Regarding the distribution of commits and story points, I’d bet it follows the zipf principle if you look at the distribution across the team. That may not change anyone’s opinion regarding what is acceptable, but it might bring a little comfort knowing your “performance” fits with the universe’s plan in some unavoidable way.

pictur 2 years ago

I think the problem is the gap in your social life. most people are good at their job the way you describe it. and they think about the business as much as they should. You think you're an artist, but you're not sorry. I understand you well since we have similar thoughts and I think the main problem is loneliness.

throwyawayyyy 2 years ago

This does feel familiar -- except that in my case, after a couple of years in that position, all-of-a-sudden I realised I wasn't that good a developer any more. That I had stopped learning a while before. The solution for me, and it worked, was to leave, and work for a company with a more serious engineering culture.

bobkazamakis 2 years ago

No amount of xing is going to make you less lonely.

Happy to knock you down a peg though: You've written code, but what does it do? It's easy to be a big fish in a small pond. If you're that a code you shouldn't even have to be on a team anymore. Why aren't you capturing the value of your work efficiently?

n_time 2 years ago

Have you switched jobs on a while? It sounds a little like you’re also describing being deeply embedded in your organization and having social capital there.

I’d suggest switching jobs. You’ll lose the social capital and have new tech to learn. The stress and work of reaccumulating those should distract you for a hot minute

11235813213455 2 years ago

I'm 37 and probably have a solid xp, 'probably' because I'll never call myself a 10x or senior, just by some sort of personal modesty. And maybe that helps me to stay motivated, to stay ground to earth, just my 2cents, no criticism, just some relief on the situation, best continuation!

StephenTL22 2 years ago

It sounds like you are ready to move into a higher level of 'work'. Your skill means ability to influence and create impact to people and projects is far greater than the code you write. Maybe it's time to redefine your definition of who you are and the work you do?

anton_ai 2 years ago

Change company, felt this way three times already and I started to learn again after changing job for three times. Now I am in like a sort of bridge between code and business so it's more challenging and I actually enjoy to step down, code and solve things that other are not able to ;)

pphysch 2 years ago

I've heard CEOs say "it's the loneliest job in the world". Their solution? Peer groups; CEOs of different companies meeting informally on a regular basis.

If you're not angling for a CTO position, though, switching jobs is the best way to find a better IC "peer group".

flappyeagle 2 years ago

Pick a couple of promising juniors to mentor. Commit less code. Work through them. Rotate occasionally when one of them reaches escape velocity or proves to be a letdown.

Let your manager know about this plan and get their buy-in. It’s healthier for the org to have fewer single points of failure

whiddershins 2 years ago

Some heuristics:

20% of a team usually does 80% of the work.

The square root of team members or employees generally produce around 50% of the work.

You are 10% if your team producing 80% of the work?

Seems like you are in an outlier situation, maybe you do need to seek out peers that challenge you more, even if that is moving teams or moving jobs.

pabs3 2 years ago

Try dipping your feet into open source, there are a lot of incredibly talented people out there, working on very complicated things, you might camaraderie with some of them. Open source is also a very social thing, especially when attending various conferences.

abetusk 2 years ago

I think other responses to this thread are insightful, offer valuable ways forward and get at the heart of the matter but I wanted to add one idea that I don't think gets enough traction which is that being a "10x" developer is highly context dependent and is not a fundamental attribute of a person.

Deep familiarity within a code base provides the knowledge to recognize, diagnose and fix problems at a rate that's orders of magnitude faster than someone who isn't. Familiarity with tools, corporate structure, programming idioms, toolchains or other technical factors also provide potential orders of magnitude speedup.

Take a "10x" developer in one context, put them in another, and they can easily become a "1/10x" developer. One company I worked for hired an intern that had created a well used FOSS package with 10k+ GitHub stars. Though a bit of a stretch to my argument, there are other anecdotes about corporations mishandling productive programmers [0]. My point is not to lash companies too harshly but to point out that the incentives are misaligned for the skillset these programmers have versus what skillset companies need and/or are willing to pay for.

My bet is that there's probably a small army of programmers that basically do mundane "1x" programming but create FOSS packages that generate millions in worth (that is, they are "10x" outside of the confines a corporate environment).

As an aside, I'll mention a talk about "The Ideal Language to Write Open Source Software" [1]. On the face of it, it sounds absurd but the argument is essentially that corporate environments select for programming languages that don't need deep proficiency whereas open source software projects select for programmers with deep comprehension of their tools. In other words, corporate environments select for programmer fungability whereas open source software projects, since they often only have a single developer, select for languages that offer high productivity gains from expertise.

[0] https://twitter.com/mxcl/status/608682016205344768?lang=en

[1] https://web.archive.org/web/20210306150046/https://ftp.osuos...

angarg12 2 years ago

It sounds like you need a bigger pond. I'd recommend either a high performing big tech or a fast growing startup. Each will challenge you in a different way. On the other hand, it might be risky changing jobs now so take it with a pinch of salt.

  • donbrae 2 years ago

    Risky in terms of them being 42, or due to the economy maybe not looking too great right now?

alfiedotwtf 2 years ago

That's why I always aim to be the dumbest one in the room, as I found it's the only way to grow. I would say leave and try to find a team where not only are you are blown away by their knowledge and talents, but embarrassed in comparison.

husamia 2 years ago

I feel that I have no peers as well. I had a manager that took advantage of it until I had enough and started to say no. It was one of the best things I learned to do. Say no when you don't want to do it. I took a month vacation, it helps.

emuneee 2 years ago

I feel the same way. I wouldn't classify myself as a 10x developer, but I'm the most experienced and most senior developer at a smaller company and I have no peers, technically. It's good in some aspects because I get to work on secondary skills like mentoring/coaching and such, but it's a step back, technical experience-wise. I consume a lot of technical content like blogs, books, conference records, meetups, and podcasts so I can continue to get the learning I'd normally get from a peer. Side projects also help to a certain extent.

It is lonely because I have no one on my team to go to for different views on most technical or software decisions I make in my everyday work. I like being challenged because that's where a lot of my learning happens.

I'm currently contemplating moving to a larger company (or a more mature software org) where I can have some peers to lean on.

prh8 2 years ago

Is it bad I just want to say come join me? I am approximately at 3x ticket count of anyone else in my company for this calendar year while having taken about 15 days PTO so far. We could race, it would be fun. And it's super chill here.

upwardbound 2 years ago

You could try working on a cross-functional project where maybe you're the only coder on the project, working alongside e.g. one 10x biologist, one 10x mechanical engineer, and one 10x optical engineer on something cross-disciplinary.

seydor 2 years ago

It has to do more with being over 40. People respect age when there is a solid track record. I don't understand the anxiety about becoming complacent. Your age is the most frequent age at which people spin out their own startups

tagami 2 years ago

You need to get back to your edge of proximal development.

I would venture you’ve done well and have saved up a bit. Take a dive off the stage into something new that gets you excited, and you are challenged. Find smarter people to collaborate with.

dools 2 years ago

Maybe you should quit and freelance for a while, and offer to help your company fix their problems as a contractor every now and again for 3x your current hourly rate.

Whenever I feel dissatisfied more money for less time usually fixes it.

st-keller 2 years ago

I can empathize. And Bbecause you asked: Don’t worry. Stay Self-critical. Excel at being an informavore - learn, learn, learn, and be patient. Not long and coding will start to bore you. Then you can leave it behind.

Dummestdummy 2 years ago

The problem I'm having is it's lonely and stressful. Do you drink? Take a Vitamin B6 (thiamine) supplement. and don't listen to the hessian bots telling you to "fast"

Mikeb85 2 years ago

Get a better job, make some money, find hobbies and other things in life that you find fun. Work is just work, better to be good at something and get paid well than to be shit at something.

ghughes 2 years ago

> Nowadays people just accept whatever I say as the best way.

If you don't have management aspirations, this is a very clear signal that you should leave. Growth is almost impossible in this position.

symby 2 years ago

Tldr; Start coding less. Start teaching more.

It is super fantastic that you have been able to learn, grow, and achieve so much. You do sound like a super star. It also sounds like you have reached a point where transition is required.

I respectfully disagree with those who say "get a new job". This may be a good idea, but it is certainly not a solution to your issues which are very likely to come with you wherever you go.

I suggest that you stop contributing so much under your own name, and start helping others contribute under their names. "Not much grows under a great oak". You may be casting a shadow that makes it hard for your colleagues to grow?

10x developers are awesome, but very hard to scale. Far more powerful are the "super colleagues" who make everyone around them 5x better. Add a 10x developer to a team of 10 and you 2x the team's output. Add a super colleague to the same team and output rises by 5x.

  • 100011_100001 2 years ago

    This mirrors others replies. I think you have all collectively convinced me that I need to focus more on helping others.

    I do like your phrasing a lot though. I wish I could mirror your communication skills. Your flow from complement to expressing your opinion is stellar. You used the word "I" twice in your reply, I've used it six times in this reply alone.

    • Sirikon 2 years ago

      I feel so identified with your feelings and came up with the same plan: Focus on helping others grow. Next year I'm moving on my company to a new team which is focused on improving tools, processes and the developer experience overall. Time will tell if the plan turns into a solution.

      Hope the best for you and your mental health in all of this :)

    • floorescent 2 years ago

      Thank you. A last thought... yours is a most excellent problem to have!

mise_en_place 2 years ago

You might have fun becoming a developer evangelist, from what I can tell it is more social and you can help teach customers with development teams. Not sure if such roles exist anymore.

biosed 2 years ago

I think others have pointed this out but this is a small company problem. I was a rockstar in a previous company and then went to a FAANG and lets just say, I am not a rockstar there.

  • leaflets2 2 years ago

    Small company? Can also be an enterprise company problem

    • biosed 2 years ago

      I'm prob using the term wrong, it can be anywhere but in a small group or department it is exacerbated. With a large enough group it normally goes away.

gorgoiler 2 years ago

You seem good at writing. Knowing roughly what to do is half the battle as a developer. You could help set the direction for others — they’d probably end up getting more stuff done.

exdsq 2 years ago

Is this satire?

The comments section has brought out the absolute Reddit of HN hahaha

  • nathan_phoenix 2 years ago

    Was wondering the same. Best of all are these "Totally relatable, I feel the same" comments. So many x10 devs that soon one gotta be a x100 dev to be above average lol

misfit_brown 2 years ago

Ey, it's time to move on, this "loneliness" it's a kind of comfort zone. What if you search another position in another company?, this would be a challenge.

JamesBarney 2 years ago

Curious how someone who can solve problems so well can't solve the problem "My coworkers don't challenge me." The solution is to find better co-workers.

dvt 2 years ago

Imo you can't be a 10x+ developer without extracurricular activities. That is: writing books, academic papers, OSS contributions, GitHub projects with 100+ stars, blogging, conference talks, being in the top ~5% of Stack Overflow, etc. Merely "being good at your job" is just the baseline (and often not even an important one; rockstar engineers get fired often; Max Howell was famously not hired by Google; etc.). Not trying to be a jerk, I just think you're seriously overvaluing your ability.

Sounds like you hate your job though, so I'd probably quit/take a break and re-evaluate what you want out of life.

  • 100011_100001 2 years ago

    Actually, I really enjoy what I do and my team. I just dislike the weird sense of responsibility.

    Your perspective on extracurricular activities is interesting. I'm at the top 17% of Stack Overflow, does that count :)

  • pg_bot 2 years ago

    This is a pretty weird standard that I don't think any other professional would be held to. You can be one of the best programmers in the world and be completely anonymous.

    • dvt 2 years ago

      I disagree. Like all disciplines, programming/software engineering at its apex is fundamentally a collaborative one. There are no "hermit" mathematicians or physicists. Ideas necessarily must be bounced around and refined.

      • pg_bot 2 years ago

        Ramanujan, Perelman, Grothendieck, Gödel, Nakamoto, Heaviside...

        • dvt 2 years ago

          Don't confuse "formal training" with working in a vacuum (re: Ramanujan, Heaviside, etc.), all others are basically world-famous academics that went through typical doctoral programs and were in constant communication with their fellow academics; I mean, Godel's correspondence with von Neumann is extremely famous, and the same goes for Ramanujan's correspondence with Hardy.

          The age of the hermit polymath has been over for half a millennium.

  • wvenable 2 years ago

    Anyone with that many extracurricular activities almost definition can't be a 10x developer. Producing books, papers, open source contributions, conference talks, contributing massively to Stack Overflow is doing a lot of things that aren't software development. As they say, those that can't do teach -- and you're describing the latter.

    • dvt 2 years ago

      Hard disagree, as we have plenty of counter-examples here: from John Skeet, to John Carmack, to Max Howell, to Vitalik Buterin.

      • wvenable 2 years ago

        John Carmack? He's got one answer on stack overflow, limited open source contributions, a few conference talks, no books, no papers. He's known for producing actual results and not for any of the things you ascribe as 10x required.

        • dvt 2 years ago

          > limited open source contributions

          Sure, if literally porting the entire X Windows System[1] to OSX is "limited." Or basically paving the way for Linux gaming/3D development because of his work on OpenGL. Let alone his entrepreneurial/seed efforts w.r.t. Oculus, etc. Also, he spoke at Facebook's 2021 Keynote. C'mon, man.

          [1] https://github.com/timon37/xwayland/blob/master/hw/xquartz/m...

          • wvenable 2 years ago

            You pick on the one thing that dilutes your point. Carmack is known and famous for developing software -- not for dicking around on Stack Overflow, etc. He was famous long before he ever gave a talk -- and initially he was terrible at talks -- but he was always a 10x developer.

            I've worked with some amazing developers who've created unbelievable products that have never written a book, a paper, given a talk, or done a conference. They are probably the silent majority of 10x developers.

tuckerpo 2 years ago

If you're as good as you say, you can easily swing to a team at a different company full of engineers better than you. It'd be a nice humbling experience.

anatari 2 years ago

You should join a startup where generally everyone needs to carry their weight for the company to succeed which creates camaraderie opposite of loneliness.

mathgladiator 2 years ago

Switch jobs. I felt similar until I went to Amazon and met some principal engineers. You need to be humbled, and then your real growth can begin.

johnwheeler 2 years ago

You’re run of the mill prima donna and one exists in every org. How do I know? Because 10x developers are on the other side of the Dunning Krueger spectrum. They struggle with insecurities and second guess themselves all the time. They wonder if they’re making bad decisions and actually listen to their peers. They hide their competence and even come off as dumb because they don’t want to alienate coworkers. They’ve started companies. They don’t need cards or stories. They can just build shit and it’s right.

  • RhodesianHunter 2 years ago

    Don't worry, the confidence does come eventually. Attacking others further along the curve isn't a good look though.

    • johnwheeler 2 years ago

      I don’t know what this means

Dummestdummy 2 years ago

Start your own thing... ask for help. I'll help. KSP2 is going to bomb hard and there needs to be "the next thing".

giantg2 2 years ago

I'll never have this problem. But it sounds like you need to move to a company with a better reputation for engineering rigor.

bioxyde 2 years ago

Every time i get the same feeling in some enviroenment, i switch, advice you to do so, advice you to go for freelancing too

EdwardDiego 2 years ago

Something I've found very useful in my dev career - if you're the smartest person in the room, find another room.

togaen 2 years ago

Quit your job. Go somewhere else. There are always challenges to take on and learn from if you just go look for them.

icsa 2 years ago

Become the other definition of a 10X developer - the developer who makes the other developers around them 10X better.

faangiq 2 years ago

Yes this is the life of a 10-100x dev. Sounds like your team and company suck. Find a new one with smarter people.

stiggasaurusrex 2 years ago

Take a sabbatical, give your team the opportunity to work without you. You might be surprised to see them step up.

pojzon 2 years ago

Im at my nth company and I feel lonely because there was almost noone that could follow my speed of thinking.

Ive met ppl that could, but they are now either Lead Developers or moved abroad.

I dont want either. I want a good team where we build cool stuff and have fun doing that.

Finding few ppl that think likewise and actually have skill and capacity to do that seems extremely hard.

Now Im stuck in boring as hell disfunctional corpo with fat paycheck just so I can focus on my own things..

sokoloff 2 years ago

Change jobs to a company where you can continue to grow.

“If you are the smartest person in the room, you are in the wrong room.”

peyloride 2 years ago

You know there is a saying about this;

`If you are the most intelligent guy in the room; then you are in the wrong room.`

You need to change that.

smnplk 2 years ago

Sounds like you want to switch jobs. And maybe even go into a different field. Why not, you are still young ;)

tmaly 2 years ago

Have you considered teaching people in your org how to become like you, how to take over your code?

cellularmitosis 2 years ago

If you want to stay in your current gig, focusing on mentorship is the next logic step for you.

beauzero 2 years ago

Try to find another job where people work at the same level you do so that you are challenged.

obiefernandez 2 years ago

"Always be the worst player in your band."

Sounds like it's time for you to look for a new job.

spacemanmatt 2 years ago

Sounds like I got recruited for a job change just in the nick of time. This was almost me.

mjan22640 2 years ago

Get a job in a startup or in a big tech in a team where ppl care about the things they do.

aaronbrethorst 2 years ago

Demand a 25% raise, hire a great therapist, and take an extra vacation to somewhere sunny.

  • 100011_100001 2 years ago

    I got a 30% raise in 2021 and 15% in 2022, so I can't complain about being compensated.

arnaudsm 2 years ago

I've been there too. I recommend you mentor someone, it's humanly rewarding.

viach 2 years ago

You are taking it too seriously. You are allowed to make mistakes like everyone else.

lifeplusplus 2 years ago

If you want to feel like a noob again join a different company with different stack.

JyB 2 years ago

Have you spent 10 years in the same company?! Your post make it sound like it.

ftomassetti 2 years ago

If you are the smartest person in the room and you do not like it, change room

freedom2099 2 years ago

Probably the thread should be renamed “The loneliness of being an asshole!”

hiimshort 2 years ago

Have you been working at the same business for all (or most) of this time?

ioseph 2 years ago

If you're the smartest in the room, you're in the wrong room :)

wly_cdgr 2 years ago

Leave and go work at a company where you feel stupid and incompetent

chinathrow 2 years ago

> What can I do to change things?

Tell your higher ups to hire above your level.

stutsmansoft 2 years ago

I understand your frustration.

It becomes hard to find a job you can live with.

gammabetadelta 2 years ago

start going to the gym during work hours

you mentioned its an area you haven't focused on

i don't know your fitness level, but anything that makes you huff and puff a little sure feels nice

  • 100011_100001 2 years ago

    That's part of my plan since posting this thread.

tcbasche 2 years ago

Been there. It's time to find a more challenging role!

anoncow 2 years ago

Find a new job. It will help you and your company.

gorbachev 2 years ago

Have you talked to your manager about all of this?

nosefrog 2 years ago

How did you become a more productive developer?

  • 100011_100001 2 years ago

    I can go really deep talking about this, so I will just write my personal system pointers that I keep by my desk.

    Iterate fast > perfect

    Write it down to relieve cognitive load.

    Uni-task (focus on one thing at a time)

    Prioritize and execute.

    Solve problems by:

    a. Invert - improve by subtraction

    b. Decision trees - compare outcomes, reduce load

    There are two types of decisions. Hard choice (A vs B), or multiple factors (A vs B vs C, but you can do A+B etc).

    Hard choice model. Is it a hard or easy choice? Does it have low or high impact. Hard to compare, low impact = apple vs oranges, focus on optimization.

    Hard to compare, high impact = get impact and mitigate negatives.

    Easy comparison, low impact = Go with your gut

    Easy comparison, high impact = Be confident

    For multi factor decisions use a decision matrix.

    Understand systems by looking at the connection circle or iceberg model.

    Connection circle is when you take the key elements and put them on a circle as points. If there is a cause and effect relationship you draw an arrow from one element to another. If arrows end up connecting three or more elements together you have located a closed feedback loop.

    Iceberg model, top of the iceberg (what's visible) is the event that just happened, underneath that there are patterns/trends, under that structures and connections. The deepest part of the iceberg are the mental models and assumptions made by people. If it's a system I don't understand I will confirm my path down the iceberg by looking at the code, testing the code and talking to SMEs

    In terms of actual code reminders I try to make it work, make it right, make it fast.

    I also try to do always, then inhibit, then ignore cases that don't apply.

    Minimize if statements to have consistent execution.

    If a function is called from one place I will inline it. From multiple places I will try to see if I can have it happen in one place so I can inline it (plus it's an optimization thing). For complex calculations if I can't have it happen once I will try to cache it, but cache invalidation can get tricky, so I always opt for do it once.

    Finally I try to write pure functions, look at parameters and return one or more computed value.

    • Scarbutt 2 years ago

      n terms of actual code reminders I try to make it work, make it right, make it fast.

      I also try to do always, then inhibit, then ignore cases that don't apply.

      Minimize if statements to have consistent execution.

      If a function is called from one place I will inline it. From multiple places I will try to see if I can have it happen in one place so I can inline it (plus it's an optimization thing). For complex calculations if I can't have it happen once I will try to cache it, but cache invalidation can get tricky, so I always opt for do it once.

      Finally I try to write pure functions, look at parameters and return one or more computed value.

      What programming languages are we talking about here?

      • 100011_100001 2 years ago

        I primarily work with Java and Python.

        • EdwardDiego 2 years ago

          I mentioned in a top comment that is probably lost in the comments that I vouch for "if you're the smartest person in the room, find another room".

          If you've got an suitably anonymous email address I can contact you on, I might be able to offer that other room. (Or you might think it's shite, which is fair).

          But yeah, my current employer was my other room. Got to experience imposter syndrome again for the first time in a long while.

        • AbsoluteCabbage 2 years ago

          >Java and Python

          Just lost your credibility lol.

          Python is alright but... seriously? Java?

    • nosefrog 2 years ago

      Can you talk more about your method for solving problems? That's normally where I get stuck.

      • 100011_100001 2 years ago

        People get stuck solving problems for various reasons. For me, I think more clearly when I write. The primary benefit is that it stops having to mentally re-establish my logical premises to make sure my conclusions are sound.

        Anyway, the hardest part of writing code is starting. Why is that? A lot of times it's overwhelm, you see the task, it appears large and you don't know what to start.

        My solution is simple, I start writing the steps I need to take. This will be easier with an example. To not get stuck in weird debates let's pretend the ask is that I need to build a house extension for someone.

        I will start breaking that down, in bullet points.

        * Figure out location of the extension

        * Find out dimensions of the extension

        * Order wood and nails

        * Bring hammer on Monday to start

        At this point I might know what kind of wood I need, hell I might even need to buy bricks. But I have a semblance of steps. I can talk to the client and ask specific questions.

        As I go through my list I expand it or make it more focused as I go. Out of habit I also tend to mix thoughts and realizations in my bullet points.

        Then as I am going through the solution the following days I can see my thoughts expanding and increasing in specificity.

        There is another thing this does. If I find it hard to come up with a few bullet points it means the problem is too vague or I don't understand it well enough. Instinctually you will know if it's lack of knowledge or vague problems. If I lack knowledge I read about it or talk to an SME. Vague problems can be solved by talk to the Product Owner, Business Analyst or a client if it makes sense.

        Once I grasp the problem, get basic questions answered I go through my bullet list and refine it. That's when I try to design things. After I have a design I try to see if I'm making any assumptions. Personally I prefer to test any assumptions I have.

        I rather find out my assumption is false at the design phase than later. Granted sometimes things can get still trip me up, or give me a false positive.

        I don't spend a ton of time designing. If I can I will pitch my design to someone I consider smarter than me to see if they find holes. I prefer people that think more breadth first, because I think depth first. Their strengths is my weakness.

        Most of the time in the act of my pitch I will find assumptions I have made or I will realize that what I am saying is overly complex so it probably means I didn't design it well. So I iterate.

        Designing doesn't take me long most of the time. I have learned that I think better when I code than when I design.

        When I start coding I use a dirty version of TDD. Instead of write test, write code to pass test I follow a different pattern

        I write small parts of code that satisfy the most likely case and I write the first step of the most likely case.

        For example if I was writing a rock paper scissors game, the first part would be to to right the main method framework and print "welcome to rock paper scissors game". Then I run the code to see it's good.

        Next step would be to accept input. Test that. Then write the logic for determining what the CPU will throw. Test that. Then how to determine the winner. Test that. Then create the "you win/lose" message. Test that.

        Once that's working I'll start to worry about things such as, what happens is they press enter without any input. What if they miss type a word. I might decide that I would be easier to make it multiple choice, where a = rock.

        This is a simplified and contrived example. Sometimes I'll write things I consider easy in one go, but if I have doubts or I am starting to touch complex objects or logic I start testing more frequently.

        When I test I don't sit, I keep writing code while the test is running. I test excessively but it helps me to see unintended consequences quickly since my code to test cycle is short it's really easy to identify the source of my woes.

ur-whale 2 years ago

It's time to learn a new trade.

thelastinuit 2 years ago

Read Tao Te Ching, perhaps it helps.

dd444fgdfg 2 years ago

I...don't know how to put this, but... I'm kind of a big deal. People know me. I have many leather bound books.

crdrost 2 years ago

Hi, Shabang!

Good on you for asking this question. If you are looking for a sign that you are not conceited, asking “am I too conceited?” is a great first signal that you are not.

You ask how you can get feedback when you intimidate others with your success/output/influence. A very good question.

1. Be relentless in your admission of weakness. You see someone nodding at a half-formed idea as if it were genius “I’m sorry, I am barely making sense to myself here, I hope it's helping and I see you nodding along, if you're seeing something I am not seeing, great.”

2. Actively solicit. If someone else says your input was really helpful without feedback, “can I ask you for a favor? I'm trying to be more clear and succinct in how I communicate, and this looked kinda successful maybe, but was there anything I could have been more clear and succinct on, or any, like, important details I didn't really understand but just blew past?”

Some people on my team ask for approvals, “please approve my merge request.” I am always asking for feedback, “please tell me if anything looks unclear, if I need to comment something, whatever.”

After onboarding someone to a new system, “what was the hardest part of this to wrap your head around, is there a way for us to make it easier?” Or, “genuine question, if I asked you to just clean up tech debt on this repository for a month, where would you start?” ESPECIALLY do this with newbies. Someone who comes in as a blank slate has so much to give, the moment that they say “oh that surprises me, I would have thought we would have done this this way” you can rethink, “oh yeah why DON'T we do it that way?” and if you code it up and see no obvious reasons to do it the way you originally did it, you can ask them to rereview that code and you can ultimately merge it ... What an egoboost! Your newbie feels they delivered value from day 1, meanwhile you are seeing things from a different perspective.

3. When people are asking for your opinion, don't just give them one opinion. Even “Which would be better, A or B,” you can answer “well, I don't really understand the problem as well as you do, so I can't answer the question for you, I would choose A in situations that look like OPQ and I would choose B in situations that look like RST and for that matter I would choose C in situations like UVW and if it were a personal project or situation XYZ, I might just brute-force it with option D. But I don't know which of those trade-offs are the best in your case, your hunch is way better than any experience I have.”

Now to your other big question, you ask how to become less controlling and less frustrated with others. Two tips there.

1. Let it f**ing go. Seriously. 90% of these decisions are not important enough to justify blocking merge and release. They didn't insert a null check in a place where it comes automatic to you—so what? Here's the deal, learning is pain, more accurately learning is the relief that comes after feeling a pain over and over. Your desire that this other person never feel pain is this a desire that they not learn. You need to have the attitude of, “if I am wrong then I have learned something, if I am right then we can fix it later.” Just let the damn thing go, and your subordinates will learn and skin their knees and delete the prod database and grow.

2. Often people become 10x developers in a certain context because that context is full of landmines which they are able to avoid. The other people in that context are running into them and dying. But, you can find yourself in a rut.

Next time you are brushing your teeth, take note of what side you normally start on. Start on the opposite side. It's weird, uncomfortable, but not wrong. Next time you find yourself building code, maybe you start from a function that you're pretty sure you will need, start with some small examples, build out, eventually the larger structure will crystallize in your head? If that's you, reverse it. Pretend that you have an AI bot that, just by naming a function, will properly implement it for you, and start from the outside and build your way down to the details and the nitty gritty. Or if you program outside-in, flip this advice and program from the inside out.

You KNOW there is more than one way to do it, you are a smart person, obviously. But you have to FEEL that there is more than one way to do it, that is harder & needs to be drilled and trained.

3. Invest your surplus. You are 71% of the story points vs 9 others, correct me if I am wrong but that makes you a 22x developer. You commit to investing 20% of that and you become an 18x developer, nobody is going to complain. 2 hours a day or one day a week, however you can arrange it. What do you do with that time? Many options.

Maybe you mentor others on your team. “Oh Shabang, I can't take up your time, your time is very valuable.” NO! There is literally nothing more valuable that I can be doing than making you more productive. Because that's linear versus quadratic growth. Actually if I can get you trading the next generation too, it's exponential growth. It doesn't matter what the coefficient is, quadratic beats out linear eventually.

But you have indicated that you are not so interested in the management track and that is totally fine, you should be able to remain an individual programmer without needing to become a manager in order to get ahead. So what does that look like? One way: You invest in a new technology. Say you decide to do machine learning, you go learn some PyTorch, you build some models and train them, see if you can't apply it to some random problems at work. Another way, favored by the late Joe Armstrong, you invest the 20% in rewriting. You deliberately take 25% of your remaining story point load and nominate things to be implemented twice. You build it once and learn the shape of the problem and then you build it again. Can be combined with the previous idea, you decide to learn functional reactive programming or μKanren or Rust or what have you, by taking 10% of your story points and reimplementing them in those styles, assuming that you need to spend at least as long as the original bug just understanding what the new idioms are.

The goal here is to get to the point where, if someone else has a novel approach, you are no longer saying no to them, rather you are coming up the next day and saying, “hey that sounded really interesting, I wrote this proof of concept, is that what you were going for?”...

The golden rule of standup comedy, you never say “no,” you say “yes, and.” when someone says “We will just leave the authentication token off of that endpoint,” you suppress your sense of saying “no, every endpoint needs authentication, don't be ridiculous” but instead try to see their needs and say “yes, and we can build a way to instead authenticate by cookie/track the requests some other way/automatically audit accesses and limit the rate at which they are provided so it's not useful unless you know exactly what you're are doing/whatever.”

Hope those bits of advice help?

  • 100011_100001 2 years ago

    Thanks for the thoughtful post. It's full of good ideas.

    > After onboarding someone to a new system, “what was the hardest part of this to wrap your head around, is there a way for us to make it easier?” Or, “genuine question, if I asked you to just clean up tech debt on this repository for a month, where would you start?” ESPECIALLY do this with newbies.

    Is my favorite part. I tend to hold training sessions for various things, so I can use this idea frequently and it will help everyone involved.

otikik 2 years ago

Update your LinkedIn

User23 2 years ago

Learn to delegate.

elviejo 2 years ago

"If you are the smartest person in the room, you are on the wrong room." (Groucho Marx, maybe??)

But in all seriousness, if you love to code then search for a harder challenge probably at a different company.

repomies69 2 years ago

Change job.

  • amelius 2 years ago

    Nah, just tune down your performance. Work on a side-project you like to work on for 50% of the time. You can do so without guilt because you'll still outperform 90% of your peers.

crdrost 2 years ago

Hi, Shabang!

Good on you for asking this question. If you are looking for a sign that you are not conceited, asking “am I too conceited?” is a great first signal that you are not.

You ask how you can get feedback when you intimidate others with your success/output/influence. A very good question.

1. Be relentless in your admission of weakness. You see someone nodding at a half-formed idea as if it were genius “I’m sorry, I am barely making sense to myself here, I hope it's helping and I see you nodding along, if you're seeing something I am not seeing, great.”

2. Actively solicit. If someone else says your input was really helpful without feedback, “can I ask you for a favor? I'm trying to be more clear and succinct in how I communicate, and this looked kinda successful maybe, but was there anything I could have been more clear and succinct on, or any, like, important details I didn't really understand but just blew past?”

Some people on my team ask for approvals, “please approve my merge request.” I am always asking for feedback, “please tell me if anything looks unclear, if I need to comment something, whatever.”

After onboarding someone to a new system, “what was the hardest part of this to wrap your head around, is there a way for us to make it easier?” Or, “genuine question, if I asked you to just clean up tech debt on this repository for a month, where would you start?” ESPECIALLY do this with newbies. Someone who comes in as a blank slate has so much to give, the moment that they say “oh that surprises me, I would have thought we would have done this this way” you can rethink, “oh yeah why DON'T we do it that way?” and if you code it up and see no obvious reasons to do it the way you originally did it, you can ask them to rereview that code and you can ultimately merge it ... What an egoboost! Your newbie feels they delivered value from day 1, meanwhile you are seeing things from a different perspective.

3. When people are asking for your opinion, don't just give them one opinion. Even “Which would be better, A or B,” you can answer “well, I don't really understand the problem as well as you do, so I can't answer the question for you, I would choose A in situations that look like OPQ and I would choose B in situations that look like RST and for that matter I would choose C in situations like UVW and if it were a personal project or situation XYZ, I might just brute-force it with option D. But I don't know which of those trade-offs are the best in your case, your hunch is way better than any experience I have.”

Now to your other big question, you ask how to become less controlling and less frustrated with others. Two tips there.

1. Let it f**ing go. Seriously. 90% of these decisions are not important enough to justify blocking merge and release. They didn't insert a null check in a place where it comes automatic to you—so what? Here's the deal, learning is pain, more accurately learning is the relief that comes after feeling a pain over and over. Your desire that this other person never feel pain is this a desire that they not learn. You need to have the attitude of, “if I am wrong then I have learned something, if I am right then we can fix it later.” Just let the damn thing go, and your subordinates will learn and skin their knees and delete the prod database and grow.

2. Often people become 10x developers in a certain context because that context is full of landmines which they are able to avoid. The other people in that context are running into them and dying. But, you can find yourself in a rut.

Next time you are brushing your teeth, take note of what side you normally start on. Start on the opposite side. It's weird, uncomfortable, but not wrong. Next time you find yourself building code, maybe you start from a function that you're pretty sure you will need, start with some small examples, build out, eventually the larger structure will crystallize in your head? If that's you, reverse it. Pretend that you have an AI bot that, just by naming a function, will properly implement it for you, and start from the outside and build your way down to the details and the nitty gritty. Or if you program outside-in, flip this advice and program from the inside out.

You KNOW there is more than one way to do it, you are a smart person, obviously. But you have to FEEL that there is more than one way to do it, that is harder & needs to be drilled and trained.

3. Invest your surplus. You are 71% of the story points vs 9 others, correct me if I am wrong but that makes you a 22x developer. You commit to investing 20% of that and you become an 18x developer, nobody is going to complain. 2 hours a day or one day a week, however you can arrange it. What do you do with that time? Many options.

Maybe you mentor others on your team. “Oh Shabang, I can't take up your time, your time is very valuable.” NO! There is literally nothing more valuable that I can be doing than making you more productive. Because that's linear versus quadratic growth. Actually if I can get you trading the next generation too, it's exponential growth. It doesn't matter what the coefficient is, quadratic beats out linear eventually.

But you have indicated that you are not so interested in the management track and that is totally fine, you should be able to remain an individual programmer without needing to become a manager in order to get ahead. So what does that look like? One way: You invest in a new technology. Say you decide to do machine learning, you go learn some PyTorch, you build some models and train them, see if you can't apply it to some random problems at work. Another way, favored by the late Joe Armstrong, you invest the 20% in rewriting. You deliberately take 25% of your remaining story point load and nominate things to be implemented twice. You build it once and learn the shape of the problem and then you build it again. Can be combined with the previous idea, you decide to learn functional reactive programming or μKanren or Rust or what have you, by taking 10% of your story points and reimplementing them in those styles, assuming that you need to spend at least as long as the original bug just understanding what the new idioms are.

The goal here is to get to the point where, if someone else has a novel approach, you are no longer saying no to them, rather you are coming up the next day and saying, “hey that sounded really interesting, I wrote this proof of concept, is that what you were going for?”...

The golden rule of standup comedy, you never say “no,” you say “yes, and.” when someone says “We will just leave the authentication token off of that endpoint,” you suppress your sense of saying “no, every endpoint needs authentication, don't be ridiculous” but instead try to see their needs and say “yes, and we can build a way to instead authenticate by cookie/track the requests some other way/automatically audit accesses and limit the rate at which they are provided so it's not useful unless you know exactly what you're are doing/whatever.”

Hope thpse bits of advice help?

inetknght 2 years ago

> This feeling of loneliness got quantified when the commit number came up. The problem is people just accept whatever I say. I used to get challenged in some of my decisions, which I always appreciated since I could create better solutions. Nowadays people just accept whatever I say as the best way.

> I worry that by not being challenged I will become complacent.

> ... what I find plainly obvious is not to others.

These statements resonate with me so I'll tell you my experience.

Someone outside of work told me "if you're the smartest person in the room then you're in the wrong room". So I changed jobs. I had been working on software that does DNA analysis for a company and had been doing that for six years. I decided I wanted to work more with robotics. I ended up landing a new job writing software for drones.

Now I'm doing what I consider to be much more challenging work. I'm no longer the top dog. I still don't really make mistakes in code. But I make a lot more mistakes with my peers and their process. It's been hard to try to explain to them why a different way is better when they wrote the process in the first place and are attached to it.

I can provide several examples. First and easily the most prominent is code style. Everyone has their own opinion. And their opinions are valid. But code style is something that directly leads to you understanding how the program works. Different code styles lead to slightly different understanding. Some code styles are much more prone to bugs. Try getting your team to change their code style for the better! I just spend three weeks before we were finally able to agree on an updated code style. And that's just styling that doesn't affect program flow.

Then there's repository setup... how do you organize your repository? Well... there's good ways (the way it works now) and there's better ways (the way it can work in the future). A lot of the similar reasons about code style.

And my peers no longer "look up to me" for the answer. Not in so many words. Moreover, I look up to them for the answers too because their experiences are not only different but the whole stack is different. I didn't build the entire stack at the company. I don't know every nook and cranny. So it takes me a little while to read through what the code does and reason about what it should do and reconcile whether they're compatible. It takes a while to make changes too. And it's not just code. They're much much better in mathematics or science or (in my case) aeronautics. It's much more challenging and my answers to problems are questioned in ways that I never even thought about.

It's stressful, too. In a good way. It's hard to meet deadlines that I thought you'd meet because "I've done this before, it'll be easy" but it turns out that... there's a lot of problems to it that just weren't problems at my previous company. Either I avoided them in my first implementation (like you said, a good developer), or I fixed it before it became a problem (again, a good developer), or it was just never within the scope of the industry (eg, DNA analysis software and robotic control software currently have minimal overlap).

Changing the industry I was working in massively helped me to challenge myself by having others challenge me.

vowelless 2 years ago

Well, how much do you make? Compare your comp with the numbers on levels.fyi to see if you fit in the expected band.

ern0 2 years ago

TL;DR: 1. no offense 2. mee too 3. join the elite club 4. pet projects 5. teach

1. First of all, don't take what I write as a personal attack; I am a bit aspie, and can't detect the fine distinction between being honest vs rude, I'm just unable to separate. Also, I don't speak English very well, so I may use phrases, which I think different that it sounds.

2. Sorry, dude, you're only an average programmer - as I am. I have 32 years of experience in software development, started at age 18, and I'm programming since I'm 13, but I would have started earlier if there had been computers (in a socialist/communist country, see COCOM list). I'm pretty good at setting up a moldel, a solution, choosing platform and tools, writing well-readable, fast and resilient code. My superpower is to cut out features, which looks necessary, but I know they aren't, and I'm always right. I am not too good at math, okay, bool algebra is my blood, and I can set up good KPIs, but other areas, e.g. trigonometry (not a random pick, see later) is not my table. Also, sometimes I create music, not the dumb write-one-pattern-then-switch-on-off-tracks style, but normal pop, smooth jazz, house, rock, punk etc. stuff. I love to make covers. Restricted platforms is my real home, writing music for C16/Plus4, ringtone, buzzer, bytebeat etc.

3. As I said, I'm pretty average. I'm not measuring myself to clerks, bus drivers and our PM, not even to usual programmers. There's a scene, where we count as "nice try" or "well, interesting". This arena is called demoscene (a good intro: https://www.wise-geek.com/what-is-a-demoscene.htm). I am a medium-low known member of this community. As I'm not too good in math (remember, 3D), which is recommended in this genre, and also I'm not 16 yo any more, so I have no time to release full demos requires months of work of more people, I found my way in the sizecoding category, I am releasing and contributing in 256-byte intros (and also musics, of course). As sizecoder, I still count below-average-talented, other dudes are writing raytracers and other jaw-dropping effects in 256 byte (usually we use 16-bit x86 code), so I'm trying to shine out doing funny or unusual things. For example, one of my latest intro plays a 549 notes piano piece on the MIDI interface (my friend helped to optimize it out, also there's a presentation about how it's made https://github.com/ern0/549notes/tree/master/prez).

So, if you feel yourself lonely because you're high above the average folks, come, join demoscene, and feel yourself lonely on the other end of the spectrum, above the average. Okay, it's not true, not every demoscener is pure genius, but they're way above average, so you'll enjoy. Sometimes these guys are weird, but this is a usual side effect. If they accept you (don't worry, we're not complete jerks), it will be a good feeling to belong to such smart people. Not least, it's a great _inspiration_!

4. You not mentioned, but I assume you have pet projects. It's a fatal mistake to not have pet projects. This is the difference between Real Programmers and this-is-my-job-meh. Even if you work as Universal Problem Solver, there will be several areas which you never deal with before, and some of these are too interesting to just ignore them.

I show you an example. Thanks God (despite I'm atheist/agnostic) that I don't have to deal with web dev, but I was curious what the heck WASM is (web without JavaScript, doesn't it sound good?!), and wanted to write just a plain helloworld C program for it to try it out... and there were no such, all examples were for Rust/Emscripten, so I made a small skeleton: https://linkbroker.hu/stuff/howto-wasm-minimal/ - it became somewhat famous, a bunch of folks thanked it, finally I felt that it wasn't complete waste the time spent with it (2-3 nights).

A special area of pet projects is, where not-too-complicated electronics plays role - keyword is: Arduino. It's a pure joy, even if only a small led blinks in your hand, driven by the program you wrote!

If you have such pet projects, sorry for the redundancy.

5. As I'm getting older, I'm creating presentations from my pet projects and other experiences more and more often. Remember your early career, it would be great if someone had explained clearly how things work: pullup resistor, abstract syntax tree (compiler tech.), version control, key-value databases, LaTeX, build systems, Unix pipes etc.

If you can suggest optimal solutions for a certain problem at work, you should not only justify why you chose that solution, but you should also teach how to do it.

Oh, needless to say: Maybe I'm Wrong. Your way might be complete different, I don't want to iterfere your life (as silly joke goes: - Have a good day! - Please, don't tell me how to life!).

015a 2 years ago

I would describe myself having been that person in my previous role (of six years). Started as dev#2, grew to ~100 people, you grow along with the company, having seen everything, had a hand in making most of it, it'd make anyone an expert.

Eventually it got to the point where our engineering manager would assign maybe 10% of my sprint capacity. 40% of it; I already knew what to work on. Stuff my manager, and the manager's manager, had no clue how to plan for. I was rarely included in product planning because "we need you to focus on the work". Literally none of them seemed to care that they didn't have visibility into what I do. Whatever; I'll just create the tickets myself, basically manage the sprint planning for a team of one (me). That worked well. Actually pretty nice. The other 40% was just Slack. Messages all day. "Ramp up meetings" with new hires. "Hey man can you document this thing" (no one ever reads it) (three months later 'hey man can we meet for two hours to talk about this thing I'm not understanding it') "Can you hop on this customer call in two hours, we need someone to talk about single sign on" (sure man, I'll recite the same script I've used for the last fifty meetings, and that I posted in our internal help database, that your team has somehow spent three years NOT learning)

Oh, I'm missing 10%. That was Overwatch. Maybe more like 30%. Because it turns out, you get to a position like this, and short of a company failure, you're set. I once had a project go maybe 3-4 weeks past when it was planned to be done, partly because I took an impromptu week-long trip in-country with a friend, telling no one. I could have taken PTO. We had unlimited PTO. And not fake-unlimited PTO that no one ever takes; real actual unlimited PTO. But that's a process, gotta fill out a form, tell people, and I was in my "fuck process" phase. Spend an hour a day in meetings from the hotel room hungover with a virtual background, respond to Slack messages as they come through. During a retrospective or something my manager commented that "product really screwed up planning how long this would take". I planned it! I gave the timeline! I screwed it up! Absolutely wild.

> I used to get challenged in some of my decisions, which I always appreciated since I could create better solutions. Nowadays people just accept whatever I say as the best way.

The best days of my role at this company were when we hired on a former senior engineer from Google, of all places. I don't know how we got him or why he joined on, except that he really wanted to try a (no-name, small) startup. It was the first time, ever, that I felt like there'd be someone else with the knowledge and confidence to challenge me. He did. Then he left a year later. Probably for the same reasons I eventually left (if you haven't caught on yet; the management were amazing people; and absolutely horrible managers).

> I worry that by not being challenged I will become complacent.

You don't have to become complacent on the tech. The thing I miss most about this role was; if there was some tech I wanted to play around with, I'd just do it. There was no one to question me. I'd deploy it all the way to production. I'd maintain it; grow it; mold it to whatever the business needed. You learn a lot doing that; probably more than being a cog in the Big Tech machine, though its a "different" but still extremely valuable kind of knowledge. A year later that tech is in job descriptions for the new hires and I'm helping them learn it.

But, what I found myself becoming complacent in was (you guessed it): work ethic. Everything was so easy, and the expectations were so low, that a typical day quickly became... 11 to noon, then an hour lunch, then an hour digesting that lunch, then maybe 2 to 4, then a friend just texted he's at the brewery across the street, lets roll out.

> What can I do to change things?

Leave. Everyone wants to be the smartest person in the room. Actually being the smartest person in the room: sucks. There are two ways to fix it; find a smarter person to bring into the room, or find another room. Hire, or Switch Jobs. Hiring the smartest person in the room is, probably, a predominate focus of someone, somewhere, in your company; as it is in every company, and they've failed. Who can blame them; hiring engineers SUCKS. So, find another room.

I've never made a better decision than leaving that role. In literally the first WEEK of onboarding at my new role, I learned five things about how they architect things, plan work, design systems, that induced the autonomic thought "shit let me write that down, this is fantastic and would work great in {SystemXFromOldCompany}", before having to realize I don't work there anymore lol (not to mention, you know, intellectual property, autonomic and such). When I put in two weeks, the old company offered to beat the offer at the new one by 10% (it was already an... 80% increase in TC). Nah, see ya.

That's the thing. You may be the most capable engineer at that company. You spend long enough in isolation there and you may just start convincing yourself you're god's gift from heaven. This isn't personal: you're not, because no one is. But, you're probably pretty good, and you're at a plateau because there's no diversity of thought in your environment. So, you gotta find it. Ten-x engineers are relative. The creator of homebrew couldn't get a job at google.

The alternate option is to find happiness where you're at (or, similarly; don't go big tech, find somewhere else you can be the smartest person in the room). It doesn't sound like that's a good solution for you, so I present it last, but it really is a fine road. There will always be many people smarter than you, and many people not-smarter. It sucks to be the smartest person in the room; but if you can go on impromptu trips with friends, spend time with your family, explore hobbies; hard to call that a bad hand. Work/life dissociation is actually healthy.

UmbertoNoEco 2 years ago

If you are a truly a 10X developer(TM pending) and this is not one of those copy-paste kids love these days, you could found your own company or consulting agency.With the huge competitive advantage you have (probably unique in the world ) : a 10-men-strength worth development capability that only have to maintain 1 family. If mere mortals have founded companies solo or in pairs, imagine what you could do with 5-10X the productivity and brain power.

  • jv22222 2 years ago

    It doesn't really matter how good or fast you are at developing, starting a company is a whole different ball game. The overhead of winning and retaining clients will very quickly ruin any 10x advantage you have.

    Side note: Judging from the story points it looks like this is a 23x developer not 10x ;)

    • mberning 2 years ago

      The fact that they haven’t realized story points are like the score in “who’s line is it anyway” is a major red flag that they probably are not a 10x developer. Such a person would surely have ascertained the reality of the situation. The truth is that this person probably is above average in some aspects, but has a gross deficit in understanding the more nuanced aspects of the software business.

      • leaflets2 2 years ago

        The story point was just an example, not the main point.

        OP is aware about what your wrote and didn't mean it in the silly way you assumed.

  • pawelmurias 2 years ago

    A 10x difference in productivity between super efficient developers and shitty ones isn't as rare as you think.

    • UmbertoNoEco 2 years ago

      Probably, who knows? But a "shitty" developer is not "1X"

ebbflowgo 2 years ago

Honestly I've been coding for 10 yrs. It's not a social activity, in that moment you're an introvert. You load up the case study of code in your head and work on a few features.

Socializing after isn't easy, do you DM someone, follow up, schedule a time to talk? That's unreasonable.

My latest startup Vibehut.io can help, here's an open video room for Developers, join when you want to chat, screen share your work, shoot the shit

w/e you want, here's the link, login with Twitter.. do with it what you will

https://vibehut.io/rooms/6286f6a8650b7c00166fdbb0

uhhhhuhyes 2 years ago

Re-balance your priorities, cut back in areas that stress you out, and evaluate frequently to see where you are trying too hard and where you are not.

edmcnulty101 2 years ago

Get a job at a FAMGAN and capitalize on that talent.

EddieDante 2 years ago

I can't help you with the loneliness part, because I'm just a married, middle-aged techie with no friends of his own. I don't claim to be a 10x developer either, but I tend to deliver cleaner code faster than many of my colleagues and have been roped into many of the same discussions/meetings as you.

It seems to be a situation where there are a surfeit of apprentices and a plenitude of journeymen, but a relative dearth of actual masters. I could be wrong, but I'm a journeyman myself -- one who can see mastery glittering on the horizon.

The hard part is when people start treating you like the Smartest Person in the Room (SPITR). Keep hearing that often enough, and you'll start to believe it. You'll lose the growth mindset that had gotten you this far and start thinking that it was your intelligence that made you and not your effort. This will righteously fuck you over when you eventually do foul up, because you won't see it coming even if somebody rubs your nose in the bug you committed because you'll be busy thinking, "I can't have introduced such a bug to the codebase. I'm smart."

I can't tell you how to counter this. I once lost a job after being introduced to a bunch of executives as the SPITR and saying, "If I'm the smartest person in the room, the rest of you are fucked." That's what I get for misreading the room and actually thinking that maybe I was the smartest guy there, smart enough to get away with mocking a bunch of execs capable of spending on Sunday brunch what I pay in monthly rent without a second thought.

It's the same trap that a shitload of kids get shoved into once their teachers figure out that they're reading beyond their grade level and must therefore be GIFTED AND TALENTED. They keep hearing from the adults around them that they're so smart and eventually they start to believe it. How could they not; they're often too young to have figured out that the adults around them are only human and all have pre-paid annual passes on the Dunning-Kruger Express. And when these GIFTED AND TALENTED kids finally fail, it feels like their entire world has come to an end because they've leaned so hard on their "intelligence" that they never learned any other way of dealing with the world around them.

I know this from personal experience. I got labeled as "gifted" in the 1980s because I didn't have the sense to hide my hyperlexia from the adults around me.

Getting back to your concerns: I can't help with the loneliness. I've dealt with the stress by discreetly working less. I can see the other developers' velocity, and rather than outshining them by a substantial margin I pace myself so that my metrics are only slightly better than theirs. Work that takes them a solid eight-hour day only takes me two, so I quietly take the rest of the day for myself.

Rather than rail against the fact that I've become Peter Gibbons and only do eight hours of "real work" per week, I'm learning to take advantage of it.

  • 100011_100001 2 years ago

    > I've dealt with the stress by discreetly working less.

    I have debated this myself. Some other replies said the same thing. It would definitely help me in other parts of my life. How do you handle people messaging you over slack / teams and not responding for hours?

    • 015a 2 years ago

      Precisely; and that's a big reason I would disagree with the OP and say that the method of "do in 2 hours what takes someone else 8 then take the day off" is actually a bad strategy for managing stress.

      First; you're gonna become an SME on something. SMEs get Pings. If you're in your "not work" time at 3pm, playing Valorant or whatever, and get a ping; that's going to be annoying. That annoyance isn't justified; its not Right; but that is what you'll feel.

      The more important thing is really to set and communicate boundaries. The standard boundary is 9 to 5; so set that, 9am you're on and giving it everything, 5pm you're off and giving it nothing (outside of on-call and whathaveyou, which is a separate problem).

      It doesn't matter if you can do in two hours what takes others eight; you can't set a 10 to noon boundary. So; you'd have to lie. And its not just a lie to the company; its a lie to yourself. It'll start with "oh yeah im work from home, I'll still keep slack open and respond to pings but this will be me time". Then that me time turns into personal time, which turns into "yeah I can grab drinks at 2pm on a thursday" time, and it legitimately can spiral.

      The weird part for me, and I assume some others is: you can't set boundaries in this environment. Maybe its guilt, I don't know. But if you're only on-on for two hours, then kinda-on for... how long? All day? If the 2pm ping induces the same feeling of annoyance as an 8pm ping would, they're not different; and you may become the person to go to if someone needs help at 8pm. Resentment follows: "I'm out with friends, why are they pinging me this late"; but do you not respond? Do you respond "my working hours are 9 to 5 so expect a response then?" Do you believe that when you say it (that's the ironic part; a part of me would).

      • EddieDante 2 years ago

        > Precisely; and that's a big reason I would disagree with the OP and say that the method of "do in 2 hours what takes someone else 8 then take the day off" is actually a bad strategy for managing stress.

        I can see why you would think this, but I have made it work for me. If I put in enough work in two hours to be slightly ahead of colleagues who need the full eight hour day, I don't regard the other six hours as purely "me time". I regard it as standby/on call time. If a ping comes between 0900 and 1700, I'm there to answer it. That's actually part of the strategy. As long as I'm hitting my deadlines, doing a little better than the other guys, putting cover sheets on my TPS reports, and being responsive during working hours none of my eight different bosses know anything's amiss. They get what they want, and I get more time to exercise, read, play my violin, chat with my wife, tinker, etc.

        I don't make anybody wait more than 15 minutes unless the only thing they say in chat is "hello"[0], because they're wasting their time and mine.

        I don't mentally clock out at 1100 or 1200 and spend the rest of the day playing video games and resenting every ping. I sure as hell don't start drinking at 2pm. Hell, I don't even keep booze in the house; I only drink if I'm at somebody else's house and they offer me a drink. (I'll have one drink for politeness' sake, but that's it.)

        > Maybe its guilt, I don't know. But if you're only on-on for two hours, then kinda-on for... how long? All day?

        I feel no guilt whatsoever. I've rationalized the guilt away. If getting paid a salary means I get paid the same whether the work takes 40 hours a week or 80, then it ought to mean I get paid the same whether the work takes 10 hours a week or 40 because I think getting paid a salary rather than an hourly wage should imply that I'm being paid for results, not time spent.

        The problem, at least in my situation, is that the company has me on a salary but bills their clients by the hour. This obliges them to track "utilization", so being your kind of honest and outright clocking out when I've finished a reasonable amount of work for the day would foul up my metrics. So I've unilaterally imposed a compromise that works for me: I get my work done in the morning, and spend the rest of the workday "on call" and responsive if something comes up. I make a point of participating in company tech/culture groups so that people see I'm not just focused entirely on client work.

        I play the game, but I play it my way because playing it their way is playing to lose.

        Remember: boss makes a dollar, you make a dime. That's why you shit on the company's time. I might not be a card-carrying IWW[1] member, but I come from a long line of Wobblies.

        [0]: https://www.nohello.com/

        [1]: https://www.iww.org/

fightme 2 years ago
  • dwaltrip 2 years ago

    I personally find it incredibly rewarding to help other people improve.

  • throwanem 2 years ago

    More than that one guy we all had to work with one time and wished we didn't? The one who bigs himself up over how much he knows, insists on making himself a constant obstacle to gratify his fragile ego, and that's why nobody actually wants to work with him?

    Yeah, I don't know why it should come as a surprise that hiring managers don't especially like that guy. No one else does either.

    • fightme 2 years ago

      Did you know it's possible to be a team player without having to worry about other peoples' career development? Sounds more like the manager is being an obstacle if the direct reports have to do that kind of legwork.

      • throwanem 2 years ago

        I was more thinking about the kind of guys I've known who've liked throwing around nonsense like "simps". But if it hasn't yet occurred to you that helping other people develop their careers is also a great way to develop your own, I don't suppose I'm all that likely to disabuse you of the oversight.

        • fightme 2 years ago

          In my experience, it doesn't help at all. Move to SV and you'll understand.

          • mathgladiator 2 years ago

            I did my big tech tour of duty, and most of my later years were all about helping people. Even now, as a retiree, I help people.

          • throwanem 2 years ago

            I looked at it early on, right when I was starting out. That was a little before the dotcom crash, enough that only the really smart people were starting to think it was coming. Everything there looked amazing, and everyone I knew there was miserable every day, and I couldn't spend all my time in the Castro. So I took a powder and ended up in Baltimore.

            I wasn't sure I'd made the right call till a few years later, when I heard one of the guys I'd stayed with then had killed himself. Sure, so maybe I missed out on a shot at some lottery tickets. So I'll never have fuck-you money, so what? Neither will almost everyone else - we call them "lottery tickets" for a reason, and that's before we get to the shitshow the next five years are going to be.

            With the time I didn't waste chasing after them, I've managed to build a hell of a good life for myself, work included. I sit every day in an office full of windows and surrounded by trees, and I'm even still able to enjoy the birdsong once in a while. I don't have to look very hard for good jobs by now; mostly these days they come and find me. I don't want for a thing in this world that money can buy. And it's been a very long time since I had to work with anyone I couldn't find a way to like.

            So yeah, the choices I've made have been more than worth what they cost me. Can you say the same?

t43562 2 years ago

Well, you're good at making the rest of us feel inferior - perhaps that's the problem?

Why not move into a domain where you're a beginner again and feel what it's like to struggle to learn from scratch?

  • 100011_100001 2 years ago

    Sorry. I honestly think almost anyone can do what I do. I'm not the smartest developer by far. I think I have good systems in place that allow me to write code well.

    In terms of moving to a different domain I did about 4 years ago. It was a challenge in the beginning, but I have enough life experience to know how to handle adverse situations.

    Kind of like if you know 3 programming languages well, the 4th one is not very hard. It becomes a "what keyword do I use" to do the thing.

    • t43562 2 years ago

      Then you haven't changed nearly enough obviously. What are we supposed to do in this situation - feel sorry for you?

      Do a university course or move to a new country and learn a language, start a business. Apply your ability to handle adverse situations and think your way out of this.

      If you are lonely then spend your time helping other people to solve their problems their own way rather than yours. Take up gardening and devote your ability to that. One can go on and on.

AbsoluteCabbage 2 years ago

In 2 months I went from “hello world” to writing APIs, training neural nets, hacking video games and reversing android apps.

When I made a post on Reddit, I was viciously attacked and the post was deleted.

It’s 4 months now and I am finding faults in nearly everyone’s code, standard libraries, bloatware etc. Yes its lonely being at the top of the bell curve.

The majority of humanity will always be petty and stupid. A few of us with sound reasoning and high IQs excel at programming and it indeed leads to a very lonely path. For instance I am one of the few people I know who programs in C. Everyone else has succumbed to using that bloated extension-extension that shall not be named.