Meet the Adobe I/O Team: Alex Trifan on Managing Heavy Traffic from Adobe Services

Alex Trifan works with the Adobe I/O Gateway team in Romania. We caught up with him to find out about his career path, the technology stack his team uses, and the tools they’ve built to ensure traffic from Adobe services is as fast and optimized as possible. He also tells us about the best advice he’s received in his career so far, and how his work at Adobe has made him a more well-rounded developer.

Adobe I/O Gateway’s Alex Trifan.

How did you get started in the industry, and what’s your career path at Adobe been like?

I officially started my career eight years ago when I was in my second year at the polytechnics university, although I had previously worked for one year during my last year in high school.

I started working at Adobe two years ago. I had wanted to work at Adobe for some time but didn’t find the right job for me. One day when I was looking for a change from my previous job, I discovered an Adobe I/O position for an API platform engineer. I was previously working as a full stack engineer, and one of my most important criteria for a new job was to continue as one.

I have been working in the I/O Gateway team, a team that gave me exactly what I needed: space to innovate, encouragement to deliver, and a ‘full stack’ of tools and languages. The gateway team pushed my limits, and it also helped me become a more complete developer.

My key responsibility along with the team’s is to keep the four nines in place. We are responsible for taking care of most of the inbound and outbound traffic from Adobe services.

Can you tell us a little bit about the tools and technologies you work with and the challenges involved?

In our team, the programming languages aren’t a barrier but rather tools for solving problems. I’ve worked with all type of languages: Java, C, LUA, Python, Go, JavaScript, and Bash — all in a production-ready manner.

We always try to be as ‘bleeding edge’ as we can. We use Docker, Kubernetes, machine learning, serverless functions, and multi-cloud management. Although it might sound cool, this comes with performance challenges. Everything we write must be triple checked for memory leaks and be as fast and as optimized as possible since we are a middleware for other services. The biggest challenge is that even though our code is the standard for security and reliability, our clients must not ‘feel’ that we are in front of their services.

What achievements are you most excited about in your work?

First and foremost the biggest achievement that we as a team had was the modernization, unification, and standardization of a complex monolith that previously could not be tested on a local machine and had no predictable installation whatsoever. We were also able to set up an almost complete CI/CD pipeline for our product to make it reliable, predictable, and measurable.

Another achievement that I think needs to be pointed out is that through its work the I/O core team contributed to the outside community by creating a complete testing framework for both standalone .lua files [Lua is a light-weight programming language designed for extending applications] and integration with OpenResty. Mocka is the second major open source project aside from the Gateway that the team has produced.

Along with this testing framework, we also developed a ZeroBrane plugin to integrate the testing framework in the most popular Lua IDE. This testing framework comes with an interactive debugging tool that we hope to integrate in the ZeroBrane IDE as well. This debugging tool was a breakthrough since you don’t get that much friendly tooling in a Lua Nginx world.

Another thing that we are very proud of is creating an in-house performance testing tool that meets our needs and that competes with other major players like Soasta and Gatling. Along with this the direction of reliability of the project has improved and got so much more predictable.

What’s the Romanian team like, and how do you work with each other and the rest of the I/O team spread across the globe?

The Romanian team is a warm team; a team that helps other teams, and this is our mentality — we focus on the wellbeing inside the group. The Romanian team is all tech and fun. We always like experimenting with cool geek stuff but we don’t stand down when it’s about fun.

The Romanian team (with Alex at the front) celebrates the first milestone of the Gateway unification: the dockerized version being deployed in production.

What’s the best advice you’ve received in your career?

I have received a bunch of good pieces of advice, but the most important ones that I remember are the following:

  • “If you can’t explain it, than either it’s not good enough or no one needs it” — This one helped me a lot in focusing on smaller problems. The key is not to try and fix a bigger problem but to fix smaller problems that can be easily identified. If you keep in mind the big picture, those smaller problems will converge to the initial big problem in the long run.
  • “Focus on your clients.” — After all, it’s their problems that you want to resolve because they pay your check.
  • “Development is 10 percent coding and 90 percent testing and bug fixing.” — Quality comes always first, above quantity.

These pieces of advice formed me as a developer and even as a person. They made me organized and helped me pay attention to the details.

What are you looking forward to working on next?

My personal goal would be to improve the world that we live in through my work and leave something of value behind. I would like to help people and make a difference.

Follow the Adobe Tech Blog for more developer stories and resources, and check out Adobe I/O on Twitter for the latest news and developer products.