What the Tech?!

Shilpa Singh.jpg

Shilpa Singh

DevOps Engineer at Borealis AI

Interviewer: Isabella Enriquez

Q. Could you give a brief intro on who you are (ie. name, position, company, team)?

My name is Shilpa Singh and I work in the Infrastructure team as a DevOps Engineer at Borealis AI. Borealis AI is RBC’s research Institute. We do a lot of machine learning and AI on financial tech. For example, in the RBC app, you might have seen recently [that] they launched NOMI Forecast. If you are an RBC customer you will see that you can predict the type of expenditure that you will be doing under the NOMI Forecast—there's a machine learning model working on the backend behind it. These are the types of products that we work on.  


Q. Could you give a simple summary of what DevOps is?

Everybody has their own way of defining DevOps. But let me explain what happened when there was no DevOps.  


DevOps was recently coined in 2007, 2008-ish. Before that there was IT Operations and there was Development. The Development teams code the product, develop the product, test the product. Then they threw this code to the IT Operations Team, the team working and deploying in this production. This was the system before DevOps was introduced in this industry, and with this type of framework there was no transparency between Development and the IT Operations teams. If I was on the IT Operations team, I’d just get a list of documents—I have no idea what I'm working on. It was just a black box for the IT Operations Team, and they were deploying it. It took them a lot of time because they were not working with the Development team. There were a bunch of issues, [especially] if we deploy code with a lot of dependencies—not just one Java application, there might be some frameworks, there might be multiple things we’re trying to deploy with it. 


So in 2007, there was a group of people [that] decided that [the] Development and Operations team [should] be working together, and [that] there would be one DevOps team. This team is neither IT Operations nor Development, but they had an understanding of both.


For me, if I have to describe DevOps, I would say [that] DevOps is involved from the very beginning of the product so that they have a better understanding of what the product is, of what is actually happening in the product, and that makes it way easier and quicker to deploy to production and manage production. 


Q. In your opinion, what are the most important qualities for a successful DevOps Engineer?

You should be aware of cloud computing, networking and development—you should be able to understand and read code. You should also have good communication skills because you’re not just working with your team, you are touching each and every team—so you have to communicate with them. Curiosity is also [an important quality]. I’ve been in DevOps for quite a few years and I’ve never stopped learning. You just continue to learn and build new products. 


Q. What are some examples of day-to-day tasks one might do as a DevOps Engineer?

The first thing is [that] you have to support the development team because you build their CI/CD pipelines, and they are running those pipelines—they are not experts in CI/CD, you are the expert in CI/CD and you have more control than a developer. The most important thing is that you need to have that kind of patience to answer those questions of developers on a regular basis. The second thing is that you have to be aware of what’s happening in production – if there’s any issue, you have to be there on-call, you have to fix that immediately. Apart from that, you keep automating a lot of stuff in DevOps. These are three things that cover most of my day-to-day job. You’re the first line of defense for production issues. 


Q. What's some of the biggest challenges of being a DevOps Engineer?

It depends on person to person. For example, if you don't like communicating with people, it will be difficult for you to be a DevOps Engineer because you have to communicate with the other teams—you need to have those skills, like writing messages, answering questions, [and] being proactive about answering questions. The biggest challenge, I would say—this is a really tough question for me because I love DevOps—but there are some DevOps people who are working on rotational shifts and are also on-call, so after office, you can get called, and you will have to fix those production issues. There are some teams who go on-call even during night hours. For example, Facebook went down recently. There was one team or person who got immediately paged that something went wrong. 


Q. What do you enjoy most about working in DevOps?

I’m a really curious person, as I mentioned before. When I did my Master’s, I took a lot of courses and I realized I’m not a person who can code in one language, all day. It was very monotonous for me. I wanted to be in a field where I get to learn a lot of things and touch a lot of things. I feel I have really good communication skills, and I [am] able to use that in DevOps. There were so many things in DevOps, and I was learning so many things and making a huge impact, and that is the reason I love DevOps. You see direct impact—people are reaching out to you, [they] are stuck somewhere and you are helping them resolve those issues—that is something I really enjoy. And then you keep getting new things to work on, not just one, and you’re automating a lot of stuff. These are the things I love about DevOps. 


Q. What advice do you have for students who want to go into DevOps?

Learn about cloud computing. Take networking courses. It’s very important to learn about cloud technologies because when you’re putting stuff on the cloud, you’re actually doing the DevOps thing. You’re creating infrastructure, where you deploy the code—it might be AWS, or some local infrastructure. Learn Kubernetes, Jenkins, GitHub. If you learn about one type of cloud, all the other clouds are going to do the same thing in a different way. So if you know one, you will be able to understand the other. Docker is very important—learn it from scratch. It’s even important if you want to be a developer. Everyone is using Docker. Learn about configuration management. And of course, Bash! Bash is very important. If you have these things as a student, it would be a good start to become a DevOps Engineer.