No description, website, or topics provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.md

README.md

rob@salmond.ca

Profile of a problem solver.

I am a skilled technologist with experience in software development, cloud technologies, and networking. I bring depth and breadth of understanding to my work and have a knack for devising creative solutions using everything from industry standard tools to finding a use for whatever is on hand.

The advantage I rely on to achieve results is systems analysis. I am interested in how things work and am fascinated by how individual components fit together in complex ways.

My approach to success begins with familiarizing myself with the internals of systems and using that to my advantage while clearly communicating my findings. I excel in problem resolution roles and am most engaged when no one is sure exactly how to proceed.

Technologies with which I have professional experience.

Programming Languages

  • RW
    • Python
    • Go
    • Bash, sh
    • Javascript, ES6
  • RO
    • Java
    • C / C++ / C#

Platforms and Environments

  • Linux
  • AWS

Software

  • Saltstack, Ansible, Chef
  • Terraform, Vagrant, Packer
  • Jenkins, CircleCI
  • Fabric, Boto
  • Docker, ECS, Kubernetes
  • MySQL, PostgreSQL, Amazon Aurora, RDS, DB2
  • DynamoDB, Cassandra
  • RabbitMQ, SQS, Kinesis
  • nginx, Apache, ELB/ALB
  • Gunicorn, PHP-FPM, uWSGI, Tomcat, PhusionPassenger
  • Consul
  • RAID (md), Logical Voluming (lvm), S3
  • TraceView, Datadog, Librato, Graphite/Grafana

Experience has allowed my to sharpen my skills.

Cisco (OpenDNS) Vancouver, BC 2017 - Present, Senior Software Engineer

Part of a team responsible for delivering a managed Kubernetes service as part of an internal cloud platform. Designed and delivered managed clusters integrated with several other internal services for authentication, networking, and secrets.

Identified key metrics and events to track for monitoring and alerting, wrote runbooks, and participated in on-call rotation.

Worked with users new to Kubernetes to help them get started with essential concepts, understand how to structure their deployments, and use community standard tools like Helm.

Librato (SolarWinds) Vancouver, BC 2016 - 2017, Site Reliability Engineer

Part of an IP acquisition of technology and personnel. Joined the operations team and began building the groundwork for a product unifying distributed tracing technology with metrics monitoring.

Designed, documented, and implemented cloud infrastructure using Terraform and Saltstack and integrating with existing chatops and internal operations APIs.

Continued to participate in operational on-call support of legacy systems.

AppNeta Vancouver, BC 2015 - 2016, QA Engineer

Hired as the first dedicated QA staff for a distributed tracing system for web applications.

Worked closely with the development team devising test plans, verifying bug fixes, and evaluating features.

Devised techniques for generating complex test data by both emulating and replicating distributed systems designed to model our users environments.

Automated the creation and deployment of test environments and test applications using Chef, Terraform, and Consul.

Participated in on-call ops rotation carrying the pager and handling production incidents.

AppNeta Vancouver, BC 2013 - 2015, Technical Support Engineer

Hired as the first dedicated support staff for a distributed tracing system for web applications.

Directly involved in getting new users up and running with a sophisticated monitoring product in their unique environments using our supported components, including the most popular web servers on the internet, any one of a half dozen supported programming languages, and countless web app frameworks and toolkits.

Worked on all aspects of customer support from liaising with technical writers to keep documentation accurate, to devising and iterating support processes, to maintaining and improving support tools and infrastructure.

Gained familiarity with common web app components along the way such as popular message queues, app servers, frameworks (front-end and back-end), middleware, virtualization and containerization tools.

Conducted frequent internal and external training on product use, internals, and debugging techniques.

Discovered and thoroughly documented several critical security issues.

RBC Toronto, ON 2009 - 2012, Technical Systems Analyst

Automated code rollouts and maintenance of fifteen test environments for a large transaction processing application resulting in a nearly fifty percent reduction in testing time.

Ran and documented frequent software tests involving the integration and validation of new components, organization and upkeep of test data, cataloging of reports, and problem resolution.

Ensured changes met design criteria and worked with application developers, business analysts, and clients to maintain application stability.

Designed and built a prototype application modeling tool to quickly diagnose faults, find bottlenecks, and determine the effect of failures at any given point in the system.

Involved in dozens of implementations from testing deployments and backouts through to on site execution, working with both the development team and production analysts.

RBC Toronto, ON 2005 – 2009, Production Analyst

New responsibilities included covering off hours maintenance, training new analysts, and cross checking implementations and reruns performed by other operators.

Designed and built a framework for automating mass code changes in a production environment which resulted in a savings of over one hundred thousand dollars in work months in the first year of use.

Initiated the development and implementation of several automation projects, including a bulk data transmission interface, and the automating of ASG-Zeke operator commands.

RBC Toronto, ON 2004 – 2005, Assistant Production Analyst

Monitored batch flows in a 24/7 operations center.

Performed diagnosis and correction of errors, batch maintenance, log analysis, and thorough documentation of operational events.

Worked with application developers and application coordinators to solve problems and increase efficiency.

Ontario Die Company Ltd. Waterloo, ON 2003 - 2004, Network Administrator

Contracted for a complete upgrade of all network services, including network switching hardware, new database software (Microsoft Navision), upgrades to punch clock hardware and software used in an industrial fabrication facility, new drafting workstations and CAD software.

Integrated new systems with Smarteam group management software backed by a new data vault.

Built and maintained a multi-layered email filtering system resulting in an over ninety percent reduction in unsolicited commercial email, and a similar reduction in inbound email borne viruses.

Involved in support for remote facilities, including remote administration, travel for on-site upgrades, data backups and recoveries for offices in the US and support for all local staff.

References available upon request.