About Me
Hi, I'm Brad. 👋
I'm a Software Engineer, focusing on buzz words: scaling 📈 , performance 📊 , reliability 💪 , automation 🤖. Production Engineering, Site Reliability Engineering, Software Platform, Systems Engineering are other terms for the type of work I'm interested in. I enjoy getting to know systems and expanding them to meet demands, while also trying to simplify operations with high uptime.
In the future, I'd like to manage a team and grow those with whom I work.
Participating in the development, crucial conversations, and success of others is worthwhile necessary for a healthy organization. (It's also gratifying and builds character. Win-win. 🏆)
Work Experience
Software Engineer, Site Reliability
Software Platform organization provides the infrastructure for our products and ensures developer velocity and system stability. Our work spans multiple areas including architecture, the software development lifecycle, cloud infrastructure, networking, online data processing, reliability and more.
- Target the highest profile problems within engineering at Robinhood, work to deliver a solution in a highly accelerated way with a repeatable, reusable pattern, template or framework for teams going forward facing similar problems.
- Identify high impact classes of problems and design and implement general solutions with high return on investment.
- Provide mentorship both formally and informally to engineers at Robinhood, define and formalize the architecture design process and guide the overall architectural direction.
- Provide infrastructure and tooling to automate test development and execution up and down the testing pyramid, including unit, API and integration testing.
- Provide the infrastructure to automate and standardize how software is built, versioned and deployed to target environments.
- Accelerate Kubernetes Adoption, provide compute, network, storage plus abstractions to interface with PAAS frameworks to automate, standardize and abstract common infrastructure.
- Transition the organization to an immutable, container-based infrastructure on Kubernetes via a self-service platform-as-a-service that enables engineers to generate, deploy and operate fully functional microservice stacks.
- Provide scalable, robust software and infrastructure for DAG workflows.
- Provide a best in industry messaging platform with schema enforcement, exactly once delivery, pub-sub and more.
Technologies used:
- Python
- Go
- Kubernetes
- Kafka
- AWS
- GCP
- NGINX
- Consul
- Postgres
Production Engineer
Hybrid software and systems engineering to ensure Facebook's capacity, growth, and smooth service operation. Embedded in infrastructure and product teams, participating in every engineering effort.
- Own back-end services like our Hadoop data warehouses, front-end services like Chat and Newsfeed, infrastructure components like our Memcache infrastructure, and everything in between.
- Write and review code, develop documentation and capacity plans, and debug the hardest problems, live, on some of the largest and most complex systems in the world.
- Together with engineering teams, share an on-call rotation and be an escalation contact for service incidents.
- Partnered alongside the best engineers in the industry on the coolest stuff around, the code and systems worked on will be in production and used by millions of users all around the world.
Technologies used:
- Hack
- PHP
- Python
- Configerator
- Tupperware
- Proxygen
- Web Reliability
- Messaging
- CDN
- Chef
DevOps Systems Engineer
Built highly availble networking stack for microservices with HAProxy and NGINX. Migrated services from co-location to AWS. General and proprietary administration, maintenance, and development of Linux and Windows systems.
- Network maintenance and architecture planning involvement.
- Deploying, maintaining, and supporting high-availability web sites.
- Installing / Configuring / Troubleshooting / Optimization of Apache Tomcat, Apache, MySQL and other applications in production and test environments.
- Contribute to development and maintenance of internal monitoring and alerting environment.
- General administration and backup of MySQL databases and replication nodes.
- Troubleshooting of difficult technical problems escalated from quality assurance or customer support.
- Planning and performing software upgrades on production platforms, new-infrastructure build outs, and managing tool sets used to guarantee uptime and consistency.
- Constantly provide feedback to the team regarding system and process/procedure efficiencies that can be added into the system for smoother and more reliable operation.
- Continual contribution to improve practices, documentation, and standards for the group benefit.
- Participation in 24/7/365 notification, problem escalation, and resolution processes.
Technologies used:
- Python
- Perl
- NGINX
- HAProxy
- Jinja
- Puppet
- VMware
- MySQL
- AWS
- Orchestration
Adjunct Instructor; Teaching Assistant
Invited to co-teach sections of Master's-level coures: IS6640 - Networking and Services, IS6615 - Data Structures and Java. Implemented NETLAB+ virtual lab platform.
- Teach sections of core competency 4-hour night classes using existing materials, supplemented by selected texts and exercises found or self-created.
- Adapt teaching style to match needs of students, often meeting outside of class hours to assist in 1:1 or 1:few learning.
- Support NETLAB+ virtualization environment, developed 3rd party API to automate and scale to 1,000+ users and 1,200+ machines.
- Attend 4-hour night classes 2 times per week, assisting with NETLAB+ platform and content, as well as miscellaneous requirements from instructors.
- Review and grade coursework from students throughout the semester, and dogfood exams for accuracy and errors.
Technologies used:
- CCNA
- Microsoft
- Windows Server
- NETLAB+
- VMware
- SAN
- Bash
- Java
- Canvas
Technology Systems Specialist; Technology Support
Planning, implementation, and support of technology systems. Ranging from network and wireless infrastructure, to network services (Open/Active Directory, DHCP, DNS, MySQL, Tomcat, Apache, CUPS, etc.), to client-side support and to Mobile Device Management.
- First point of contact for technology at the McCarthey and Lincoln campuses, supporting ~200 staff and faculty, and ~500 students.
- Planning, implementation, and maintenance of JAMF's Jamf Pro (formerly Casper Suite) on-site installation.
- Manage 1,300+ devices, ranging from production Xserves, Mac Minis, iMac and iPad labs, to student and faculty laptops.
- Create and maintain 200+ common software packages for deployment, including OS updates and preferences, enforcing standards on 100% of equipment.
- Migration of physical hosts and services to virtual machines.
Technologies used:
- macOS
- iOS
- JAMF
- JAMF Pro
- Casper Suite
- MDM
- VMware
Education
-
MS - Information SystemsUniversity of Utah2012 - 2014
-
BS - Computer ScienceUniversity of Utah2009 - 2012
Languages
- Bash
- English
- Hack
- Java
- Jinja
- MySQL
- Node.js
- Perl
- PHP
- Python
- Ruby
- Spanish
Skills & Tools
- Apache (
httpd
) - AWS
- CCNA
- Docker
- GCP
- Git
- Mercurial
- HAProxy
- HHVM
- Linux
- NGINX
- pfSense
- Unifi
- VirtualBox
- VSCode
Interests
-
Lacrosse4-year lettering, Team Utah, officiating at college, high school, and youth levels. (NILOA, NCLRA, NCJLA)
-
SnowboardingPowder, groomers, terrain, even moguls -- I like it all. Get me to the top of the mountain where lift lines are short and runs are double black.
-
AnimalsWhen I look into the eyes of an animal, I do not see an animal. I see a living being. I see a friend. I feel a soul.
- Anthony Douglas Williams
-
Home Networking & AutomationFrom software-defined networking, to dynamic DNS, and to Dockerized applications, automating and testing services is a pastime.
-
GamingI used to play a lot of video games, but then I took an arrow to the knee.
-
ComputingHigh-performance, embedded, do-it-yourself, security, penetration testing, academic, theory.
-
MathematicsDid you know is surprisingly close to pi? This and other riveting math facts featured at Numberphile.
-
Teaching
If you want to know something, read about it.
If you really want to understand it, teach it.