Software Developer
Email: greglange@gmail.com
Github: github.com/greglange
Location: San Antonio, Tx
Phone: (210) 887-7207
Erlang
Golang
Python
Ansible
databases: MongoDB, MySQL, PostgreSQL, SQLite
Git, GitHub
Jenkins
queuing: Amazon SQS, RabbitMQ
REST APIs
SQL
storage: Amazon S3, Openstack Swift
virtualization: Docker, Vagrant/VirtualBox
Rackspace (Apr 2005 - Jun 2023 | 18 years 3 months)
At Rackspace I worked these teams:
Descriptions of the major projects I worked on are below.
Cloud Files Dark Data Project
A project to recover disk space being used by objects that the Swift clusters had lost track of
“Dark Data” is what we called data that remained after being deleted by a customer
Written in Python, used bloom filters
The bloom filters allowed us to test if an object was a valid object or not without hitting the Swift API and adding to its request load
The project freed up Terabytes of disk space across four Swift clusters
Cloud Files Log Processing and Delivery
Uploaded a variety of log formats produced by Cloud Files to the Swift clusters that produced them
Cloud files produced four or five different types of logs and many log lines per hour
Delivered two types of logs to customers if requested by uploading the logs into customer’s Swift accounts
Aggregated usage numbers in the logs
Made end of month billing files
Written in Python, used RabbitMQ (and then later transitioned to use Amazon SQS)
Replaced another system that couldn’t scale
Searching uploaded logs was easy using a tool called Swiftly that another team member wrote
CORE
CORE is Rackspace’s run the business application
Written in PHP, Python, JavaScript and used PostgreSQL for its database
Fire Engine
A REST API for network devices at Rackspace
Written in Erlang and used MongoDB for its DB
Used Ansible for provisioning and releases
Used Jenkins for releases and testing and picking a release candidate
Fully automated CI/CD pipeline
Fire Engine Lambda
A project that allowed Fire Engine end points to be satisfied using Python scripts
Network engineers knew python but not Erlang and this let them contribute to Fire Engine development
I wrote the python module that allowed communication betwen Fire Engine and the Python scripts
I wrote much of the documentation
I worked with network engineers to help them get started using Lambda
I modified Fire Engine end points to work with Lambda
Preconfig
A Rackspace system for getting network devices read to be racked and used by customers
Written in Python
To use Preconfig, data center operations people only had to place a network device in a Preconfig station
Once Preconfig detected a device in a station, it would wipe it, install the latest software for the device, and set passwords and configs to make the device ready to be racked
Preconfig had a web interface that displayed progress and then success or failure (with failure reason) for devices in the station
Rackspace Bandwidth Moniotring System
This project measured bandwidth usage by customers across all of Rackspace’s data centers
Written in Python and used MySQL for a database
Bandwidth was measured by hitting switches with SNMP every five minutes and storing the value of counters the devices provided
This project made a monthly billing report
This project made bandwidth graphs customers could view
I worked on this project two separate times while at Rackspace and I made substantial improvements to it
Swift
The OpenStack object storage project
Design based on Amazon’s Dynamo
Written in Python and Golang, used SQLite for a database
Swift is a REST API and a cloud project
Swift uses consistent hashing to determine which servers handle which accounts, containers, and objects
I joined the project towards the end of initial development
Swift Functional Tests
I wrote most of the first suite of functional tests for Swift
Tests were written in Python
Swift Performance Testing
Before launch, I performance Swift under different scenarios
This testing lead to recommendations to customers for how to best use Swift
This testing showed that Swift scaled better than a previous version of Cloud Files