Back to resources

Deciding to Build Vs. Leverage

Different Skillsets
Dev Processes
Team Processes

9 August, 2021

Ramayan Tiwari
Ramayan Tiwari

Senior Software Engineer at Netflix

Ramayan Tiwari, Senior Software Engineer at Netflix, shares how to overcome an ever-present engineering dilemma of build vs. leverage by choosing to mix the two -- build parts of the system and leverage the rest.

Problem

As a technical lead, I often faced the dilemma of building a solution from scratch or leveraging existing technology or framework to solve the business problem. Designing and developing platforms, services, and systems is a stimulating experience, and most engineers would love to be part of that experience. At the same time, building something new takes time, comes with various risks, and may not be the best way to solve an immediate business need. Leveraging a solution comes with the risk of potentially being suboptimal and vendor lock-ins.

In my 10+ years-long journey as a software engineer, I had to choose one over the other on multiple occasions. There is also the third choice -- build parts of the system and leverage the rest. What should be the proper structure to think and make this decision? What metric or criteria should be used to assess the feasibility of choices?

Actions taken

The first action I took was to ensure that the available solutions (from open source or vendors) met all the functional requirements of the business. The features were generally specific to the use-cases and I had to be careful about that. For instance, when we evaluated open source solutions and cloud alternatives, we compared them against the elements essential to the business.

Next, I ensured that the solution fitted well for our long-term strategy and scaled well for our business. The proposed system should work within the boundaries of our infrastructure, integrate easily with existing services, and offer the strict SLAs required by the stakeholders.

I then did a holistic analysis of the potential solutions in terms of the overall cost to the business. Operating costs are tricky, as they involve engineering, tooling, cloud, and other integrations required operations and monitoring needs. This is why I decided to connect the dots and tie them together in a comprehensive piece of analysis.

I reviewed the security, privacy, and compliance requirements of the use case to make sure we comply with the contractual and compliance requirements of our customers. GDPR compliance was a must-have feature, so I made sure the solutions are meeting that specifically.

Finally, I took additional care in understanding the support offered by vendors or open-source solutions. We created a few support tickets and evaluated the response times and the time to resolve the issue. I picked the open-source solution that had an active community and provided timely resolutions.

Lessons learned

  • Building an in-house solution with your engineering teams solves your unique problem and is customized to your needs. This could be the most optimal way to solve the problem and provide a competitive advantage to the core business.
  • As a technical lead, you should keep yourself up to date with the latest trends, frameworks, and technologies in your area of expertise. You should frequently reevaluate the architecture, efficiency, and cost of current solutions and evaluate potential changes or upgrades to the system.
  • A deep understanding of the internal tools, platforms and infrastructure, and the partner teams supporting those is critical in recognizing what parts of the system can be leveraged.
  • Prototype potential solutions against known use-cases and evaluate them on a standard set of metrics encompassing all the functional, technical, and strategic requirements.
  • If you choose open-source solutions, pay close attention to the security and privacy aspects of the system and make sure the project has an active community with a quick turnaround on bug fixes and feature requests.

Discover Plato

Scale your coaching effort for your engineering and product teams
Develop yourself to become a stronger engineering / product leader


Related stories

Streamlining Product Processes After a Reorganization

16 May

Snehal Shaha, Lead Technical Program Manager at Momentive (fka SurveyMonkey), details her short-term technical strategy to unify processes among teams following an acquisition.

Acquisition / Integration
Product Team
Product
Building A Team
Leadership
Internal Communication
Collaboration
Reorganization
Strategy
Team Processes
Cross-Functional Collaboration
Snehal Shaha

Snehal Shaha

Senior EPM/TPM at Apple Inc.

How Less Viable Solutions Solve Common Architectural Challenges

13 May

Tom Hill, Engineering Manager at Globality, Inc., describes his decision-making practices when making architectural decisions.

Architecture
Different Skillsets
Conflict Solving
Collaboration
Tom Hill

Tom Hill

Engineering Manager at Torii

Navigating Disagreements When It Comes to Priorities

9 May

Pavel Safarik, Head of Product at ROI Hunter, shares his insights on how to deal with disagreements about prioritization when building a product.

Innovation / Experiment
Product Team
Product
Dev Processes
Conflict Solving
Internal Communication
Collaboration
Convincing
Strategy
Prioritization
Pavel Safarik

Pavel Safarik

Head of Product at ROI Hunter

Preparing For Your First Presentation: The Art of Public Speaking

8 May

Weiyuan Liu shares his insights on public speaking, such as how to prepare for your first presentation.

Different Skillsets
Coaching / Training / Mentorship
Weiyuan Liu

Weiyuan Liu

Director of Engineering at Zillearn

A Look Into the Hiring Pipeline: How to Fine Tune the Interviewing Process

9 May

Sourabh Sahay, Engineering Manager at Meta, discusses how talent acquisition can be made more efficient by refining the hiring processes.

Alignment
Different Skillsets
Building A Team
Hiring
Fairness
Sourabh Sahay

Sourabh Sahay

Engineering Manager at Meta (Facebook, Oculus, & Family of Apps)

You're a great engineer.
Become a great engineering leader.

Plato (platohq.com) is the world's biggest mentorship platform for engineering managers & product managers. We've curated a community of mentors who are the tech industry's best engineering & product leaders from companies like Facebook, Lyft, Slack, Airbnb, Gusto, and more.