Software Engineer with 20 plus years of experience
Email: greglange@gmail.com
Github: github.com/greglange
Location: San Antonio, Tx
Phone: (210) 887-7207
Rackspace (Apr 2005 - Jun 2023 | 18 yrs 3 mos) (Software Developer)
Datacenter Automation Team (DCX)
Cloud Files Team
CORE Team
Foundstone (Sep 2002 - Sep 2004 | 2 yrs 1 mo) (Quality Assurance Engineer)
Tested a network scanning product that looked for threats across the network
Symantec (Jan 2002 - Aug 2002 | 8 mos) (Quality Assurance Engineer)
Tested a security agent that ran on PCs and looked for threats in real time
Tested a project that scanned network traffic looking for threats
Wrote a system for collecting tests results called Redeye
FundsXpress (Feb 2000 - Oct 2001 | 1 yr 9 mos) (Quality Assurance Engineer)
Internet Direct (Aug 1998 - Jan 2000 | 1 yr 6 mos) (Software Developer)
Worked on an ecommerce product
Completed custom programming projects for clients
Erlang
Golang (github repos: gocards | mandlebrot | webnotes)
Python
Ansible
databases: MongoDB, MySQL, PostgreSQL, SQLite
Git, GitHub
Jenkins
queuing: Amazon SQS, RabbitMQ
REST APIs
storage: Amazon S3, Openstack Swift
virtualization: Docker, Vagrant/VirtualBox
Rackspace’s cloud object store product
Developed at Rackspace and became Openstack Swift
I joined the team towards the end of initial development
I wrote most of the tests in the initial set of functional tests for Swift
I designed and implemented the Log Processing System for Cloud Files
I designed and implemented the Dark Data Project for Cloud Files
I performance tested Swift before product launch
A project to recover disk space being used by objects that the Swift clusters had lost track of
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
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 is (was?) Rackspace’s run the business application
Written in PHP, Python, JavaScript and used PostgreSQL for its database
When I first joined the CORE team I was a Quality Assurance Engineer
I wrote [CORE Testing System][#core_testing] to collect test results and to allow manual tests to be tracked and executed
Later I became a developer on CORE and completed many changes
I also worked on the Rackspace Bandwidth Monitoring System while on the CORE team
System for tracking tests and test results
Written in Perl and used MySQL for a database
Allowed manual tests to be entered and run
Collected automated test results
Had a “test trees” feature that allowed tests to be organized into a tree
We used “test trees” to organize tests by which part of CORE was tested
We also used “test trees” to assign tests to people to run
Test results could be viewed in a list format or in a “test tree” format
Network vulnerability scanner written in C++ and Java
I worked as a Quality Assurance Engineer testing this product across multiple version
One version I worked as a developer and I revamped the product’s HTML reports
A REST API for network devices at Rackspace
Written in Erlang and used MongoDB for its DB
Used Ansible for provisioning
Used Jenkins for releases and testing and picking a release candidate
Fully automated CI/CD pipeline
Written in Perl, used MySQL for a database
Allowed small businesses to setup and manage online stores
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
This project measured bandwidth usage 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
A project at Symantec for collecting and displaying test results
Written in Perl and used MySQL for a database
Tests were run on the latest version of the products tested overnight and test results were examined each morning
The OpenStack object storage project
Design based on Amazon’s Dynamo
Written in Python, 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
This was the primary project of the Cloud Files team I was on
I wrote most of the first suite of functional tests for Swift
Tests were written in Python