From Software Engineering to Product Design: Embracing Career Detours

Pedro Santos Rodrigues
OutSystems Engineering
10 min readApr 6, 2021

Do you know those kids who are really artistic and spend time in class doodling away amazing illustrations on their school notebooks? Yeah, I’m not one of them. I’ve always been horrible at drawing ever since I was a child.

So if you had told me that I would follow the “normal path” as a software engineer only to have my first work experience (after my master’s degree in Computer Science) as a product designer, I wouldn’t have believed you. “What do you mean, designer? Will I work with designers? Will I have to draw?” Yes, designer — I, too, had to let that sink in for a while.

But sometimes, life takes unexpected turns in the right direction. I never thought the beginning of my journey at OutSystems would change my career plans. (Spoiler alert: it did.) As a starting software engineer, you might not be aware of opportunities right there in front of you. After you read my story, you might discover that there’s an even more exciting path than the one you were about to follow.

To my own surprise, I realized that there is indeed a place for us “computer geeks” among the product design universe. And this new, big and mysterious space was for sure one I found myself eager to explore.

Allow Me to Introduce Myself

Ever since I was a kid, I’ve always loved computers and spent a lot of time exploring every little corner of every piece of software. When I started envisioning what I would like to do for work, I quickly realized that software development was my passion, mainly since I perceived how it impacts people’s lives and makes them easier.

On top of that, I’ve always been fascinated by the software industry’s evolution and how new technology, trends, or people’s habits, could change the way companies build their products. I became even more interested in technology when I was in middle school. I started following all Apple’s keynote presentations and events because I worshiped how they presented their products and made users fall in love with them.

Steve Jobs unveiling the first iPhone on an Apple keynote in 2007

Some years later, I enrolled in a Computer Science course. One of the areas I started enjoying the most was front end development. I found it fascinating; the variety of ways to display the same content on an interface and how these would greatly impact the end-users (and the market).

The Hackathon

I first heard about OutSystems when I was in college in 2017. Some colleagues told me they were programming a project for a unit course in OutSystems. Why? There was no mandatory technology to complete the project, and they knew that using OutSystems would get it done more easily and faster. Hmm. Consider me curious!

After that, I joined the organizing committee of some tech events at university. We launched an extremely positive initiative to host a flash hackathon powered by OutSystems in which participants had 12 hours to build an application and present it in a pitch.

I was really impressed with the stuff people were able to do in such a short time with the help from the OutSystems R&D team members who were there providing support.

First edition of the Flash Hackathon powered by OutSystems at JORTEC Informática
Me (third from the left) and my colleagues on the organizing committee of JORTEC Informática when we held the first edition of the Flash Hackathon powered by OutSystems

I remember that I was at the organization desk during the hackathon, and I wanted to download the platform and try to develop something. One of the things that came to my mind was: “Well, I’m struggling a bit to find how to use this product, but if someone teaches me how to use it, I would be able to build apps really fast!” At that time, I searched the OutSystems learning website for some videos. It was a bit time-consuming, so I thought: “This could be revolutionary if people can start using it in a few minutes.”

Nevertheless, the agility of the OutSystems team and the power of the product, which allows us to build apps faster, changed how I looked at it. Before, I thought that maybe the platform could be more useful for people without programming skills. After that, I really understood the impact this product could have on the software development industry. And it was then that I truly started following OutSystems.

The Beginning of my OutSystems Adventure

During the final year of my master’s degree, I looked for a dissertation that could contribute to the researching community and raise relevant insights for the industry. There was this one project in particular that sparked my interest. It was a collaboration between my university and OutSystems to improve a visual querying interface.

I thought the project was interesting and challenging because not only would I take the opportunity to develop software for a large product, but there was also a massive component of user experience, which was an area that had always aroused my curiosity.

I onboarded OutSystems with a group of colleagues from my college class who would also work on their dissertations in collaboration with OutSystems. I found it curious that my supervisor was not a software engineer, like my colleagues’ supervisors, but a product designer instead. In fact, this was the very first time I’d heard of the term at all! I can still hear my thoughts: “A product designer? Working with me?”

Kicking Off my First Initiative

The initial project idea was designing and implementing new functionalities in an existing piece of software in Service Studio. However, as I always searched to comprehend the root cause of problems, I began a deep-dive analysis of the system — without even realizing it — to design an interface vision that would allow users to optimize their processes.

To some extent, I found myself questioning whether I should be spending more time on defining the problem and getting to know the users’ hurdles instead of using it to implement a solution. Seeing my fellow research interns in the execution phase while I was still exploring issues made me doubt myself. But it was stronger than me. I felt motivated to understand the problem in its entirety to ensure a robust solution.

