Tech Talk: The Summer of Scale

with No Comments
Share to Social:
This summer we tasked ourselves with an aggressive 100 Day Sprint to achieve a record number of goals across teams. Over the course of the sprint, our engineering and product teams worked on the Dharma Platform mobile and web-based application to keep delivering more sustainable, accountable, and higher quality data management, particularly as our partners prepare to scale activities in the coming year.

 

The benefit of being a SaaS platform with dedicated engineering and product teams that not only gather client feedback systematically, but also deliberately evaluate it under client-defined data management outcomes, is that it allows us to develop fit for purpose software. We’ve collaborated with our partners and taken direct user feedback on upcoming designs to target client-specific needs in great detail.

 

Many of these user-defined desired outcomes, like achieving greater scalability, ensuring sustainable data practices, and expanding on current interoperability, are of particular interest for the engineering team as they pose interesting challenges grounded in field needs. 

 

A handful of team members celebrating the successful completion of our 100 Day Sprint of summer 2019.

 

We asked three of our lead engineers to speak about why the technical developments accomplished this summer matter for our clients and what excites them most for product development in Dharma’s impact-first future.

 

Deborah: This summer the mobile team worked on a project to keep Dharma Platform at the forefront of innovative system architecture and infrastructure of Android and iOS data collection applications. The new application architecture leverages React Native, Redux, and Typescript in addition to featuring an extensive unit test suite. This work will improve both the end-user experience and the quality of life for developers by making debugging easier, facilitating faster feature development, and allowing us to use the latest and greatest third-party tools in our codebase going forward. I’m looking forward to leveraging these new architectural upgrades as we push out future UI/UX  updates to our clients quickly and seamlessly.

 

Robel: During the 100-Day Sprint of summer, the Dharma engineering team took on the task of moving away from Google’s Kubernetes Engine and re-architecting all of our environments in Google’s Compute Engine Virtual Machines (VMs).

Architecture: Environment management can often be a maze. To align our strategy on efficient scaling, we have updated our release and Continuous Integration/Continuous Delivery (CI/CD) process. As a result, our environments are now deliberate, with all instances behind load balancers readily and easily scalable, provisioned with redundancies and failovers. We are able to size the instances behind all of our services individually, informed by usage and performance metrics.

Security: This work had the additional benefit of updating our product security to conform to TLS 1.2 standards, which was not an offering on Kubernetes.

Deployments: With this undertaking, we simultaneously updated our deployment processes to use Ansible’s Playbooks, which affords us the flexibility to appropriately configure all our environments, as well as run relevant tests, during deployment.

 

Vinny: The Dharma engineering team accomplished so much this summer. In my favorite project, deemed “performance at scale,” we completely overhauled some of our most important backend architecture to ensure the system could receive and process millions of records quickly. Because our customers are growing, we needed to ensure that they have a seamless experience as they scale. Completing this project means that we are confidently prepared to handle incredibly large amounts of data at scale. I’m excited to continue building on top of this framework, which will allow us to start working on other challenges that offline data management at scale promises to deliver, including case management and mesh networking at scale.

 

As our customers grow, performance, scalability, data security, reliability, and ease of use remain the foundational principles that Dharma’s engineering team places at the core of their software development. Every upgrade is specifically chosen to support the sensitive, impactful work carried out by our clients across sectors and the globe as they look to fulfill their impact outcomes. The goal remains to make people’s lives easier and to drive impact through reliable, actionable data. 

Share to Social: