Blog

Alumni Profiles Series: Mike Jenista

 May 10, 2023

Mike Jenista is a Senior Analytics Software Tester at SAS, a software company that provides advanced analytics, business intelligence, and data management solutions. He completed his A.M. and Ph.D. in Mathematics at Duke, following an undergraduate degree in Mathematics at the University of Notre Dame. After completing his doctorate, he started his career at SAS, where he leveraged his strong quantitative background as a software tester. His work at SAS involves ensuring the quality of software related to data analytics through testing. With this unique career trajectory, he has been sharing his experience and valuable suggestions with current students.

Tell me about yourself.

After graduating from Notre Dame in 2005, I started graduate school at Duke. I got my Ph.D. in Mathematics in 2010 but decided against academia toward the end. I landed a job at SAS as a software tester, where I test products for data analytics and visualization. As opposed to traditional software testing which usually focuses on confirming the exact output of certain program, testing the statistical tools at SAS involves further stress-testing the code with messy data, which requires some finesse and deep knowledge of the potential outcomes of the related statistical analysis.

I do not have a computer science or statistics background, and at this job, the challenge of data science became apparent to me in a way that I'd never experienced in graduate school. 

What does your job involve?

A little bit of both software engineering and data science. Mostly I need to test whether the output of statistical analysis provided by the software is analytically valid. With machine learning algorithms, there is not necessarily a specific answer, especially when you get into the larger datasets broken up over nodes of systems. I design test cases using my domain knowledge, but I may need to hand the software-engineering-heavy tasks to someone else when I do the test. I normally test software products by simulating a customer's experience on my own computer, but I also sometimes use automated testing or design tests for others. Sometimes it is challenging to test proprietary or anonymized data where only specific people can access certain information. In this case, I need to design tests carefully and ask different questions in alternative ways to maintain anonymity. It is important for me to be generally aware of analytical issues and challenges with modern data. Overall, I find my work very interesting.

How did you manage to become a software tester?

In this job posting, they initially wanted someone with previous experience as a software tester, but there weren't very many applicants. I was the only applicant who lived locally and could start in two weeks, so I got the job. I was honest about the fact that my research field, algebraic topology, is unrelated to the position, but I also emphasized my ability to approach analytical problems and my coding experience as a graduate student. So, I did have some minimal exposure to core aspects of the job. There was a steep learning curve, but my analytical background helped me do well in the test case design, and I actually got a reputation for being able to spot immediately when something is wrong. Knowing what to expect turned out to be my most valuable skill. Based on my math and statistics background, I can detect that there is something wrong without computing the exact answer.

What was the training process for new employees at SAS?

They have standard training for general workplace procedures, especially ethical compliance around customer data.  Depending on the role and the team, specific training on tools like version control systems are provided. Training for coding languages like Python and Java is offered as well. In the last few years, with automated testing and cloud-hosted products becoming more and more important, basic coding knowledge is required not only for software developers, but also the testers, so that the testers can better find and fix minor issues in the code. It is easier for developers and testers from different groups dealing with different scenarios to work together if they all know each other’s coding practices. A good skill to have in the future software testing market is to be willing to step a little bit into the development role as well.   

Image
"Get some real coding experience. One should not only focus on learning a specific language and algorithm but also learn how to efficiently use a language. You need to get your hands dirty by working on larger projects and learning to use libraries, read documentation, leverage others’ code, test and deploy your code, and adapt to evolving needs etc."

What trends do you see in the data science industry right now?

Depending on the various needs of customers and the type of data they have, there are all sorts of different ways they might use our products or service. Sometimes customers might not even use our products directly. They might just send us their data and pay us to do data analysis. Some other clients may have sensitive data, so they can only provide aggregated data at a higher level for analysis. Additionally, some clients may only need a one-time batch analysis of their data. In this case, the data scientists at SAS may help prepare and process the data. In addition, we deploy our products on common cloud servers so that clients can rent them for a while instead of buying the whole license, which is how things were traditionally done. It is a big challenge for developers and testers to hold up under different scenarios like cloud services. Under the traditional model, we deployed and tested our software on a computer, and then made it available to customers to use on their computer. Now that there is a large variety of cloud-based hosting applications, we can no longer assume that everyone’s system is the same as the one where the software was originally developed and tested, so we have to be prepared for the complications that come along with these changes.

Overall, the technology industry is constantly evolving, and people are always trying to find new ways of doing things faster, which leads to a lot of competition in the industry. In addition to the big technology companies, startups founded by talented engineers are emerging and offering competitive compensation.  Developers and testers are in high demand because of the need to implement new products to meet different needs from customers and quickly identify and fix issues.

Do you have any advice for current graduate students who might be interested in related careers?

Get some real coding experience. One should not only focus on learning a specific language and algorithm but also learn how to efficiently use a language. You need to get your hands dirty by working on larger projects and learning to use libraries, read documentation, leverage others’ code, test and deploy your code, and adapt to evolving needs etc. Personally, one of the things I did that really opened my eyes to what I was missing was just learning how to program a webpage. This is particularly useful since software is increasingly web-based. You do not need to master this, but having some computer skills exposure is helpful.


Author

Image
Carol Wang
Carol Wang

Ph.D. student, Statistical Science

Carol Wang is a fourth-year Ph.D. student in the Department of Statistical Science at Duke University. Her methodological research is on tree-based multi-scale inference methods, and her applied research focuses on developing models and software for data from microbiome sequencing experiments. In addition to her current research, her areas of interest include high-dimensional data and time series analysis.