Finding your “forever” programming language: Is it still possible in today’s rapidly changing technology landscape?
Developers are expected to evolve alongside the rapidly changing technology landscape. So the secret to becoming a better engineer lies in the ability to keep yourself abreast of the latest updates in technologies and languages. We talked to Sauce Labs’ Pamela Prosperi about the languages she uses, her “forever” language and more.
JAXenter: Which programming languages do you use?
Pamela Prosperi: I usually use Python, but the company I work for is amenable to having teams own their own parts of the code and product, so I have also built in Golang for newer tooling. I find it challenging to pinpoint a universal programming language working at Sauce Labs, as projects run the gamut and each requires different expertise – from Android emulators, iOS simulators, and multiple operating systems.
JAXenter: Why do you use them?
Python is straightforward and the syntax isn’t overly complex.
The toughest hurdle is that when writing backend and pipeline code, you aren’t armed with the same functionalities and use different processes. Fortunately, Python is straightforward and the syntax isn’t overly complex.
JAXenter: How does language experience factor into your hiring?
Pamela Prosperi: We’re very careful about writing our team’s hiring posts and formulating requirements for job listings. Because Sauce Labs is so diligent, we’re able to pull from a variety of technical backgrounds. As a whole, we prefer great attitudes and those that can bring a new dynamic. This recipe helps keeps our internal culture thriving and prosperous.
JAXenter: Have you had any language migrations over the years?
Pamela Prosperi: When I first joined the company four years ago, I wrote Python for our Real Device Cloud. I have also helped build Native Android and iOS applications to automate tasks like modifying settings and connecting devices to WiFi. I have also crafted Appium automation scripts.
After about a year, I transitioned to the Virtual Device Cloud (Android emulators and iOS simulators) and that journey was vastly different, involving a great deal of knowledge into the systems we’re running – this required me to learn about virtualization, image building, pipelines and many hacky uses of things that were not built for these uses we give them.
As a developer, I am expected to evolve alongside the rapidly changing technology landscape
JAXenter: Is your current language your “forever” language, or do you anticipate switching at some point in the future?
Pamela Prosperi: As a developer, I am expected to evolve alongside the rapidly changing technology landscape. Keeping yourself abreast of the latest updates in technologies and languages is crucial to becoming a better engineer. I’m appreciative that Sauce Labs allows me to explore and stretch beyond my comfort zone.
JAXenter: Which languages are supported (have company tools written in them) v. unsupported?
Pamela Prosperi: The company’s primary backend is written in Python, while our image building is done using tools like Packer and Jenkins with Ansible playbooks, and then there’s some Node and Python scripts in the middle, as well as image testing in Ruby. As you can see, there’s never a dull moment in this position.