Engineering at SinglePlatform

 | 

Featured post by Tristan Fisher
Senior DevOps Engineer at SinglePlatform

image

Business Overview

SinglePlatform is an information management platform that syndicates updates to search engines and other content-aggregating sites. In big-O notation, we seek to turn an O(n) process into an O(1) process for local and national businesses. In practical terms, our goal is to reduce the amount of effort needed to keep a business’s online presence current.

Technology Stack

We’re chiefly a web development shop that’s driven by Python and JavaScript. Our customer-facing website is powered by Django (Python 2.x) with JavaScript (with Angular, jQuery libraries) handling user interactions. For our programmatic consumers, we have a collection of APIs and services that are written in Python, Go, NodeJS, and PHP, but we’re standardizing on using the Flask microframework for Python. Similarly, we think our future is in PostgreSQL, but various NoSQL and MySQL databases are currently working hard for us.

We run all of our servers in AWS, where we use Ansible and Python to drive our systems automation. To keep our operations toolkit small and user-friendly, we’ve extended Ansible and make use of APIs that help us orchestrate server provisioning, alerting on metrics, and more.

image

Engineering Focus

I’m half of the Systems/DevOps team at SinglePlatform and story of the past half-year has been “scalability and stability.” We’ve taken an infrastructure that was built piecemeal over the course of years and re-deployed critical components of it in a programmatic fashion with minimal downtime. To make future improvements attainable, we’ve implemented software-defined networking in private networks on AWS, reduced our number of hard-to-maintain legacy parts, and have written system tools that integrate into our existing toolkit. This is all to say that we’ve increased the resiliency and performance of our systems stack without sacrificing code quality.

Meanwhile, on the customer-facing side of the business, we’ve been working on growing our business by adding features and extending our core platform to support new partnerships. We’ve made a version of our site that’s responsive to be more mobile-friendly, rewritten one of our core APIs from NodeJS to Python, and grown closer as a team as we add a myriad of fixes to our products through pull requests on GitHub. The biggest challenge for us has been time poverty, but we’ve been focusing on our core competences and paying off our technical debt so we can be more creative in the future.

Our near-term goals are auto-scaling infrastructures, programmatic communication of system statuses in terms appropriate for our non-technical departments, further homogenization of our API stack, and adding talented men and women to our engineering team.