Custom Enterprise Software Development for a Cybersecurity Client: How We Helped Them Scale Without Compromising Quality

Working on custom enterprise software development for this cybersecurity client meant streamlining business processes, improving the infrastructure, and fixing bugs. Here’s how we did it!

Sharing is caring!

by Matias Emiliano Alvarez Duran

11/16/2022

If your minimum viable product (MVP) solves a market need, demand can quickly increase. Your software will end up having to analyze a lot more information than it was initially designed for.

And even if your development team continuously works on fixing bugs, if your MVP wasn't designed for scale, they’ll soon be overworked and won’t have time to fix the root cause of your problem. 

At NaNLABS, we see this come up for many companies in need of custom enterprise software development—and this cyber security client was no exception. They needed us to help them improve their software infrastructure, fix bugs, automate ineffective workflows, and develop new features. 

Here’s the story of a cybersecurity client that needed to scale, and how NaNLABS helped overcome their challenges throughout a long-lasting, collaborative relationship.

Table of contents

Ready to build your own custom software with a team that cares about you and your processes? We’re not code monkeys, we care about you. 

The client: A cybersecurity company with a need to scale

This client is a pioneer in enterprise internet of things (IoT) device security.It’s a Device Context startup that launched an IoT risk assessment platform to scan radio and networks to uncover all types of unmanaged devices. The platform analyzes a large amount of data to detect, prevent, and remediate security issues.

This client focuses on applying Zero Trust principles (ensuring everyone is authenticated, authorized, and continuously validated) to the IoT. Companies like this one ensure all of the data they gather is secured and has been previously authorized.

"
“Our top priority is the stability of our cloud and performance,” shared the Director of Cloud and Site Reliability Engineering (SRE). “That will lead us to improve the performance of our customers, and ultimately, have a better customer experience.”

They needed to stabilize the platform, fix bugs, and make architectural changes for scaling. 

Enter, NaNLABS: A long-term partner in software development

In 2018, NaNLABS came on the project as an augmented team of software developers. We supported the client’s in-house technical team to identify and develop solutions to optimize the platform foundations. 

This client chose to work with NaNLABS for four reasons:

  1. We came highly recommended. Some of the principal engineers that were working in-house had already worked with NaNLABS in the past and recommended us for the job. 

  2. We were familiar with the industry. We’ve worked with several cybersecurity companies in the past and were familiar with the nitty-gritty details of security SaaS enterprise applications like this one.  

  3. We had strong UI implementation knowledge. We were looking to develop the UI and needed someone who was familiar with those technologies,” explained the company’s Director of Cloud and SRE. “NaNLABS was the most competent in that area in terms of knowledge and skill.” 

  4. We would act as part of its in-house team. We told the client that we’d collaborate throughout the process with them and invite them to our Agile ceremonies. We always act as development partners, coming up with ideas and solutions instead of just taking the assignment and disappearing until the work is done.

The brief: Scaling up and increasing features

This company needed to make adjustments to the software foundations to support growth. It also needed the NaNLABS augmented team to:

  • Identify code inefficiencies and automate manual work

  • Reduce bugs and improve QA

  • Adjust the architecture to support larger data processing and growth

  • Quickly develop new features to improve UI/UX

  • Be knowledgeable in the technology the company was already using:

    • Frontend: JavaScript, ReactJS, Redux, Highcharts, D3.js

    • Backend: Python, AWS Lambda, Elasticsearch, Kafka, Apache Spark

  • Transform the platform into enterprise-level software 

The challenges: Software bugs and rough user experience

Usually, when we work with clients (like Amalgam) on enterprise application development, the challenge is keeping the platform running while improving its foundations. That’s because enterprise software needs to keep evolving, supporting a large number of concurrent users and handling large volumes of data. This time, the client also needed to:

1. Reduce time-to-market. The client had daily customer feature requests but wasn’t able to meet the deadlines—because the software application had so many technical issues negatively impacting development velocity.

2. Get more hands on deck. This team had too many things on their plates and not enough time to do them.

"
“They were A/B testing some new features but needed to show results soon, while at the same time doing maintenance tasks and improving software quality,” said Esteban D’Amico, Co-Founder and Head of Engineering at NaNLABS.

3. Streamline workflows. The client didn’t have the capacity to improve workflows, plan ahead, fix bugs, and develop new features. The dev team needed help implementing Agile processes and implementing roadmaps.

Quickly adopting Agile methods 

When NaNLABS came onto the scene, we focused on helping the client to adopt Agile methodologies, improving efficiency and velocity. Together, we faced a few more challenges:

  • The existing development process was limiting velocity and delaying time to market. 

  • The source code wasn’t developed following best practices like continuous integration. It was also highly coupled and didn’t have any testing or quality assurance (QA) controls.

  • The internal software engineering team was working in silos and had no processes in place or team guidelines to follow.

  • There were no Agile practices in place which made it hard to plan and manage the project. So, developers end up working last-minute on issues that could’ve been avoided by improving the development lifecycle.

  • Servers and infrastructure were not cost-optimized, so our client was spending unnecessary extra money.

The solution: Upgrading the full stack platform

Our client appreciated that we worked closely to identify and analyze various solutions to their challenges. In four years, NaNLABS proposed and implemented:

  1. A UI/UX Design System in the front end using the atomic design methodology to reuse components from these five stages: atoms, molecules, organisms, templates, and pages.

  2. A deep linking method to simplify the user experience (UX) and make it easier for users to navigate the app.

  3. The use of Google Analytics, ElasticSearch, and MongoDB to update the way the software application uses, analyzes, stores, and migrates data.

  4. An upgraded full-stack platform with new core features like:

    1. Anomaly remediation to improve time to market

    2. Multivendor serverless integration to reduce infrastructure costs

    3. Dynamic real-time queries support, increasing team velocity

  5. A complete UI revamp using React JS & Redux, building custom data visualization components to create scalable enterprise-level software

  6. Agile processes for better project management and high-quality software development. For example, we implemented continuous integration to build and test the code in different environments.

Tools and technologies used

Our dedicated team of developers used the following tools and technologies to help the client reach their goals: 

Front-end 

  • ReactJS & Redux to build custom data visualization components for the UI and migrate the front end to the latest ReactJS version. 

  • HighCharts to introduce complex data visualization charts. 

  • D3.js to introduce more advanced data visualization charts that needed additional customization. 

  • Storybook to define reusable UI components and develop highly cohesive code that was easier to maintain. 

Back

  • Python packages to work with multiple backend services and update general features.

  • Golang and NodeJS for API unification. 

  • MongoDB for searching databases.

  • Elasticsearch to use as a raw report storage system.

  • Kafka to unify data-flow communication.

  • Apache Spark to aggregate raw data.

  • AWS Lambda to implement a serverless framework.

The results: A streamlined platform that got acquired by an industry leader

By the end of our four-year relationship, the client achieved some exciting milestones. Here’s what they did:

1. Increased the quality of the code by rebuilding entire modules and reducing 50-60%  (backend-frontend) technical debt on legacy code through unit testing. This helped the platform get acquired by an industry-leading cybersecurity company.

2. Increased development experience and team velocity by introducing Agile practices like:

A. Code syntax analysis

B. Code static validations

C. Continuous integration

D. Pull request processes

E. Automated deployments

F. Team ownership

And incorporating Agile ceremonies such as:

A. Sprint planning meetings
B. User story estimations
C. Monthly retrospectives as part of Agile continuous improvement

3. Reduced the time spent debugging by 3x. The client also improved local environment provisioning by migrating deployment to Docker & Docker Compose lightweight containers and unifying the experience across environments. 

4. Migrated most async processes to a serverless infrastructure which helped reduce infrastructure costs.

Of course, our developers were thrilled to help this client reach enterprise software success. But the most exciting result for NaNLABS is that we built a dynamic and long-lasting relationship with the client, which has continued beyond the initial scope of the project. We can’t wait to see where they go next!

Is your in-house team ready to build an enterprise solution? 

You should consider hiring an Agile software development team to collaborate with your in-house developers if: 

  • Your platform has a great market fit and is rapidly growing in users

  • Your development team is already too busy fixing bugs

  • You have ineffective workflows

  • You need to incorporate new functionality but don’t have the capacity 

At NaNLABS, we do custom software development for businesses like yours without it being a black box. That means:

  • You’ll be invited to all of our Agile ceremonies

  • We’ll change our hats to software development consultants whenever we think there’s a better alternative or more efficient way

  • We’ll improve your software quality without affecting operations or taking down the servers.

  • You’ll create a trustworthy and long-term partnership


Ready to build your own custom software with a team that cares about you and your processes? We’re not code monkeys, we care about you. 

Frequently asked questions on custom enterprise software development

  • What are examples of enterprise software?

    Enterprise software is used in multinational and large companies to satisfy and simplify business needs. Some examples of enterprise software are:

    • Customer Relationship Management systems (CRMs) like SalesForce and Hubspot

    • Applicant Tracking Systems (ATS) like BambooHR and Greenhouse

    • Finance and Accounting systems like QuickBooks and Xero

More articles to read

Previous blog post

Enterprise

11/18/2022

How to Use Microservices to Build a More Flexible Enterprise Level Software System

Read the complete article

Next blog post

Enterprise

10/23/2022

How to Build Scalable Enterprise Level Software to Grow Your Business

Read the complete article