F. Grahame Murray
Raleigh, NC
27608
Last Updated: Thursday, February 06, 2025.
Visit https://grahame.com/resume for the most current version, available in
HTML, PDF, Word, plain-text versions, or
https://github.com/gusnuf/resume to see the code that created this resume.
Skilled Senior Principal Software Engineer with 20+ years of experience in designing and building enterprise architectures, leading engineering teams, and evangelizing innovative solutions. Proficient in DevOps, cloud computing, and various programming languages. Proven expertise in managing complex systems and driving business outcomes through technology.
- 20+ years software development, design, and operations experience
- A highly curious generalist
- Product development and consulting experience
- Depth in language, educational, and community projects
Distinguished Engineer,
November 2024 - February 2025
Digital Experience, ShareFile, Engineering | Progress Software | Raleigh, NC |
- Progress Software bought ShareFile from CSG
- Helped with transition, cross training, and writing documentation
| PROJECTS:
+ Transition
| |
|
|
Senior Principal Software Engineer,
August 2022 - October 2024
ShareFile, Solution Platform, Engineering | Cloud Software Group | Raleigh, NC |
- Started at Citrix but they were soon acquired by CSG
- Evaluated and selected Integration PAAS vendor
- Designed a new enterprise architecture for ShareFile
- Built system-wide event bus using DAPR, Kafka, and Cloud Events that triggers Domino Workflows
- Architected several systems such as Integrations, Information Intake, Data Tables
- Permanent member of architecture boards and committees
- Evangelized enterprise architecture within Solution Platform domain and across all of Engineering
| PROJECTS:
+ Enterprise Architecture
+ Integrations
+ Event Bus
+ Information Intake
+ User-Defined Data Tables
| |
|
|
Director - Lead Engineer,
May 2020 - August 2022
CTO, Cloud Services, Core Engineering | Deutsche Bank | Cary, NC |
- Completed Global Enterprise Engineer program to be in the top 5% of the bank's engineers
- Created and led a multi-region engineering team to build and operate a GCP Control Plane
- Designed Landing Zone platform to enable end users to safely self-service GCP infrastructure using GitHub and Terraform Enterprise
- Architected mechanisms to allow the platform to be safely extended by the community
- Delivered Landing Zones to 250+ application and infrastructure teams
- Constructed standardized Terraform module authoring framework
- Regularized GCP organization management via Terraform Infrastructure as Code
- Evangelized the platform across the bank by producing documentation, training, communities of practice, and events
| PROJECTS:
+ GCP Control Plane
+ Landing Zones
+ Module Authoring Framework
| |
|
|
Vice President - Lead Engineer,
February 2019 - May 2020
Global Transaction Banking, Digital Office, Data Platform | Deutsche Bank | Cary, NC |
- Created a Data Platform out of native Azure components, namely Databricks, DataLake, SQL DataWarehouse, EventHub, Monitor, and AzureML
- Automated and orchestrated Data Platform using Azure DevOps, Terraform, Docker, and Ansible
- Evaluated Cloud Custodian in Azure
| PROJECTS:
+ GTB Data Platform
| |
|
|
Senior Principal Software Engineer,
September 2016 - February 2019
Automotive division, Cloud Reliability Engineering, Infrastructure team | Nuance Communications | Raleigh, NC |
- Swype's Connect Operations team moved to the hosting group for the Mobile division, which later became to the new Automotive division
- Remained in 1st tier on-call rotation for Swype Connect
- Implemented Foreman for system management and provisioning of bare metal, ESX, and Azure instances
- Deployed infrastructure world-wide in Azure using purpose-built and reusable Terraform modules
- Integrated Katello for management of system and application content across all datacenters
- Rolled out FreeIPA to centrally manage SSL certificates, Kerberos, DNS, system auth (sssd), and application auth
- Designed and built proof-of-concept multi-tenant compute platform using Mesos, Marathon, Consul, Calico, HAProxy and Docker to support auto-scaling and blue-green deployments of microservices
- Architected a solution to provide applications and systems "Visibility" for our customers using ELK for logs, Graphite for metrics, and Sensu for alerts
- Built and maintained centralized, per-datacenter, secure, multi-tenant, ELK-stack clusters for "Visibility" using Elasticsearch, Kibana, Logstash, ElastAlert, and ReadonlyREST
- Created go app that generated Sensu checks for services running inside Kubernetes, querying API for services annotated with configmaps that describe alert thresholds
- Deployed Jenkins 2.0 integrated with GitLab for CICD. Built shared pipelines (as code) to build all our RPMs, Docker images, and Puppet modules
- Made and/or used rspec-tested Puppet 4 modules to deploy all of the above
- Authored Puppet 4 "base" system module to manage all fundamental aspects of our systems, including: puppet, mco, auth, sshd, time, osquery, limits, firewall, auditd, packages, sysctl, monitoring, logs, SELinux, DNS, and metrics
- Used Packer to bake Azure images for faster provisioning
- Setup a CI/CD pipeline to package each customer's "visibility" configurations (Kibana dashboards, Logstash configs, ElastAlert rules, and Grafana dashboards) and install them on the appropriate clusters
- Documented our platforms and stacks, evangelized them to our customers, and assisted with customer on-boarding
| PROJECTS:
+ Mobile Compute Platform
+ Mobile "Visibility" stack
+ Mobile Shared and Core Services
+ Jenkins 2.0 CI/CD pipelines
+ Kubernetes Sensu Checks
+ Swype Connect
| |
|
|
Principal Software Engineer,
January 2012 - September 2016
Mobile division, TextIO R&D, Connect Operations team | Nuance Communications | Durham, NC |
- Swype was acquired by Nuance!
- Continued the development and improvement of the Swype Connect API, with the main focus on performance, allowing us to scale to hundreds of millions users
- Improved visibility of our connected services, using Graphite, statsd, collectd, Grafana, Kibana, and SNMP, giving us insight and trending data into how our application is performing and being used
- Switched from EC2 Auto-Scale to a Puppet managed, but manually scaled system
- Migrated SwypeConnect from AWS to an in-house, managed ESX cluster
- Used Hadoop and Pig to mine Cassandra for application usage and trend data
- Built second API in Go, wrapping core business logic written in C, to support real-time predictions in the cloud
- Assumed responsibility of legacy Java/Spring language database management system
- Built server support for on-device storefront
- Deployed and support applications in Chinese datacenters
| PROJECTS:
+ Swype Connect
+ Language Lab
| |
|
|
Senior Systems Engineer,
June 2011 - December 2011
Engineering, Connect Operations team | Swype | Durham, NC |
- Came on board to lead the effort of building a high-scale web-service to support tens of millions of mobile transactions per day, to enhance phones using the Swype keyboard
- Built a multi-datacenter, geographically redundant, Python/WSGI web-service to support millions of write-heavy requests per day, backed by a similarly redundant Cassandra cluster
- Hosted in Amazon Web Services, for ease of build-out and managed infrastructure, utilizing EC2, AutoScale, CloudFront, CloudWatch, S3, Route53, RDS, ElasticCache
- Used EC2 auto-scaling to ensure a timely response to customer demands
- Built a true DevOps team, using PagerDuty, Nagios, Graylog, SyslogNG, and EC2, plus our stateless custom web service that we both developed and operated in Production
| PROJECTS:
+ Swype Connect
| |
|
|
Principal Software Engineer,
September 2002 - June 2011
Engineering team | BBH Media | Raleigh, NC |
- Architected and developed and new website platform; moving all high-volume sites into a centralized, load-balanced, three-tier, standardized codebase using jQuery, PHP on Zend Framework, SOAP, JPA, EJB3, MySQL, and Lucene
- Built a web-service-exposed, JEE middleware to power customer self-service and management portal using JPA, EJB3, SOAP, and MySQL
- Architected, designed, and developed a scalable, clustered, high-availability, J2EE-based content authoring and management system using JBoss, Hibernate, JSP2, XSLT, and SQL Server
- Designed, optimized, and normalized all major business systems' database schemas
- Developed custom content management system using JBoss, EJB, Struts, Velocity, JSP, JSTL, and PostgreSQL
- Made heavy use of DHTML and JavaScript for both front-facing and internal applications, including remote scripting and AJAX
- Built and extended a custom PHP-based CMS system for e-zine publication
- Wrote functional, integration, and unit tests
- Administered CruiseControl and Hudson continuous integration and build systems
- Mentored junior and new engineering hires
- Documented requirements for outsourced projects
- Designed and built internal web applications to automate internal business functions, such as content publishing, indexing, and search
- Built international, multi-currency money management system, including automated thirty-party import and international credit card processing
- Created and maintained PHP and PERL scripts for website management and content validation
- Ported and rewrote legacy PERL scripts with more robust PHP scripts, also adding new site features such as pagination
- De facto and acting Linux, BSD, and Windows system administrator
| PROJECTS:
+ Redesign of websites using Zend Framework
+ JEE(J2EE) Content Management System
+ PHP Electronic Zine CMS
+ Multi-currency Payment Processing System
+ Public PHP & PERL scripts
| |
|
|
Lead Engineer,
May 2002 - September 2002
Internal Support, Developer Web Services | Sun Microsystems | Menlo Park, CA |
- Led engineering effort for devCK, Developer Community Knowledge project
- Main developer for reimplementation of JCP site, tasks included:
- Redesigning the entire DB schema, as well as creating object-relational mapping
- Porting and upgrading the administrative site from old Vignette TCL to the new Java platform
- Rebuilding the public website from JSP (Model 2) site to MVC, as well as using the new data model
| PROJECTS:
+ Java Community Process
+ Developer Community Knowledge
| |
|
|
Java Engineer,
September 2001 - January 2002
Systems Engineering team | James Irvine Foundation | San Francisco, CA |
- Independently contracted with the James Irvine Foundation to complete Coral Connect project.
- Designed and implemented message boards, file storage, address book, and other interactive services of the project using Arsdigita Community System, XML, XSL, and Oracle 8i.
- Configured qmail, Courier IMAP, JWMA Web mail, and ACS for Java on Solaris 2.8 for custom integrated webmail feature.
| PROJECTS:
+ Coral Connect
| |
|
|
Java Systems Engineer,
March 2001 - September 2001
Systems Engineering team | Liquid Thinking | San Francisco, CA |
- Designed and implemented binary parsing, scoring, and other educational algorithms for an interactive educational product using Rational Rose and ATG Dynamo 4.5.
- Architected and designed file system integration for intranet using Arsdigita Community System 4.6, XML, and XSL.
- Implemented product family parametric search for Cypress Semiconductor using JavaScript, PERL, and ColdFusion.
- Led Quality Assurance effort for Certicom site redesign using Logigear TrackGear.
- Began work on CoralConnect but entire team was then down-sized (finished at subsequent position with James Irvine Foundation)
| PROJECTS:
+ Leap Track
+ Cypress Semiconductor
+ Certicom
+ Coral Connect
| |
|
|
Software Engineer,
June 1999 - February 2001
Policy division, Center for Technology in Learning | SRI International | Menlo Park, CA |
- Architected and implemented many web applications, online surveys, and web assessments using Java Servlets, JSPs, XML, and MySQL databases.
- Designed and coded various reusable frameworks, from survey tools to database abstraction layers.
- Co-developed and designed ChemSense, a Java-based Knowledge Building Environment for high-school chemistry students.
- Built CILT Knowledge Network and affiliated web sites, and single sign-on framework in Cold Fusion and MySQL on Linux.
- Designed and authored TeamLab, a Palm Pilot-based open-ended assessment application, desktop conduit, and website that supports off-line data collection and on-line statistical analysis.
- Helped port URLex from Python code to Java.
- Implemented Instructional Metadata IMS Metadata XML Generator tool, on a contract for Sun Microsystems
| PROJECTS:
+ TeamLab
+ ChemSense
+ CILT KN
+ URLex
+ LOM-IMS XML Toolkit
| |
|
|
Computer Languages:
Python, Java, Go (Golang), Javascript, Ruby, JSP & JSTL/EL, Scala, XML, PHP, DHTML & XHTML, Groovy, XSLT & FO/P, PERL, Bash, Velocity, i18n, C & C++, ColdFusion, Lisp, MIPS assembly, InstallShield Script
Databases:
Cassandra, MongoDB, MySQL/Maria, PostgreSQL, MS SQL, Oracle, Solid, FileMaker Pro, mSQL, Access
Platforms:
Kubernetes, Mesos, JBoss, Tomcat, Zend Framework, Spring, Resin, ColdFusion, Vignette, ATG Dynamo, Arsdigita ACS
Tools:
Web Servers: nginx, haproxy, uWSGI, gunicorn, Apache
Provisioning: Terraform Enterprise, Foreman, Cobbler, Terraform, Packer, AWS CloudFormation, Azure Templates
Container: Docker, Mesos, Kubernetes, Marathon
Virtual Network: Calico, istio, Flannel, Weave, OpenVSwitch
Service Discovery: Consul, Zookeeper, Etcd, MesosDNS
Configuration Management: Puppet, Ansible, MCollective, Chef
Search: ElasticSearch, Kibana, Logstash, ElastAlert, ReadonlyREST, SOLR, Lucene, Verity
Monitoring: Sensu, Nagios, SNMP, Cacti, SyslogNG
Metrics: Graphite, Prometheus, Carbon, Collectd, Statsd, Bucky
Identity/Auth: FreeIPA, Vault, OpenLDAP, OpenID, OAuth
NoSQL: Cassandra, HBase, MongoDB, CouchDB, Riak
Reporting: Spark, Hadoop, Pig, Hive, Pentaho, Jasper, Crystal Reports
Messaging: RabbitMQ, ActiveMQ, JBossMQ, JBoss Messaging
IDE: IntelliJ IDEA, PyCharm, Eclipse, NetBeans, Xcode, Visual Studio, CodeWarrior, JBuilder
Modeling: Visio, OmniGraffle, Rational Rose, Visual Paradigm, Poseidon, Argo UML
Version Control: Git, GitHub, GitLab, Subversion, CVS, Perforce, SCCS, RCS
Bug Tracking: JIRA, Bugzilla, Eventum, TrackGear
Web UI: jQuery, YUI
Build: Ant, Jenkins, Travis, Hudson, Cruise Control, Maven, Ivy, Make
Unit Testing: py.test, JUnit, Cobertura, Mockito, EasyMock, JMock, Cactus, TestNG
Performance Testing: JMeter, Apache Benchmark, JProbe
Acceptance Testing: Inspec, rspec, Cucumber, serverspec
Caching: Redis, Memcache, APC, XCache
Web/Integration Testing: Selenium, JProbe
Persistence: Hibernate, JPA, EJB, OJB
MVC: Django, Ember, Angular, Struts, Grails, Spring MVC, Cake PHP, Bebop
Virtualization: AWS, Vagrant, Azure, ESX, VirtualBox, Xen
Text Editor: vi(m), Atom, Emacs
Installer: InstallShield, NSIS
Command Line: GNU tools, Cygwin
IM: Jabberd, Openfire
Aspect Handling: AspectJ, JBossAOP
Disambiguating Drag-and-Drop: The Click-and-Fill alternative to managing hierarchies
I explained my implementation of a new "Drag and Drop" like interface
Published: CHI 2000 Conference Proceedings, April 6, 2000
Workpad + Palm Series Powered Pack 2000 Edition
My software was written up, rated, and included on accompanying CD-ROM
Published: ASCII Corp., March 10, 2000
Workpad + Palm Series Powered Pack
My software was written up, rated, and included on accompanying CD-ROM
Published: ASCII Corp., June 11, 1999
1995 - 2000
Goucher College Towson, MD
BA in Computer Science
Courses in Java, LISP, 3D Graphics, A.I., Assembly, Software Engineering, Algorithms, Hardware Architecture, and Computation
Summers 1994 - 1997
University of Delaware Newark, DE
Graduate & undergraduate courses in C, C++, compiler design, computer graphics, and multimedia design.
Available upon request