My journey as a Test Engineer

I am a Test Engineer at Google. I focus on Engineering Productivity, making the development and release process faster, better, and more reliable.

How did I get here?

I studied University of Waterloo, and completed my bachelors and masters in Statistics. I enjoyed the CS courses a lot and got some programming work experience through the co-op program. My later work experiences included statistical quality control and design of experiments, but I knew I wanted to work in software.

I got hired at a software company after my masters, Cognos, now IBM Cognos, to do quality assurance, which was policies and procedures for code reviews, code inspections, and releases, which was similar to work experience I had in a factory doing policies and procedures around control charts and quality assurance. After that quality assurance group got disbanded during a layoff, I started doing software testing, learning mostly from the book Testing Computer Software, by Cem Kaner et al.

I’ve bounced back and forth as a software developer/manager during my career. I joined Microsoft in 2005 as an SDET in the Office security test team. Prior to that, I had been the security assurance manager at Entrust, now Entrust Datacard. I moved from Canada on a TN visa, which required me to be an individual contributor, not a manager. It was exciting to do both penetration testing, security test tools, and test security features for Microsoft Office.

I am still an individual contributor at Google, even though the immigration reason is gone. I write code and design systems to make engineers at Google more productive, specifically on Cloud Dataflow, Apache Beam, and internal pipeline products at Google. Large scale data processing is exciting, especially being able to harness lots of resources for efficient parallel data transformations.

Although I enjoy my work at Goog,e, I no longer like the title “Test Engineer”. Over the years the word “Test” in a job title has become progressively less desirable. “Test Engineer” is associated with repetitive manual testing,  and not software design, development, and coding. Even the exploratory testing, boundary values, or strategies for system testing have become less exciting over the years. Microsoft merged most of the SDET (Software Development Engineer in Test) to SDE (Software Development Engineer), blurring the distinction and helping remove the lack of respect in the SDET role. Google moved the SET (Software Engineer in Test) role to SETI (Software Engineer in Tools and Infrastructure).

Hoping the TE’s at Google can craft a better title that reflects their role and impact.