Where in the Abstraction Stack do you Optimize?

One of the most powerful concepts in computer science is "Layers of Abstraction."

At the lowest layer you have ones and zeros. At the highest layer you have the user interface. Every step between the binary and the user is a translation of sorts. At each translation, a piece of software becomes more human, and more specialized. When computer scientists talk about low-level versus high-level, they are not intending to betray a value judgment. Low-level programming languages are not lower in value, they are just more computer-y, and less human.

When software engineers talk about a "stack", the origin of that term is a reference to these layers of abstraction, stacked on top of one another.

You can take this concept and apply it at a company level.

layers of abstraction

Sales and marketing is the application of a product to a market. Product is the application of technology to a problem.

As a company, it is critical that you allocate resources only to the areas that truly differentiate you. Many companies end up investing in areas that support or enable their core value, without actually contributing to it. For example, if your product is the world's fastest motorcycle, you might make the mistake of building a race track. Sure, that race track will help you test your fast motorcycles, but it doesn't actually contribute to the speed of the motorcycle. You'd be better off outsourcing the race track to a race track manufacturer, so you can focus on your bike.

One question I ask companies is: on which level of this stack do you differentiate yourself? Are you fundamentally a technology company, a product company, or a sales company? To give some concrete examples:

Google is a technology company. Their core differentiator was a software algorithm that was 10x better than anything on the market. Yes, they layered on a pretty interface (to some extent), and a huge sales operation, but the foundation was technology.

Apple is a product company. They differentiate at the product level, meaning that their technology is actually not all the differentiated. They buy a lot of their hardware from other suppliers. Again, no value judgment here. They have operationalized exceptionally well and become the best in the world at the product level.

Salesforce is a sales company. The technology is basically a relational database, their product is a thin, moderately intuitive management layer on top of that database. But they sell the shit out of it. They could sell annual SaaS licenses to an an off-line emu farm (and they probably have).

The make up of your team, the culture of your company, and the KPIs to which you hold yourself accountable, should all be defined by the layer of abstraction at which you intend to differentiate.


If you are a technology company, that usually means you're building something novel that can do things faster, cheaper, or more automated than the status quo. Your KPIs should be rigorous technical benchmarks, holding yourself accountable to a 10x multiple. For the first few years of your company, you may achieve no sales or market validation at all, and that might be just fine, because you're optimizing and investing in technology that will effectively sell itself (just kidding - you'll still need a sales team).

If you optimize at the product level, you generally won't have enterprise sales opportunities. Enterprise sales requires either fundamentally valuable technology, or an organization that is perfectly optimized around sales. In other words, enterprise sales works well for companies that optimize at the lowest and highest levels of abstraction.

Instead, companies that optimize for product tend to go after the long tail of customers. In acronym speak, that means B2C or SMB (low-touch) B2B. That means that they need strong referral growth mechanisms, which requires optimizing for NPS score, retention rate, and blended CAC. These companies tend to be the sexiest, and the most elusive. Anyone who says "We're like X, but we don't suck", or "We're like Y, but more intuitive" is optimizing at the product level. There tends to be an "if you build it they will come" mentality on teams that optimize at the product level. That's a dangerous fallacy.

Companies that optimize at the sales level tend to move upstream quickly, going after enterprise contracts. Their UX doesn't have to be revolutionary or even intuitive, their tech doesn't have to be 10x faster. Often the buyer to which they're selling is not the eventual user of the product, so the success of the deal has more to do with the nature of the relationship, and the internal politics and processes of the company that's buying. The KPIs most predictive of growth are average deal size and time to close. If you're closing big deals quickly, not much else matters!


Just as your KPIs should be defined by where in the stack you differentiate, the makeup of your early team should also be optimized.

If you're optimizing for technology, you need Ph.D.-types or engineers with deep domain expertise. At least one of the founders should have years of experience and a deep understanding of the current state of technology. Early on, the company will effectively be led by the VPE or CTO, as the CEO secures funding and keeps current investors at bay ("we're building something big here, but it's going to take time").

At some point, you'll have to take your technology company to market. Occasionally, technology-focused companies fail because they never actually build technology that's 10x better than the status quo, but I'd bet the more common cause of death is that the founders get frustrated because the world doesn't immediately understand just how revolutionary their technology is, and they give up. The solution is to build a sales team that is technical enough to understand why the value proposition is so powerful. Ideally your sales folks are former engineers, or at least have deep experience selling technical products and studying technical subjects. Build your sales team earlier than you think you need it, and if they're ready to sell before the tech is, incorporate them into the product-building process.

If you're optimizing at the product level, your engineering team can be made up of product-minded engineers. People who are mission-driven and able to put themselves in the customer's shoes. These folks don't have Ph.D.s, but they're critical thinkers with a strong background in high-level tech stacks. Frameworks like Ruby on Rails, Express, and Django are perfect for teams optimizing at this level: high on productivity, and easy to build teams around.

You'll also want a strong product leader and at least one designer by their side. Some of your earliest employees will be customer success reps with strong product minds as well. From day one, all the leaders of your company should be asking customers questions, not necessarily trying to sell them anything, but focusing on the deep pains they feel day-to-day.

Companies that optimize for product usually don't have enterprise sales reps early on. They tend to pursue lower-touch sales channels and smaller customers. That means early sales teams will be sales-hacker types, sending a lot of cold emails or working closely with marketing to build a robust inbound funnel. These are not relationship builders, they are consultative sales types, focused on highlighting the pain points the product solves and answering questions in earnest. If your company is optimizing for product, but your sales team has to take customers to a steak dinner before closing them, you should probably either move upstream and optimize for sales, or pivot your product.

If you're optimizing for sales, you may be able to get away with outsourcing your product development. This can lead to significant savings in R&D, and more spend on Sales and Marketing! By focusing on a minimum sell-able product, you can sell ahead of your actual ability to fulfill. You'll truly let the market define the product, by getting leads to sign contracts for functionality, and then scrambling to build that functionality in time to on-board the customer. One subtle risk in outsourcing engineering is that your product may top out at some point. Undervaluing engineering tends to work in the short-term, but it can lead to longer-term technical debt that is expensive to pay off. Basically, the foundation of your tech platform may be wobbly, and at some point that wobble might give way.

Companies that optimize for sales also run the risk of chasing revenue until they become a services company. Early on, they may look like a high-leverage technology company, but in time their margins might fall. The factor at play here is that the cost of outsourcing technology prototypes is so low early on, your numbers might look like a technology business when really many of your customers are paying for custom builds. If the foundation underneath those custom builds is shaky and built by a team of outsourced engineers (whose incentives were never aligned with the long-term interests of the business), you'll have trouble scaling the platform (and with it the unit economics). Gross margin growth can stagnate as a result, and you may never achieve the high margins that a technology-optimized business can (assuming it gets to market!)

All three of these models work. Not one is a sure winner (or loser). Given just how few resources you have as a small business, and how critical focus is, it's a worthwhile exercise to decide where you are in the stack, and how you want to differentiate. Fundamentally, this is a culture and vision question that should be determined by the founders.

If you optimize for tech you will probably build an introverted company of geeks, with a narrow focus and a clear value proposition.

If you optimize for product, you'll end up with a customer-centric culture and team, a mix of introverts and extroverts, and a big vision that motivates and unites them.

If you optimize for sales, you'll have an extroverted, driven culture that is motivated by revenue growth and signing big new customers.

If you are still in the early days, it's worth having the conversation about what cultural and corporate attributes you are hoping to build, and where on the stack that places you.