So I’ve been thinking about tech careers lately, and I think there might be a better way to understand what’s going on. Most advice I see is like “find your passion” or “play to your strengths” but that doesn’t really help when you’re trying to figure out where to go next. What I’ve noticed instead is that the industry has kind of organized itself around three different ways of optimizing, and understanding this might be more useful.

The Three Types of Optimization

I’ve been thinking about this as a triangle where you can be anywhere inside it, not just at the corners:

                    Research
                   (Discovery)
                      /\
                     /  \
                    /    \
                   /      \
                  /        \
                 /          \
                /            \
               /              \
              /                \
             /                  \
            /                    \
           /                      \
          /                        \
         /                          \
        /                            \
       /                              \
      /                                \
     /                                  \
    /____________________________________\
   Velocity                              Systems
  (Shipping)                           (Depth)
  • Velocity: This is like startup land where you just need to ship fast or you’re dead. Your runway is measured in months. Technical debt is fine if it gets you to market faster. You’re basically using frameworks, AI, whatever tools work - just get the job done because the product matters more than perfect engineering.
  • Systems: This is more like big tech where you can go deep into one domain and really master it. Maybe databases, distributed systems, operating systems, whatever. You have time to build things right because the company isn’t going to die next quarter. You’re optimizing for scale and long-term competitive advantage.
  • Research: This is like academia or research labs where you’re trying to discover new things. Papers, talks, exploring what’s possible. Usually funded by grants or universities or big company labs. The goal is advancing knowledge, not immediate products.

From what I can tell, usually each software engineering role optimizes for one of these three things, and in my opinion, they are good - but the great roles are the ones that are in the middle of two / intersection of two ends. These aren’t really personality types - they’re more like economic constraints that shape how you have to work.

Most people cluster toward the edges, but I think the interesting positions are more toward the middle. Like, you might be mostly systems-focused but with some research background, or velocity-focused but with deeper technical knowledge than typical startup engineers.

Coming back to my point earlier about why the intersection roles are better - look at some examples. OpenAI is somewhere between research and velocity. They’re doing cutting-edge AI research but also shipping products fast enough to capture the market. DynamoDB was probably born at the intersection of research and systems - Amazon took distributed systems research and built it into something that could handle their actual scale. Most deep tech startups that try to do pure research under startup constraints seem to fail because they’re trying to optimize for the wrong thing given their economic situation. But the ones that work figure out how to be in between - they can monetize stuff along the way while still pushing boundaries.

Here’s something I’ve noticed - the engineers who seem to advance the most aren’t stuck in one spot. They move around the triangle based on what’s happening or what’s needed. They are often those who’ve learned to operate at different points within the triangle depending on context. An engineer might be 80% Systems, 15% Research, 5% Velocity during normal quarters, but shift to 60% Velocity, 30% Systems, 10% Research when facing a competitive threat.

Instead of asking “what kind of engineer am I?” maybe the better question is “what economic game am I playing right now, and how should I optimize for it?”

Your tools and approach should probably follow from your constraints, not your preferences. If you’re at a startup with 6 months runway, you probably shouldn’t be building the perfect architecture. If you’re at a big tech company trying to handle massive scale, you probably shouldn’t be moving fast and breaking things.

Some Trade-offs I’ve Noticed

The axes seem to represent real trade-offs:

  • Time spent learning theory vs understanding what users actually want
  • High-level thinking vs implementation details
  • Shipping speed vs deep domain knowledge

You can’t maximize everything at once, which is why the triangle makes sense to me.

Why This Might Matter

I think career advancement might be more about reading these economic conditions and positioning yourself accordingly, rather than just getting better at specific technologies. The most interesting engineers I’ve seen can operate at different points in the triangle depending on context. They’re not confused about their identity - they’re adapting their optimization function based on what their environment actually rewards. Maybe the key insight is that these are strategies, not identities. And strategies should change when conditions change.

Here’s the thing though - you don’t always get to choose what game you’re playing. If you get lucky and land at the perfect company doing exactly what you want, that’s great! But if you’re like most of us, you won’t get that luxury early in your career. You’ll take what you can get and figure it out from there.

I found that identifying where I am on this triangle really helped me make sense of my situation. It gave me clarity on what I’m actually optimizing for right now, and more importantly, where I’d like to move and why. Instead of feeling lost or like I’m just randomly jumping between jobs, I can see the economic forces at play and position myself accordingly. It’s not about finding your “true calling” or whatever - it’s about understanding the game you’re currently in and making conscious decisions about where you want to go next.