Vicki Kozel: From Deploying with Bash and Expect to GitOps
Vicki Kozel | Senior Software Engineer, DevOps
One thing I feel particularly lucky about — having worked in the technology industry for many years — is being able to experiment with how creativity affects productivity in software engineering. I started my career as a software tester, a specialty which I found both fascinating and complicated. People often call the type of testing I did “white box” testing, although what they really intend to say is “automated” testing. I always found it interesting that people — even definition snobs — tended to label all types of automated testing “white box”. “White box” doesn’t necessarily mean automated. It means testing of a system’s internal structure vs. its functionality. Early on, I did a lot of work in Java for Java enterprise applications. There were a lot of interesting challenges in writing unit tests (did a lot of work with JUnit) — which is, in fact, a type of white box testing, and whose intent is to isolate a unit of code so it can be tested separately from other units. A particularly interesting challenge was simulating an outside system with various mock object frameworks, to make unit testing more accessible.
On the other side of the spectrum was System and End-to-End Testing whose behavior is completely opposite from Unit Testing. If Unit Testing tries to test the smallest unit of code, an End-to-End Test tries to cover as much of a code base as possible. The challenge there was to wire End-to-End testing into a build process and make it an integral and instrumental part of the software development lifecycle (SDLC). It is through this challenge that I familiarized myself with builds and deployments, and learned about setting up and managing different environments.
Many interesting changes were taking place in software development during that time. Around the same time, companies and open source developers were creating new CI/CD servers, config management frameworks, and containerization tools that created a lot of excitement around the optimization of SDLC.
I transitioned to DevOps with a lot of enthusiasm and started focusing on cloud infrastructure, config management, and environment provisioning. It is pretty amazing to see how software development processes evolved over the years. I remember when deployments to a private cloud were done with a bunch of Bash and Expect scripts, and now at Vouch I’m provisioning environments on AWS with infrastructure as code (IaC) and running complex CircleCI pipelines to build and deploy our product.
I think we owe a lot of this progress to “out of the box” thinkers — people who are not afraid to look at problems from unexpected angles, provoke change and embrace new challenges. I feel proud to work in the industry that elevates such people and let them lead through their thinking and actions.
I worked for many companies in my career, but in terms of job satisfaction, working as a DevOps at my current company — Vouch — gets my highest score. We have a very interesting tech stack and a lot of great tooling. I have amazing teammates who do a lot of heavy lifting, building the tool stack and developing the infrastructure as well as GitOps processes. People often think that DevOps teams are a little isolated from the rest of the development organization but at Vouch we have great and vibrant relationships with other teams.
I’ve been with Vouch for more than a year — which, in Silicon Valley time units, is a pretty long time 🙂 So far my tenure here has been fun and enjoyable. There are always challenges, but there are no challenges a good team can not overcome. I find it symbolic that Vouch’s business role of insuring its clients resonates with my goals of providing stable infrastructure and sound development processes as a DevOps engineer. I love the culture of acceptance, inclusion and technical excellence that is prevalent here. I feel really lucky that I have Vouch Insurance as my professional home.