I'm currently competing with two other engineers for a promotion to a much higher "rank" of engineer, which would mean a large bump in salary and benefits (i.e. 30% increase in salary, better stock options and bonuses, etc.). The person who currently holds this position for our team is leaving the company in around 6 months after he handles his remaining fiduciary duties.

Of the two people I'm competing, one of them is extremely competitive. He somehow has time for open source development, overtime (i.e. 70 hours per week), sports, and family life. He maybe sleeps 5 hours a night, and claims he can learn a new technology or programming language over a long weekend. He's apparently taken home 500 page books on a new language, and is able to use it days later. I think a lot of this is showboating, not actual competence. My guess is management will prefer him for promotion.

How can I:
- Compete with this? How do people manage their time like this? Are there courses for this?
- Confirm if he really is as smart as he claims to be? Is it worth sending others to ask him specific code questions on the latest language/technology he uses to see if he's exaggerating or lying?
- Learn the latest technology for C++ and Python? Are there blogs experienced engineers read to be on top of language/technology changes?

  • I dunno, seem to have read this before... can't find it though...
    – Solar Mike
    Commented Feb 23, 2019 at 19:31
  • 3
    Wow, for the chance of a 30% raise this manager has made at least two people deliver 100% extra work for no pay, manage all their own training at an incredibly accelerated pace, and still get all their regular work done. Quite an accomplishment. Commented Feb 23, 2019 at 19:33
  • 1
    None of the stats you listed would make your coworker a good candidate for promotion. Working overtime 70 hours a week is poor stat. Is the coworker delivering 2x or more the amount of work for instance? Better quality work (i.e. fewer bugs)? Is this person increasing the productivity of others i.e. teaching them?
    – jcmack
    Commented Feb 23, 2019 at 20:30
  • Any programmer who works more than 35-40 hours a week is incompetent, or, incredibly old-fashioned.
    – Fattie
    Commented Feb 24, 2019 at 12:57
  • I'm just a bit dubious about his claims. When, exactly, does he do sports and when is his "family life" (hi kids, bye kids)? If he sleeps only 5 hours a night, this seems likely to result in health issues (e.g. multiplied heart attack risk). Commented Jul 6, 2020 at 18:51

3 Answers 3


Compete with this? How do people manage their time like this? Are there courses for this?

Safarionline and udemy.com both have very cheap books and course content. Most of them will take about a weekend to read. There are also plenty of time management books like "7 Habits of Highly Effective People" (NOTE: Have not read).

Confirm if he really is as smart as he claims to be? Is it worth sending others to ask him specific code questions on the latest language/technology he uses to see if he's exagrating or lying?

This isn't really your business and sending your co-workers to spy on him is both unprofessional and weird.

Learn the latest technology for C++ and Python? Are there blogs experinced engineers read to be on top of language/technlolgy changes?

safaribooksonline.com, udemy.com, freecodecamp.org to name a few.

You need to focus on improving your skills instead of spying on your co-worker

  • 1
    +1 "You need to focus on improving your skills instead of spying on your co-worker" This is the right approach. Stop wasting your time spying your coworker. This alone would make you a poor candidate for a promotion.
    – jcmack
    Commented Feb 23, 2019 at 20:23
  1. As others have said, ignore your competitive colleague as far as his development is concerned.
  2. Find out in whatever way possible what criteria will be used to determine who will get the promotion. You could even just ask.
  3. Assuming you are at least competent in your current role, make sure you’re doing it as well as you can.
  4. Read “The Pragmatic Programmer” and apply techniques described therein.
  5. I would focus my efforts on learning about techniques rather than any particular technology. Test-driven development and things that make you a better team player spring to mind.

I can chime in here, as in my org I'm like the guy you're mentioning.

Here's what I do:

  • Whiteboard my learning objectives for the year
  • Consult my manager on upcoming projects so I can align my learning with those technologies. So I can get a "two-fer" on both expanding my skills and providing value to the company.
  • Read, a LOT.
  • Learn as much as I can about theoretical computer science.
  • Understand the platform I'm supporting / building by understanding the industry. (read articles about whatever industry my platform supports)
  • Practice. Take time to build complex code that I don't always see at work.
  • Work a lot.
  • Be disciplined in my extremes. This is an important idea. So when I'm developing I focus heavily on productivity. I understand there's a drop off after 8 hours. However, in my experience, if you use things like the Pomodoro Technique and get a full nights sleep, you can actually create and do quite a bit of work. So I work all the time, but I put my Maintenance tasks on rotation, I "chunk" my work and learning and I make a LOT of lists. I can do about 12 hours of solid work. There's a drop off after about 8 hours, but even if efficiency drops to 75% or even 50% after 8 hours, that's still more volume.
  • Make habits out of goals. If you want to be a learner without much pain, then learn about Diffuse Learning and Focused Learning (A Mind for Numbers talks about this) and then pair that with habit formation (The Power of Habit). Create or find a Trigger, engage in the Behavior and then Get A Reward.
  • In my instance, if I see my manager overworked, I volunteer to take on some of his work or help. He often says he's good, but there have been a fair amount of instances where he uses my help and is grateful for it.
  • Understand where your advantages lie.
  • Also understand you have limitations
  • Help other people in your org
  • Be reliable (this is immensely important)

So in my instance, I'm able to out compete fellow devs because the vast majority of them are family people. They come, do their work, go home and spend time with their families.

Here's a core idea: Competitive Advantage

Competitive advantages are conditions that allow a company or country to produce a good or service of equal value at a lower price or in a more desirable fashion. These conditions allow the productive entity to generate more sales or superior margins compared to its market rivals. Competitive advantages are attributed to a variety of factors including cost structure, branding, the quality of product offerings, the distribution network, intellectual property and customer service.

I realized my competitive advantage is I have no family, no kids, not married. I have a LOT of time. So, that's how I make my mark. I just do more. Without those obstacles, I can invest a lot in myself, my career and my knowledge.

I would suggest you find YOUR competitive advantage. Find something that competitors can't do as well or are weak at, that you are strong at or that comes more naturally with less effort and build and expand on that. Develop it.

The worst way to move up is making others seem small. The best way to move up is to make yourself bigger.

I would suggest you work harder and smarter and find the motivation to do so. I will suggest three books:

Read them, internalize them and then understand what works for you and then do that, over and over. Get used to the idea that being a good / successful developer requires constant growth.

Good luck.

Update: Note in my response, I take a LOT of initiative. Initiative is extremely important.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .