Four years ago, I joined Resonate Solutions as a Junior Software Engineer straight after my graduation from Monash University (Master of Information Technology).
My first day was 2019.07.22.
During those 4 years (or 1510 days), I grew as a Software Engineering Team Lead, managing a team of 10 developers, as well as wearing multiple hats, such as:
As I said, Resonate is my first technical job, and my first job in Australia.
But Resonate is not my first job.
Prior to my Master’s studies, I became a mom to my lovely son - Andy.
Prior to being a mom, I worked in a Game Company (Perfect World) as a project management assistant for 3 years.
My bachelor’s degree is in Arts, and my major is Journalism / Communications, I worked in media companies.
I always loved reading and writing, but I’ve never written a line of code before the age of 26.
So, at the age of 26, with an 8-month-old baby, I started my Master of Information Technology course and I’ve developed a great interest in coding / building things via the power of technology from 2017.
My management/leadership journey probably started 2 years ago (2021).
Okay, enough about my background XD.
In this article, I’d like to share my learnings from the last 4 years in my first software engineering job in Australia, and hopefully, it can help some of you in your own, unique journey.
In my first year at Resonate, I have to say that I was struggling, every day.
The first challenge I’ve got is that: I don’t know how to set up the project on my local.
I have to go and ask 5 different developers and each of them will think really hard for a couple of minutes, messing around with their laptop trying to find some clues, then they will get back to me saying: TRY this, if it’s not working, we’ll think of something else.
This main theme of me not knowing how to get things done just went on: when I tried to do a PBI / ticket, I had to go and talk to different people to understand what am I doing and how to achieve it.
Don’t get me wrong, I have obtained a ton of help from my teammates. They are great engineers trying to help me get things done, and they are open to sharing their knowledge with me.
Then, we hired some more engineers, and I started to onboard newcomers.
Although I’ve only been on the team for 3 months, as a person who generally hates to repeat myself, I decided to write wikis for all the things that I learned by asking people questions and making mistakes.
On a side note, our company did have a knowledge base somewhere, but it’s quite outdated, so, not helping.
And because so many people have tried to write documentation before (and failed), it is understandable that the leadership team was a bit skeptical about my “initiative” to write some more docs.
However, I am quite determined and sometimes stubborn, so I went on and created a notion page called Resonate 101, and started to write my own technical docs there.
When someone new joins, I would share that notion page with them, and ask them to edit the content if anything appears to be outdated.
This initiative of “restarting the wiki” went pretty well.
One day, my boss came to my desk and said: Luna, why don’t you write your wiki in Azure DevOps (similar to Jira), they just added a preview feature that supports markdown syntax, I think you would love it.
YES! I DO!
I migrated all the wikis to this new platform and started to spread the “love of wiki” in the team.
For example, when someone asks a question in Slack, I would quickly go and find the wiki page with the answer and send the link through.
And when someone has answered a question 5 times to different people, I would kindly put his/her answer in a wiki and send the link, telling them, they can use the link next time, and if whatever I’ve written is wrong, please correct me.
This is a great way for me to grow, I constantly learn from everyone and write down the answers to “echo” my understanding of the topic, and people really started to see the value of writing.
Finally, one day, when the team was doing daily scrum and we talked about something that only a few members knew the answer to, another engineer said the same sentence as me spontaneously: Can you write that down in our wiki?
Wow, how beautiful that moment is!
Now looking back, I can see myself accomplishing something that no one has achieved in Resonate, and I just did that in my first year there. That is, build a HABIT of knowledge sharing and technical documentation writing.
My manager saw my potential in “people management”, so in my second year in Resonate, I started to manage interns and do hiring from phone screening to offer.
I also learned why and how to let someone go for the best interest of the company and that person.
In terms of my work, I am one of the most reliable developers who can get things done with top quality. I help the customer success managers understand the technical parts by using non-technical terms, I have 3 direct reports, I manage the key clients’ onboarding projects and some of the migrations.
However, I was not happy. I feel my days are constantly repeating, I’m still doing my job, but I don’t have any expectations on what might happen in the future.
The worst thing is that as a manager, I have to motivate my direct reports.
The fortnightly 1 on 1s have started to feel like a burden to me, I’ve got nothing to talk about, and they’ve got nothing to talk about.
Gosh, I’m stuck!!
And I HATE this feeling.
I literally cried in one of my performance review sessions with my manager because I felt so lost and I didn’t know where I was heading towards.
One day, I learned a feature in AzureDevOps - Create queries and add visuals on a dashboard.
Out of curiosity, I wrote a query to check how many work items each of the team members (including me) has completed in the last 6 months.
The result: I’m the Top 1.
I changed the query time period to 1 year.
Still, I’m the Top 1.
But why I am not happy? I couldn’t figure it out.
I didn’t let it go (as I’m a stubborn person), so I kept thinking, thinking really hard.
I finally realized that my job as a Team Lead is not about being the Hero Developer in the team, it’s about going backstage and letting others take center stage.
At the same time, I realized that “the most number of work items” does not equal “creating the most value / biggest impact”.
The skills that served me well as an individual contributor really don’t help me to excel in my team lead role.
So I have to accept the reality that I don’t have the skills and I have to learn them.
I enrolled myself in a three-month management course, I read lots of management books.
I catch up with my friends to understand their experience as a manager and how they’ve built the skills.
One of the most important skills I’ve learned is that I have to think systematically.
For example, the solution to “things are not done quickly enough” is not “ask the developers to work harder”, it is to understand “why things are not done in a faster manner”.
I started to see the big picture and the root cause of some recurring problems.
And I highly recommend a life-changing book for me: Principles by Ray Dalio.
In my third year, some key people have left Resonate, one of them is the delivery manager.
As a SaaS company, we have many clients to onboard and maintain the relationships, roll out new features, and do deployments…
And to be honest, I hate the existing process.
I have to constantly join meetings that I feel are boring, I have to tell people to follow the rules that they never remember.
WHY??? It’s such a waste of my time and other people’s time.
First, let me say this, I have never officially been given this delivery manager role in Resonate. The previous delivery manager, in his last week, came to me and told me how he prioritises things (based on his experience), and he said: Now you can figure out what’s the best process.
Well…
If you know me well enough, you’ll know that I never say “NO” to something new.
I know it’s challenging (new responsibilities on top of my current duties), and I know I hate the process.
And most importantly, I know I love changing things to make everyone’s work more enjoyable.
So, I decided to take this opportunity (yes, I see it as an opportunity) and change things to be 100x efficient and give back people’s time so that they can focus on more important things.
The change that I’m trying to implement affects almost all the departments in Resonate, and by default, people hate changes. Although they also don’t like the existing process, still, why bother to change it?
I have to really thank myself who have built great relationships (and friendships) with people in different departments. Since the trust is there, it’s much easier for me to sell this new process to the people involved.
I did lots of alignment meetings, with upper managers, peers, with team members. I draw diagrams and change the Azure DevOps board around to reflect the new process.
Finally, I kicked off the Delivery Process 2.0 on 2022.08.15, 3 years after I joined Resonate.
The relationship helps, but the key to success is a deep understanding of the problem.
Throughout the innovation of the delivery process, I have to understand why things are being done the way it is, I have to understand what steps can be combined, what steps can be removed, what meetings need to be created, and what meetings need to disappear.
And the launch is just the start, I have to monitor how it goes, I have to host retro meetings (and take actions), I have to iterate the process…
The most rewarding thing for me is to hear that people have started to see the value of this new process and they like it!
Of course, nothing is perfect, but I’m fine with it, and I love feedback, I love the feeling of improving and creating values.
By the way, I also created a dashboard for everyone to look at on a daily basis to stay on top of the client deliverables - real-time data, a great async communication channel for managers to know what’s going on.
Lots of things happened in my first 3 years working at Resonate, but nothing is more extraordinary than what I have done in my 4th year.
This time, I volunteered to be our Client Management Platform’s product owner.
I’ve changed many things to make the work more enjoyable for everyone, but I still have something that I dislike - The manual work we have to do for each client.
Luckily, our CTO initiated this new platform that is about to change the way we work.
But… It’s not moving as fast as I would like it to be.
So one day, I asked the CTO, Is there anything I can do to help make this product development faster? I cannot wait for it to happen!
He kindly told me that he needed someone to write down requirements because they are all sitting in his head and he’s doing a million things already.
Sure, I’ll do it.
Well.. I might have gone too far because I managed to fill in the team’s backlog with all the work that is related to this new product.
The other product manager got “mad” (actually we are good friends) and said we should have 2 teams working on external and internal products separately.
Sure, I’ll build the team.
Now I’m officially the platform team lead, the scrum master, and the product owner of this internal product (while managing client deliverables).
The team has 10 developers, some of them are interns who work 3 days a week, and most of them haven’t worked anywhere before Resonate.
Well, the challenge was taken.
I put my focus on strategic direction and prioritization, I know that I have to pick the right things for my team to work on.
To help them get familiar with this new “baby” product, I decided to warm them up by giving some simple bug fixes to do without much time pressure.
After several months, my team has gained enough skill to tackle the complicated work items on the roadmap.
By the way, many people have come to talk to me, saying “This is impossible”, they told me all the stories about “failed internal products”, and “lack of senior resources”.
Yet I find the most hurtful thing to hear is: “No one likes this product, it’s not easy to use at all.”
Ok, why don’t I make it easy to use?
As a developer, I generally think of “solutions” based on “requirements”.
Now that I’m the product owner, I should be the one giving directions and requirements.
I didn’t realize this job is so hard, but also so fun!
Instead of writing code, I need to develop a roadmap and some milestones and break it down into epics, features and work items.
I need to understand why people don’t like using this product, what is the problem it’s trying to solve, and how to make it better without the effort of “starting over again”.
I learned to do mock-ups, they are quite basic but luckily my team members don’t judge :)
I learned to make tradeoffs and take the best possible guess by gathering as much information as I could.
I learned to learn from my mistakes and constantly improve my decision-making process.
I learned how to capture product signals, how to say no, how to combine work items together and build a sprint goal so the team can be focused.
I learned to manage upward, telling the leadership team how important this product is, and why we should keep investing in it.
I started to enforce fortnightly releases, and batch update all the clients together with the release. I want us to spend more time building the tool instead of working on manual changes.
I want this tool to be usable for non-technical users, so I included other departments’ users to try it out.
To make sure I knew what I was doing, I quickly learned product owner skills and obtained the certificated product owner badge.
After around 8 months, several newcomers joined the team, and they absolutely love working with this product (as a user & a developer).
Wow, we MADE it! It’s a true game changer, it enables Resonate to scale with ease, and change the business operation process.
Our new client onboarding time has been reduced from 4-6 weeks to 1 day!
That’s something I wouldn’t even dare to dream about 4 years ago.
And the best thing?
I’m part of it, I know how it happens.
It’s never easy to say goodbye to people you care about.
I’m grateful for all the support, help, mentorship, coaching, and most importantly the trust that my managers and the leaders have provided.
But sadly, sometimes it’s a necessary step, I decided to give back the stage to my talented team members, it’s time for you to shine!
This Friday (2023.09.08) marks my last day in Resonate, and I’ll soon start my new adventure with Canva as an engineering manager.
To be honest, I don’t know what’s ahead, I only know it’s going to be a great chapter with lots of excitement, problems, struggles, and growth.
And, I DO know how I got here.
Last but not least, I understand very well about my values and principles by looking back on the decisions I’ve made.
So, stay tuned!