2 Engineers Share Their Biggest Technical Challenges — and How They Solved Them

Two software engineers explain how facing technical challenges head on means going through every worst-case scenario and opting for the smartest solution –– even if it requires abandoning a long-favored system for a brand new method of protection. 

Written by Janey Zitomer
Published on Mar. 24, 2021
2 Engineers Share Their Biggest Technical Challenges — and How They Solved Them
Brand Studio Logo
Shutterstock
Shutterstock

If you’re on Twitter or Slack, a few minutes of downtime due to a security breach will send users reeling. Now, take that same issue and apply it to a user of a financial data company’s real-time data — the stakes can be even higher. 

“Security implementations might not be something you can ‘see’ in the final product, but they are as important as having a good design, correct data, performant application, etc.,” said Karina Simons, a director software engineer at IHS Markit, a fintech platform that provides users with analytics and workflow solutions to secure data and prevent vulnerabilities.

Between quality assurance, lack of system integration and security infrastructure, the list of technical challenges a software engineer might face on any given day is long. So as hurdles arise, professionals must weigh the risks and rewards of various solutions. 

Below, she and TeamSnap Software Engineer Peter Ortiz explain how facing technical challenges head-on means going through every worst-case scenario and opting for the smartest solution — even if it requires abandoning a long-favored system for a brand new method of protection. 

 

Karina Simons
Director Software Engineer • Markit Digital

When IHS Markit Director of Software Engineering Karina Simons thinks of her latest personal challenges, the first words that come to mind are “health and well-being.” It turns out that professionally, the same can be said of a few applications she’s been tending to. The solution for viral infections across the board? A little TLC and a lot of innovation. 
 

What’s the biggest technical challenge you’ve faced recently in your work? What made this particular challenge so tricky?

The same way humans were recently exposed to a new viral attack, data is being exposed on a daily basis to cybersecurity attacks, as we face new and more sophisticated ways that data can be compromised. 

With this in mind, I’m constantly trying to deliver innovative and up-to-date applications that contain sensitive data without compromising the data security and reassuring the client that their data is safe. Furthermore, we are not only dealing with day-to-day security risks. We have to comply with international committees and compliance rules. 

A key question I ask myself is, “What technology can we implement to avoid data breaches and therefore gain the client’s confidence?”

 

How did you and your team overcome this challenge in the end? 

We were able to put our client’s concerns at peace, explaining to them we would implement different security mechanisms and layers in every step of the process where sensitive data was involved. When it came to data transfer, we provided clients with the option of doing a Secure File Transfer Protocol (SFTP) through a VPN. We offered data encryption for transit (PGP), as well as storing the data encrypted at rest. 

I learned and explained to the client that our cloud service provider runs an Intrusion Detection System, which is part of Markit’s SOC 2 controls. 
 

We as a company are being trusted with something extremely valuable: information.’’ 


How did this technical challenge help you grow as an engineer or help you strengthen a specific skill?

This specific challenge forced me to remember that protecting sensitive data is such a critical piece of the puzzle when it comes to creating new solutions and applications. Security implementations might not be something you can “see” in the final product, but they are as important as having a good design, correct data, performant application, etc. We as a company are being trusted with something extremely valuable: information. It is our responsibility to safeguard it.

 

Peter Ortiz
Software Engineer • TeamSnap

At the sports team management app TeamSnap, technical challenges are simply opportunities to try something new. That’s how Software Engineer Peter Ortiz saw his latest hurdle, involving fixing a messaging issue within the company’s chat system. Below, he explains how deciding to use a new set of tools ended up saving the team time and resources, and how he came to that ultimate conclusion. 

 

What’s the biggest technical challenge you’ve faced recently in your work? What made this particular challenge so tricky?

We had built a new chat feature that enabled users to communicate with one another by group message or direct message. The system was built within the Google Cloud ecosystem using modern technologies supported by Google. The technology choice was outside of our standard tech stack but ultimately ended up being right for the job. 

The problem came when some users informed us they were unable to clear their unread message badge count. After further investigation, we realized there were various reasons a user may have ended up in this state. The main problem was that our new chat system is not tied to our existing applications, and some actions (user leaves a team, the team has been retired, etc.) were not accounted for.

Usually, this would not have been hard to fix. But since these systems were not directly connected, it required a lot of effort to get this working. We had to decide to either use an alternative approach or stick with what we have and take the time needed to make it work within our existing applications.

 

How did you and your team overcome this challenge in the end? 

In the end, we decided that trying to fix this issue with our existing technology would not have been worth the effort. Here at TeamSnap, we have several producer and consumer applications that use RabbitMQ as the message broker. For this to work, we need to publish a message to RabbitMQ and have that message consumed by a Google Cloud Function that lives within our Google Cloud project. It would have been a significant undertaking to wire all of this up properly. We were also questioning whether RabbitMQ was still the right tool for us since most of our infrastructure was on the Google Cloud Platform. 

We decided to see this as an opportunity to use something new. Using Google Pub/Sub instead gave us the flexibility to integrate it however we saw fit, and we didn’t have to worry about making changes to the existing RabbitMQ/Messaging integration. It was also a perfect test case to see what benefits Google Pub/Sub had compared to our existing solution.
 

Before any development starts, you need to have a clear understanding of the problem you’re trying to solve.’’

 

How did this technical challenge help you grow as an engineer or help you strengthen a specific skill?

I learned three key lessons from this experience that pushed me to grow as a software engineer. I learned about new technologies and how to integrate them into our existing architecture. I learned a lot about decision-making, mostly because the initial decisions I made were not the right ones. I was too focused on future-proofing the integration when it wasn’t necessary. Integrating Google Pub/Sub was somewhat of a test, and if it didn’t work out, I would have wasted a lot of time and effort.

Finally, I learned that before any development starts, you need to have a clear understanding of the problem you’re trying to solve and the expectations involved in integrating new technology.

Hiring Now
Gusto
Fintech • HR Tech