Brad Beattie
- bradbeattie@gmail.com
- bradbeattie.com
- Vancouver, Canada
I’m a full-stack developer with 20+ years of professional experience spanning a variety of languages, frameworks, industries, scales, and methodologies. The majority of my recent work has been in platform engineeering and build automation.
While I think of myself as primarily interested in technology, I’ve also lead teams, mentored developers, and interfaced directly with external clients.
Work Experience
Senior Services Engineer
It was a lifelong dream to work in the video games industry and I’ve been thrilled to have had the opportunity through Phoenix Labs.
- Platform engineering: Developed tools to accelerate application development with a variety of underlying technologies including development in Python, Hatch, Copier, FastAPI, Typer, Docker, GitHub actions, and VSCode extensions
- Build automation: Designed and implemented a wide variety of REST API microservices including large binary storage, retention policy execution, symbolication, microservices JWT authentication (via Okta), knowledge graphs, and build farm orchestration
- Process automation: Automated business workflows with custom Slack chatbots interfacing with ChatGPT and Jira, SaaS account auditing through a wide variety of remote APIs (Discord, BambooHR, Miro, Confluence, etc), and Unreal localization automation (Python, Gridly, Unreal)
- Observability: Decoupled application from observability backends by way of OpenTelemetry collectors deployed to Kubernetes via Helm, implemented dozens of Prometheus metrics endpoints for applications that didn’t expose telemetry, and built a variety of Grafana dashboards to surface infrastructure usage patterns
Technical Team Lead
- Technical merger: Facilitated the merging of tools and data between Gossamer Threads and Carbon60 Networks through requirements gathering, systems analysis, and data migration scripting
- Team leadership: Managed a team of software developers, coordinated standups and one-on-ones, provided mentoring to junior and intermediate developers, and ran technical interviews
- Risk analysis: Identified single-points-of-failure in both systems and personnel, and took steps to add appropriate redundancy through hiring new staff, cross-training skills, introducing CI/CD, and converting legacy applications into Docker images
Lead Integration Engineer
My tenure at Gossamer Threads spanned 12 years, during which my responsibilities shifted from custom third-party development into internal systems integration. My focus was on building internal tools and integrating systems to eliminate pain-points for others in the organization.
- Systems integration engineering: Greatly reduced interdepartmental confusion by designing and implementing a centralized CMDB with Django REST API, Vue.js, and Redis PubSub; Identified, consolidated, and integrated redundant legacy systems into this infrastructure
- Process integrity automation: Exposed process integrity issues by formalizing and codifying business practices, empowering sysadmins and sales reps to proactively reach out to clients before issues became critical, such as domain expiration, unusually frequent VMware VM migrations, or published CVEs relevant to user-installed software
- Billing pipeline: Resolved the services/billing gap by automating the detection of all services across 2000+ hosts and reconciling it against the known contract information, generating on-the-fly invoices with metered and custom-agreement services
- Monitoring: Built a monitoring/rendering/IPAM system and reduced total polling time of hosted servers and domains in local and remote datacenters from 200s to 3s with a multithreaded Django-based SNMP/RRD polling system, giving the sysadmins fine-grained access for troubleshooting, and generating alerts for classified issues
- Datacenter management: Modernized the internal datacenter records by building a WYSIWYG DCIM interface, capable of heterogeneous network topology detection and client-accessible live traffic flow diagrams
- Backup access: Provided clients with access to their VMware partition snapshots by building a browsable web front-end, integrating with both VMware API and file-system introspected NetApp snapshots
- TLS automation: Integrated Let’s Encrypt into the internal system architecture, enabling automatic certificate regeneration
- Lead tracking: Developed an email-integrated CRM tool, providing sales a system in which they could track their leads, manage client records, and generate predictive reports
- Third party consulting: Facilitated client-facing feasibility assessments and business needs investigations, culminating in iterative rounds of design, feedback, development, and testing on dozens of projects
Senior Software Developer
Assessed feasibility and longevity of potential RIA ecosystems for future development, designed tool workflow in UML state and activity diagrams, and implemented them in Adobe Flex with a corresponding back-end server for remote saving, loading and publishing
Test Automation Engineer
Automated repetitive testing efforts and managed the defect tracking software
Software Developer
Implemented iterative changes to the company’s premium finance software using J2EE, JSP, JBoss and PostGreSQL
Projects
This was my first exploration into Python development and an experiment in interface design for voting systems. I’m particularly proud of the conversion of a complex algorithm (Schulze STV) into a relatively readable Python script.
Continuing the theme of collective decision making, this site was built to help make consensus-building easier by reducing the scope of decisions for those with large boardgame collections. It ended up being a fairly nuanced dive into remote API caching, performance optimization, and recommendation systems.
This site was an exploration of Vue.js and reactive JavaScript interfaces. Like ModernBallots.com, SortMatch.ca tries to demonstrate that more complex collective decision algorithms (in this case Glicko2) can be made user-friendly.
I build this site to help parents pick the name for their child, and as another opportunity to explore complex algorithms behind streamlined interfaces. It focuses on mobile-first design using a Vuetify front-end and a separate Django REST API backend.