We met with Pedro Ramos, working from Nezasa’s Lisbon offices, on a typical Thursday afternoon. Probably the busiest day of the week there as the team always gets together at the end of the work day to enjoy some cold drinks in the typical Lisbon sun.
Pedro is one of those people to whom the fully remote lifestyle simply would not do. One of the first things he mentioned during our brief talk was that he needs strong team spirit and open communication in order to feel productive and inspired, and nothing beats those office days to do the trick.
He’s been working as a Senior Software Engineer for Nezasa since 2019. He’s seen the company grow and many people come in. He witnessed how TripBuilder evolved and how it changed its users’ perspectives. Now, he tells us what it’s like to be a software engineer at Nezasa.
Here’s Pedro’s story.
Why go for a software engineer career?
First things first, why go for a career as a software engineer? Pedro’s reply was both curious and enlightening: we’re not astronauts.
Unlike most career paths, software engineers can create a world from their own homes. Besides its technical aspect, the only limit imposed is their imagination. Pedro says an astronaut can spend his entire life working on getting a truly fulfilling, once-in-a-lifetime experience. If you’re lucky, you get to experience that every day as a software engineer. And there’s always so much more to explore.
It was curiosity that drove Pedro to start programming and understanding what makes it possible for a computer to actually work.
“I always wondered: how is it possible that the same machine can run a text editor like Microsoft Word and at the same also run a videogame with 3D graphics? How can one object be so versatile?”
He tried programming, and he loved it. Now, he enjoys the freedom of knowing that his career can take him in multiple directions and gets to witness how so many people around the world actually use his work.
Typical Day for a Software Engineer
What does a typical day at Nezasa look like? Pedro tells us,
“I always start my day with our team’s daily meeting, so we’re up to date with everything that’s going on. We plan our two-week sprint, we talk about our current tasks and which ones have the highest priority.”
We were curious to understand exactly what daily tasks Pedro and his team have to deal with. But the truth is that it can change a lot during the course of the months. Day-to-day work can come from issues or suggestions pointed out by Nezasa’s customers or within the team. These are the easiest to execute, most of the time.
Then there’s the “big features” workload. Those demand longer meetings (to create the right approach) and longer coding sessions. Working on TripBuilder is a continuous road with no palpable finish line. Improvements and new goals are constantly set to improve the platform in every way possible.
“We usually don’t spend more than half of our day writing code”, Pedro says. There’s a huge communication aspect that comes with being a software engineer in a team environment. Even for the simplest bug, engineers spend some time reading about it or writing the solution they found. Analysing and documenting code, as well as simply testing the platform, takes some time. And because they work as a team, it is natural to spend some work hours talking and discussing solutions.
TripBuilder is a complex application, and not only because of the multitude of features it contains. It fulfils a lot of commands for many different clients. To put it simply: it does a lot. For that reason, it is essential that everyone helps each other and documents everything that’s going on. It’s part of the team’s work and part of the team’s spirit.
Pedro’s team, squad Ruby, works directly on the Discovery and Planner features and the first Checkout process steps. Basically, everything before the booking confirmation.
“Most of our tasks are related to the Planner and Inventory components of TripBuilder”. Planner is a complex landscape, as it should be: “I’d say the most challenging things I’m working on come from Planner”.
But there’s more to the team than the people software engineers work directly with. To Pedro, the curious thing about Nezasa is that it seems like a specific profile is common to everyone joining the company. And that makes it easy to build strong working relationships.
He then adds, “Nezasa’s company culture is simply unique. There is a super healthy working environment. Unlike anything else I’ve ever experienced”.
If you talk for more than two minutes with Pedro about the programming language he’s working on, you’ll pretty much be convinced of its many advantages.
Scala is the programming language used for all back-end developments. And Ember is the framework used for almost all the front-end. Although Pedro adds, React is now being used on some new and exciting projects Nezasa is creating around product plans.
“I love working with Scala. It has a very pragmatic design with just enough strictness to force us into adopting good software engineering practices, without being too cumbersome.”
To Pedro, Scala is a natural evolution of more than 60 years of programming language design. It is rigid where it needs to be but leaves room for agile development when there’s less need to enforce unnecessary rules. It is perfect for the kind of application TripBuilder is.
Is it a stressful job?
Pedro simply replies, “not really”. TripBuilder is a used platform, and a lot of people use it. People always come up with real-world problems that are impossible to predict during the planning stages, and software engineers have to work around the problems that come up.
What makes it easy? Nezasa has a great structural organisation. Each one of the software engineers has a set of specific on-duty roles. Responsibilities shift regularly, normally every other week, so no one gets overly tired while constantly working on the same things.
To Pedro, that is the right approach to keeping an entire team relaxed and ensuring stress does not stay for long. Especially if you’re responsible for the most complex tasks during the week, you’ll relax knowing you won’t be stuck with them for long.
Having one person on each on-duty role helps everyone else rest easy knowing they don’t need to worry about it every few moments.
The Likes and Dislikes
We asked Pedro what the best thing is about working on TripBuilder from a senior software engineer’s perspective. The best thing: you’re working on an enjoyable thing, travel, that is super easy to relate to. Everyone travels and knows the problems you’ll find in a planning and booking tool.
Challenges are easy to understand and future developments always make perfect sense. You could explain every problem that comes up in one or two sentences without much effort. So it’s not such an abstract job, it’s something everyone can relate to in a matter of seconds.
What does he dislike the most? Sometimes there’s a lack of logic in the technical problems. For instance, spending hours programming complex features that then are delayed because the machine running the integration tests ran out of memory. “It’s just annoying when the real world gets in the way”. Pedro loves dealing with real-world solutions, but it can be frustrating when small things get in the way of huge developments.
When we asked him about the biggest challenge while working for Nezasa, he said there’s simply a lot to be done in creating processes. “The product has not been around for as long as it looks. So we’re still in that phase where we get completely new challenges every once in a while. Those challenges need to be figured out, documented and dealt with. And sometimes we’re the first person ever to deal with them”.
A dream yet to fulfil
Two things on Pedro’s bucket list: work on a videogame with a strong art direction and work on robotics. “I would love to see some of my work actually moving in the real world” he adds with a huge laugh.
But for now, he’s happy. He just wants to keep working on a product that he loves, surrounded by a team of like-minded people, making it all easier.
That’s Pedro. Our Senior Software Engineer is a positive thinker with a great taste for solving real-people challenges.