header star decoration right
An Honest Retrospective: Leading a Complex Project
Published on

An Honest Retrospective: Leading a Complex Project

Integrating an invoice platform into your project is rarely just a technical challenge it’s a process challenge.

Recently, I led the frontend project for a native invoice system integration. Coming into it, I thought, "Hey, it’s just another form, how hard can it be?"

Spoiler alert: It was a challenge. But it turned out to be a massive learning experience.

Here is an honest breakdown of what went down and what I would do differently next time.

As the frontend lead for this project, I was responsible for:

  • Setting up the Architecture
  • Clean Code & Principles
  • Keeping the team in sync
  • Handling design deadlocks

Sometimes we couldn’t get immediate feedback from product or designers, so we made proactive decisions to ensure the UI was consistent with the rest of our platform.

Putting the User First

From day one, user experience was our top priority.

For every feature, we asked ourselves the same simple questions:

Does this make their life easier?

Where would they expect this to be?

It changed everything about how we built the project.

Teamwork & Communication

This project couldn’t have crossed the finish line without constant communication.

I was in every single daily and refinement meeting, just making sure I knew exactly what was going on with the project.

We were always in sync with the backend and product teams.

Whenever things got too busy, I just talked to the other frontend guys, and we split the work.

At the end of the day, it was a huge team effort.

Keeping our PRs small

We made a big effort to keep our PRs as small as possible.

We intentionally kept our code changes minimal, making reviews quick and easy for the whole team.

It kept our development speed right on track.

The Self-Reflection: What I’d Do Differently Next Time

While we got it across the finish line and the product is solid, taking on this project lead role taught me some invaluable lessons.

If I could rewrite day one of this project, here is what I would do differently:

Public Meeting Notes from Day One

We wasted too much time re-discussing decisions we’d already made with the cross-team, simply because we forgot them.

Lesson learned: next time, I’m sharing meeting notes immediately.

Putting things in writing is the only way to keep everyone on the same page.

Dependency-Free Tickets

I accidentally blocked myself a few times, working on a ticket that depended on another unmerged branch.

It was a mess.

Next time, I’ll make sure tickets are completely independent so everyone can develop and merge without getting stuck.

Wrapping Up

Leading this project taught me that being a good engineer isn’t just about writing clean code.

It’s about considering user experience, keeping teams aligned, and keeping your development workflow smooth.

At the end of the day, managing communication is just as important as coding.

On to the next challenge!