From Automation to Clean Tooling, Engineers Share Their Tips Toward Achieving Scalability

Top engineers from DISH and InspiringApps share their scalability secrets.

Written by Dana Cassell
Published on Oct. 16, 2023
Brand Studio Logo

Scalability is a challenge for any business, perhaps particularly for companies in the tech sector. In 2015, around half the world’s population had internet access and in 2023, that number has increased to 65 percent of the global population. Companies whose products live online have access to incredible, rapid growth.

All that potential leads to plenty of opportunity for creative problem solving around scalability. As user bases grow, products need to adapt seamlessly to larger contexts. As engineers at InspiringApps told Built In, “addressing scalability is more than just a technical challenge; it’s also a process problem.” 

At InspiringApps, the key to addressing scalability as a process problem is focusing on clean and honest tooling from beginning to end, making sure that processes are clearly outlined and integrated. “It’s not if, it’s when some tool, framework or architecture will fall apart,” said Scott Keller, lead android engineer, stressing the importance of clarity for repair and growth.

Arnold Agcaoili, vice president of systems engineering at DISH, said that since the company is challenging competitors with much longer history in the market, scalability is essential in every aspect of the company’s growth. 

DISH relies on automated processes to make scalability achievable. In order to meet FCC timeline requirements, Agcaoili said, “We developed automated end-to-end processes in-house that allowed us to do this many times faster than any other telecom company in the world.”

Built In Colorado sat down with these engineering leaders to hear more about how they’re approaching scalability challenges from beginning to end.

 

Image of Arnold Agcaoili
Arnold Agcaoili
Vice President of Systems Engineering • DISH, an EchoStar Company

DISH’s business reach encapsulates satellite television services, live-streaming and on-demand programming, mobile plans and products and smart home installation services. 

 

Describe what scalability means to you. Why is scalability important for the technology you're building?

Any technology company that considers growth in their plans will have to consider scalability as an important aspect of any strategy. Scalability, to me, is the ability to accommodate increased demand quickly. 

At DISH Wireless, we are the challenger in the wireless industry, going against the three big incumbents that spent decades building their networks. We're a greenfield network, which means we're building from a clean slate, and we're meeting milestones set by the FCC. Our timeline to do this is a fraction of what it took the incumbents to build their networks. 

All of these factors, among other things, require us to have scalability in everything we do. It is vital for our business, and without it, we will never be successful. 

For example, to meet our FCC mandated timelines, we had to build, integrate and test thousands of sites per month for several months. We developed automated end-to-end processes in-house that allowed us to do this many times faster than any other telecom company in the world. Without scalability, this would not have been possible.

 

How do you build this tech with scalability in mind?

Automation. At DISH, automation is in our DNA. We build our processes and teams with automation in mind all the time. This gives us the agility to thrive in quickly-changing environments and the flexibility to adapt to ever-evolving requirements. Having cloud-native architecture gives us the capability to automate a lot of our processes.

 

DISH
DISH

 

What tools or technologies does your team use to support scalability, and why?

Having a cloud-native network is a big part of our capabilities. Our network is the real convergence of Telecom and IT. 

Traditional hardware-based telecom networks require a manual, hands-on approach to changes, which is expensive and takes time. Our cloud-native, software-based architecture for both Core and Access networks gives us full IT automation capabilities like CI/CD (continuous integration and continuous deployment). 

Having IT automation tools at our disposal allows us to build and make changes at a scale that traditional wireless telecom networks cannot do.

 

Having IT automation tools at our disposal allows us to build and make changes at a scale that traditional wireless telecom networks cannot do.”

 

 

Image of John Sandoval
John Sandoval
Lead Web Engineer • InspiringApps

InspiringApps builds web applications, custom software solutions and other digital products. 

 

Describe what scalability means to you. Why is scalability important for the technology you're building?

According to InspiringApps Lead Web Engineer John Sandoval, scalability is “the ability to grow your system in a targeted way.” Scalability is about setting clear goals and efficiently allocating resources to accommodate different types of traffic, whether it be increasing user capacity, managing more orders, or improving speed and performance.

When it comes to scaling mobile apps, Scott Keller, lead android engineer, describes how we view scalability in three important ways. First, seamlessly incorporating new features into the app. Second, compartmentalizing different components, allowing developers to work independently and collaborate effectively. And third, ensuring maintenance remains manageable over time.

Scalability goes beyond what the end user sees. Addressing scalability is more than just a technical challenge; it’s also “a process problem,” as Will Helling, lead iOS engineer, points out. It involves scaling up capabilities, automating processes, and expanding coding and deployment pipelines. By laying the groundwork for scalability, we can empower our team to focus on what truly matters: problem-solving and innovation.

 

Addressing scalability is more than just a technical challenge; it’s also a process problem.”

 

How do you build this tech with scalability in mind?

In building tech with scalability in mind, our team takes a multifaceted approach. Scott Keller stresses the importance of clean architecture and a reliable codebase through compartmentalization, modularity and consistency—knowing things change and building around that. “On our Android team, we’ve been defining really clear application barriers, for a distinct data layer, domain layer, and then, the application logic. And we have everything completely decoupled,” Scott explained.

Will Helling stresses the importance of making sensible decisions to prevent wasteful rebuilding. “Refactoring is probably one of the biggest enemies of scaling. The second you have to start getting into refactoring things, all the code you may already have written needs to be rebuilt,” he says.

Experience, collaboration, and effective communication are key. “It takes a practiced hand,” shared John, to know when to prioritize certain areas and when it’s best to save others for later. By making informed decisions, we proactively address scalability hurdles, ensuring that our technology can adapt and evolve alongside each client’s business.

 

InspiringApps
InspiringApps

 

What tools or technologies does your team use to support scalability, and why?

We apply a range of approaches, from reactive programming paradigms to the use of data streams in our platforms, including Web, iOS and Android. “There’s the old adage that there’s no silver bullet,” said Scott. “It’s not if, it’s when some tool, framework, or architecture will fall apart.”

The solution? With tooling, we emphasize the importance of maintaining an honest process. We represent as many elements as possible in state to achieve scalability. We use static analysis tools, lint checkers and consistent code formatting to ensure a high-quality code base. We prioritize continuous integration and delivery as well as version control management. And we highly value crash reporting tooling to monitor the user experience in the real world.

As John and Will have pointed out, mock data loaders and APIs, cloud-native platform architecture, and containers and container orchestration are crucial in maintaining scalability.

“The more complex the project, the more important the documentation and tooling we provide,” said Stacy Griffin, director of operations. The end result: supporting our clients with solutions that ensure their applications thrive in a rapidly changing market.

 

Responses have been edited for length and clarity. Images provided by Shutterstock and listed companies