18232 SW Orlov Ct, Aloha, OR 97078
DAT Freight & Analytics, OR Feb 2020 – Present
Software Development Team Lead (2020 – Present)
- Jenkins 2 pipeline maintenance with a focus on deployment on PR merge in a GitOps environment.
- Manage Kubernetes Clusters:
- Flux GitOps based deployment and maintenance from Artifactory registry.
- PromQL based monitoring & alerting via Prometheus AlertManager and Grafana dashboards.
- AWS EKS upgrade automation through Python based CLI.
- xMatters & Slack alerting path through Prometheus alerting integration.
- IAM & Kubernetes RBAC based permissions administration and troubleshooting.
- DevOps, Agile (e.g. SPIDR, INVEST, etc), Lean, and leadership principle advocacy/maximize efforts:
- Observability, monitoring, and alerting, with an emphasis on self-service
- Operationalize throughout the ecosystem w/only a couple steps (e.g. consistent logging levels)
- Shared Understanding:
- Pair & swarming: deployment processes from commit to deployment via operator.
- Showing work via examples of scripts and shell snippets for more rapid understanding.
- Runbook capture and curation of latest learnings.
- Coach others in monitoring before making changes, to understand the impact, end to end, with an eye towards always having some form of back out strategy.
- After hours cross team troubleshooting & alert remediation (e.g. 5xx spikes, outages, log analysis, etc).
- Establish xMatters support rotation for team to remain focused on Kanban prioritized work.
- Establish an engagement model to help empower the on call engineer with rapid remediation measures (e.g. runbooks).
- Set stakeholder expectations based upon engagement model (i.e. what my team owns & operates, responsibility boundaries, rules of engagement, alerting levels & escalation strategy, etc).
- Expectations captured while establishing examples of how to tell when non-on call engineers can jump in to help (i.e. one hour timebox per thread) to facilitate elastic capacity and rapid feedback of self-service (e.g. effectiveness of documentation, alerts, etc).
- Capture & establish an alerting strategy based upon sre.google/sre-book.
- Lead by example (e.g. TDD, shared understanding, ongoing experimentation, demos, & capture).
- Help others develop their proposed High Level Designs (HLD) for more productive meetings.
- Capture team’s KPIs (e.g. cycle & lead time, adoption analytics, xMatters & MTTR, Slack response time from question to thread/response, Bitbucket pins, etc).
- Establish & capture evaluation guidance for new candidates.
- Establish a team SLA.
- Establish Key DevOps Metrics based upon hypotheses from senior leadership (i.e. make them testable).
- Infrastructure as Code (Terraform and CloudFormation).
- Documentation of end to end development workflows & videos demonstrating how to go from commit to deployment based upon the current state of the ecosystem:
- Write from a newcomer’s perspective into the company with an eye towards ease of onboarding.
- Build upon the communities of practice by developing how to articles and topics of interest across time zones.
Nike, Beaverton, OR Dec 2015 – Feb 2020
Lead Software Engineer (2019 – 2020)
- Serverless Application Model (SAM) Python based Slack bot feature development and maintenance.
- Internal React Redux app development backed by Spring and Postgres.
- Feature development and maintenance of curated Jenkins 2 Multibranch pipelines.
- Actively supporting EC2, CloudFormation, S3, Serverless Application Model/SAM, Kubernetes, and 9 other community contributed pipelines + steps following the InnerSource model.
- Agile leader working to ensure app development teams have curated paths into ongoing compliance with internal corporate governing bodies (e.g. security, change management, cloud business office, etc).
Sr. Software Engineer (2015 – 2019)
- Self-service and automation coaching and contribution by example
- Dashboards, static & dynamic alerting, ChatOps, ALM, SDLC, CASE, and TDD.
- NewRelic, Splunk, CloudWatch, and SignalFx.
- Jenkins 1 canary pipelines, gradle, and sbt.
- Packer/ami builds.
- CloudFormation, CodeBuild, and CodePipeline.
- Python Jinja2
- Daily app reporting behind various reverse proxies in Eureka (self-updating HTML reports).
- CloudFormation passthrough template engine for building complex templates rapidly; zero maintenance.
- CLI jq queries and blog for APIs and Eureka to facilitate sharing of operational troubleshooting and research.
- Python, Bash, Scala, and Ammonite operational scripts and Lambdas.
- Serverless slack bot development for launch scaling, dynamic alerting, and team IAM role policy enforcement.
- Monkeys: asg alerting, iam enforcement per approvals/merges, and culling old undeployed ami snapshots.
- VPC, EC2, S3, Lambda, and API Gateway based microservices primarily behind Akamai.
- OneLogin & Okta Identity Provider (IdP) App Maintenance.
- Java & Scala based reverse proxy maintenance leveraging Eureka for service discovery.
International Game Technology, Reno, NV Feb 2008 – Dec 2015
Software Engineer III (2014 – 2015)
- Infrastructure as Code: Develop and maintain Jenkins & Bamboo builds facilitating continuous delivery
- DevOps: Participate and lead adoption of TDD, continuous deployment, and CI best practices.
- VMWare, Openstack, and VirtualBox orchestration via salt, heat, and vagrant.
- Automated KVM based image builds with cross environment compatibility via QEMU.
- Write and maintain Python YAML based heat orchestration aggregator utility.
- Murano one button deployment, catalog maintenance, and cross training.
- Maintenance of git repositories tying together micro builds in rapidly changing, easy to use ways.
- Automated validation of postgresql, mysql, rabbitmq, memcached, redis, and nginx environments.
- Maintenance of puppet based one button deployments in Jenkins 1.
- Fully unattended continuous deployment & continuous integration from dev to production.
- Server 2003, 2008, and 2012 PowerShell unattended continuous deployment & configuration
- Driving a Mirantis Openstack environment with DevStack Murano cross training: tomorrow’s features, today.
- Maintenance of salt, salt-cloud, and bash configuration management across product lines.
- Maintain Confluence and JIRA as gaps are identified during active sprints across multiple teams, in parallel.
- Maintain CA AppLogic catalogs and app descriptors.
- Test driven development targeting over 72% code coverage.
- Maintenance of custom actions, msbuild tasks, WPF, Windows Forms, console, WCF, and ASP.NET.
Software Engineer II (2012 – 2013)
- Wrote and maintained CD targeting CA AppLogic.
- Test driven development via CD, CI, smoke testing, functional testing, and code coverage.
- CA AppLogic, Python, Bottle, SQLAlchemy, WebTest, and Zenoss ZenPack dev using DevOps best practices.
- TDD: Developed suite of functional tests to identify software regressions in code checked in same day.
Software Engineer I (2011 – 2012)
- Installshield 2010 MSI development and maintenance, integration of custom C# actions.
- Write new VS2008 & VS2010 add-ins simplifying daily work flows for C# WCF services via custom actions.
- Maintained and added features to internal XML based SQL seeding tools.
- Maintained SQL Server Reporting Services reports.
- Wrote new custom actions to facilitate deployment time configuration of newly written C# WCF services.
- Write and maintain WPF based UI modules, including bug fixes reported via TFS work items.
- Write and maintain WordPress blog for common error messages encountered during software testing.
- Maintained TFS 2010 msbuild scripts, unit tests, and deployment scripts/MSIs.
- Write and maintain custom actions, msbuild tasks, WPF, Windows Forms, console, and ASP.NET.
- Maintenance of WCF services.
Technical Intern (2008 – 2010)
- Assisted in software maintenance and bug fixes in TFS for WPF UI based on the cab model.
- Maintained TFS 2008 msbuild scripts, continuous integration, and deployment scripts/MSIs.
- Write & maintain SharePoint and TFS work item documentation in word format.
- Manual continuous deployment.
- Write and maintain msbuild tasks, WPF, and some ASP.NET.
Faucette Micro Systems, Inc., Fallon, NV 2000 – Feb 2008
- Introduced use and adoption of PHP and Dreamweaver based page maintenance.
- Wrote and maintained Windows services for seamless data integration between legacy and new web systems.
- Wrote and introduced use of Ghostscript-based report maintenance tool for Fytek PDF reporting.
- Wrote and introduced use of iep templating and business logic scripting language based upon VOScript.
- Researched and deployed in-office low cost open source source control and task management solutions.
- Configuring Windows servers in field, laying new cable, on-site troubleshooting of VB based systems.
- Level 2 phone technical support for Windows & HTML4 based software products.
- A+ certified for computer repair of consumer PCs, an HP certified service center.
- Using GIMP designed UI graphics for web systems.
- Lead initial design, implementation, validation, and support of new HTML4 based MIS systems.
Public Speaking, http://www.billyjf.com/talks 2018 – Present
- Organize Communities of Practice (COPs) around Java 9-12 (module system, container support, etc).
- Cross Section Between InnerSource & Agile: Improving the Impact of Technical Contributions …
API Gateway Authentication & Authorization POCs 2018
- Authorizers for Basic auth with additional experimentation planned for JWT & SSO.
Carb Counter, http://cc.billyjf.com 2017
- Webix front end built on AWS Serverless Application Model (SAM) with Python Nutritionix backend.
WordPress ElasticBeanstalk Package Builder from Latest Source Per Build; billyjf.com 2016 – Present
- ~$5.56/month on AWS: Elastic Beanstalk, EFS, RDS, S3, CloudFront, and CloudFormation.