I’m Fabio Lima, and this is the story of how I became a product-minded software engineer — a path that wasn’t exactly a straight line.

Starting as a builder

I’ve been building things since before I knew what software engineering was. In the late 1990s, at age 16, I saw someone working on a spreadsheet in a monochrome terminal and was hooked right there. I wanted to learn to build software that would help people do their work.

That’s when I bought my first programming book, on Clipper Summer ‘87. I eventually started learning Linux a couple of years later — the concept of an operating system I could learn from, and open source on top of that, seemed way too interesting to ignore. I also discovered Borland Delphi and decided to learn it — especially for its bundled Interbase database, which was my first contact with a relational database. I went deep into Interbase, active on the forums as it forked into Firebird.

By my early twenties, I was setting up Linux servers, configuring Apache and Sendmail, and designing and migrating databases for small businesses in Brazil. I was also founding companies: a cosmetics manufacturer with a franchise model, a wholesale distribution business serving 300 B2B customers. I was writing code when I could, but my title was never “engineer.” It was founder, CTO, IT manager, consultant.

I didn’t have a CS degree or a mentor. I had curiosity, a dial-up connection, and a stubborn refusal to give up when something broke.

The product years

For fourteen years, I led product at a real estate development company in Fortaleza, Brazil. I managed the full lifecycle of construction projects — from feasibility analysis to launch — with a team of ten. It was during this period that I built my first Ruby on Rails application: an internal contract management system that replaced a tangle of spreadsheets and dramatically improved our team’s efficiency.

That project crystallized something for me. I wasn’t just managing products; I was building software that solved real problems. The line between “product person” and “engineer” had blurred.

The pivot

In 2016, I moved from Brazil to Vancouver/Canada to study at Capilano University, deepen my understanding of the North American business environment, and improve my English. I had an eye toward making Canada my permanent home, and I eventually did — permanent resident in 2021, Canadian citizen in 2025. I earned a Post-Baccalaureate Diploma in North American Business Management in 2018, complementing my existing MBAs and Master’s degree.

The actual career pivot came in 2019, when I joined PressReader — first as a Ruby on Rails engineer at EvidentPoint, then transitioning to .NET Core on the main platform.

What “product-minded” means to me

Being product-minded isn’t about having an MBA (though I have two). It’s not about job titles. It’s about never losing sight of why you’re building something and who it’s for.

When I work on a feature, I ask:

  • What problem does this solve for the user?
  • Is there a simpler way to achieve the same outcome?
  • How do we measure success beyond “it shipped”?

These questions come naturally after spending years on the other side of the table — as the person setting product strategy, managing budgets, and answering to stakeholders.

What comes next

This blog is where I’ll share what I’ve been learning as a full-stack engineer working across .NET and Ruby on Rails. I’ll write about code, architecture, and the product thinking that connects them.

If you’re another engineer who came to this career through an unconventional path, or if you’re curious about bridging the gap between technical and product thinking, I’d love to connect.

— Fabio Lima