Since I felt different friction points, which could harm the system’s value proposition, when I used the interface, I checked if real users felt the same. After analyzing users’ opinions through different channels, such as interviews, posts in the OutSystems Community, quantitative data about the usage of Service Studio, and usability tests, I realized that the problem I’d identified was also frustrating users. There had to be a way to smooth the experience!

Joining forces with stakeholders, we decided to take a step back and rethink the initiative and its purpose. We decided to improve the user experience and leave the new features to a future initiative since it would be better to implement new functionalities in a more solid base experience.

The fact that this approach was utterly altering my dissertation’s scope and direction was something I was oblivious to at the time. The truth is, I felt I was making the software better for the user in the long run, based on all the feedback I had received.

In this sense, even though my dissertation had a stage of implementation on high code using C#, React, and TypeScript, its main focus at the time became a user-centered design process, much more than just a software implementation journey.

After the problem definition stage, I started the solution design stage with low fidelity prototypes, refining and validating the design choices made in every step with actual end-users. That incremental process of building a feature prototype while receiving feedback from users gave us greater confidence that they would positively adopt the design, and helped fix some stuff in the earlier development phases.

Let me share with you a paper prototype that I did in the context of my dissertation. It was quite a challenge, considering the many different possible combinations in the interaction flow. On top of that, the prototype had to be adapted in order to be tested in a remote environment due to the Covid-19 pandemic situation. It was a hard job but an excellent way to test the experience’s core flow without addressing the aesthetics details that would be refined later.

At the end of the day, after implementing the design concept iteratively on the Service Studio code, we also tested the final prototype with real users to compare the usability metrics against the ones collected from the interface in General Availability.

A huge adrenaline rush traveled down my spine as I watched the first usability tests of the solution I designed and implemented. I was concerned about whether or not the solution would work and optimize the user interaction process with the system. But, in the end, when everything went well, and we had good results, the feeling was terrific. It was a really interesting experience to perform data analysis to check the success of the initiative.

The Decision

As the end of the dissertation approached, I had to decide whether I wanted to continue working at OutSystems as a product designer or if I preferred to build a career as a software engineer. That was not an easy decision for me.

On one side, several User Experience (UX) team members who worked with me during my Master’s thesis encouraged me to embrace this new challenge. On the other hand, it was challenging since I didn’t have any references from other colleagues who followed the same path after finishing the Computer Science degree, and I didn’t know where this path would lead me.

Before this experience, I’d always imagined that I would start my career working as a software engineer (front end or full stack). Then, I would wait for the following years to figure out whether I would like to move more into the product management area or if I would like to continue working closely to development.

So I pondered this decision for a while and kept going back to the same thoughts: “Am I going to be afraid to take a risk just because it is not such a common path? If my beliefs and motivation self-directed me to explore the user design process further, isn’t this what I really like to do?”

The answer to the latter question was a definite…yes! Against my initial plans, I embraced the challenge of joining the OutSystems UX group as a product designer.

Yes, I’m a Product Designer

Now that I’ve been working as a product designer for some months, what I can say is that it’s incredibly stimulating and motivating to work on a possible vision of an outstanding product for our users and figure out how we can design and implement solutions iteratively with development teams to achieve that vision.

This is how the magic happens: product designers are integrated into development teams and work collaboratively with product managers, product owners, team captains, and developers.

UX design process

As product designers, we follow all development stages, and we’re responsible for defining our product’s experience. We’re always user advocates since we stand for our users and their experience. If you’re interested in knowing more about our process and all the exciting activities we do to build it, I’d suggest you look at this blog post, which explains how the Product Design team came together at OutSystems.

And what is the main advantage of being a software engineer working on this mission of designing a better product for our users? Well, first things first, I’m working to improve the experience of a software development platform. I could well be the end-user, and that makes me quickly slip into our users’ shoes. On the other hand, my computer science background makes it easier to communicate with developers since I can better understand their challenges and technical limitations due to my familiarity with technical terms.

Why You Shouldn’t Be Afraid to Try Out Something Different

Looking back, my fears were slightly unfounded, but I’m not one to jump into things without a plan. Although I was worried about not starting my career like other Computer Science graduates — programming, something I had prepared for years — I’m completely fulfilled with the work I’ve been doing so far.

So when life throws a different challenge your way, don’t shy away from it. Keeping up with all the software development stages, from the problem identification to implementation and rollout, has been incredibly exciting.

I wake up every morning knowing that I’ve made the right decision and that I am willing to work on making our product better, more productive, and easier for our community to use. So if your gut feeling tells you there’s something there, go for it. There isn’t one right career path; choose the one that feels right for you, and everything will fall into place.

A photo I took on my first day as a product designer (I would prefer a current photo of our team at the office. I miss those times!)

--

--

Pedro Santos Rodrigues
OutSystems Engineering

A software engineer who became a Product Designer at OutSystems due to the sheer will to make software as productive and easy-to-use as possible.