Gleb Bahmutov: When I First Saw the Cypress.io Test Runner, I Knew It Was Special
We talked to Gleb Bahmutov, VP of Engineering at Cypress.io, a JavaScript pro, and software quality fanatic
Gleb Bahmutov has contributed to more than 300 open source projects, has been blogging since 2013 and circling the globe sharing his knowledge and craft on building excellent software. In this interview, he shares his passion for image processing, software testing, and, of course JavaScript. Gleb is coming to Amsterdam to give a talk at JSNation Conference, June 6–8, 2019.
Hello Gleb, and welcome to the interview with JSNation! What’s your story?
I went to graduate school expecting to work on operating systems and programming languages, but a computer vision class has changed my life. Seeing the results as images or video is a lot more interesting than looking at rows of numbers, so I got involved with panorama processing and it became my thesis topic.
After graduating, I worked with 3D laser scanners and making virtual tours, and at some point our small company was supplying both Google StreetView and Bing Maps with interior tours — something they could not do yet at that time. Then I moved to data visualizations in the browser and worked at MathWorks trying to recreate MatLab charts using the browser APIs. But I was always interested in good software engineering and writing solid reusable software. So I kind of shifted to JavaScript and became good at writing all the little modules and tools to make myself more productive.
What did you do before becoming a VP of Cypress.io?
At my previous startup (financial analysis) we were looking for a good end-to-end testing tool — and everything was just painful to use. PhantomJS, Karma, CasperJS, and Nightmare — you name it, we have tried it. But as soon as I saw the Cypress.io test runner for the first time, I knew it was really special.
I knew that it made me write web application code that really worked. And even better — if you program in JavaScript you can change a lot of Cypress behavior via plugins and custom commands. So I have convinced the company to switch to Cypress during its beta access program, and started training other engineers and doing all sorts of interesting experiments with end-to-end testing.
After a year, it was only natural to join Cypress to continue working on the test runner itself and the related SaaS services.
What do you do now at Cypress.io? What’s your area of expertise?
Like any startup, you got to do many things, so I worked on the test runner itself, for example building it for the Windows OS. But I constantly shift from topic to topic. I worked on the test runner and on the SaaS side of business. I worked on the test parallelization feature and on paywall — you got to pay those bills. Now I am working closely with other companies to make sure Cypress tests are super simple to run on every platform, on every CI and that it plays well together with other tools, like visual testing.
You’ve contributed to more than 300 open source projects, what’s the story behind your involvement?
Oh yeah, a lot of my open source projects are linked from glebbahmutov.com and they are mostly tiny “glue” utilities and modules that I needed — and that did not exist yet. So I would just code something for myself, and usually publish it to NPM. I got the scaffolding and project setup all automated, so starting a new project is quick and painless. My favorite personal tool is next-update — a painless way to update project’s dependencies without breaking tests. I use it a lot myself.
You’re a member of multiple meetups and have given multiple talks over the years. What’s your favorite talk?
I have given talks on a variety of topics, but one of my favorite ones is this short lighting talk from ng-conf 201. I think it shows my presentation style pretty well. I joke a lot!
You’ve been writing on your blog since 2013. Why did you decide to share your knowledge via writing?
So I write the blog for myself — because I constantly forget stuff. Writing it down helps me find the solution quickly. At some jobs people joke that half of my emails to them are just links to my posts as my answers to their questions.
Do you have any hobbies? What do you do in your free time?
So I have two hobbies that kind of cancel each other — I stay in shape by jumping rope and I get out of shape by drinking craft beer. So my days are filled with working out and then celebrating being in shape. 🙂 By the way, you can see all the beers I have consumed over the years at glebbahmutov.tumblr.com/archive.
What it clearly shows is that phone cameras have improved a great deal!
Are you excited about the upcoming JSNation Conference in Amsterdam this year? What are your expectations about the event?
I am super excited about JSNation — the speakers line up is incredible. These truly are people I want to see and learn from. Plus I have heard that Amsterdam is a fun city. 🙂 But seriously, the program, the venue and the city atmosphere are 100% incredible.
Reserve a spot at JSNation and get to see Gleb's talk
The interview was prepared with the assistance of Marina Vorontsova, a copywriter from Soshace.com. Soshace is a hiring platform for web developers: hire a developer or apply for a remote job.
About GitNation
GitNation is a foundation contributing to the development of the technological landscape by organizing events which focus on the open source software. We organize meaningful and entertaining JavaScript conferences and meetups, connecting talented engineers, researchers, and core teams of important libraries and technologies.
Besides offering single conference tickets, the organization also sells a GitNation Multipass providing discounted access to multiple remote JavaScript conferences and workshops.