August Reflection 2025

Monthly Reflection: My 4-Month Internship at Shopify

As I close the chapter on my 4-month internship at Shopify, I find myself pausing—not just to celebrate the experience, but to reflect deeply on what I’ve learned, how I’ve grown, and where I still have room to improve.

This internship was more than just a technical journey—it was a personal and professional evolution. From shipping my first feature to navigating cross-team collaboration, every week brought new challenges and lessons. But as I look back, a few key themes stand out, both in terms of growth and areas I want to continue developing.

What Went Well

I had the opportunity to work on meaningful projects, contribute to a large-scale codebase, and collaborate with incredibly talented engineers. I learned to navigate complex systems, write cleaner code, and communicate more effectively in technical discussions.

I’m proud of how I adapted to a fast-paced environment and took ownership of my tasks. Whether it was debugging a tricky edge case or proposing a better solution during a PR review, I pushed myself to think critically and act with intention.

Areas for Growth

While I made progress, reflection also revealed areas where I can grow. A few patterns stood out:

1. Being More Proactive in Communication

One thing I noticed was my tendency to wait—wait for feedback, wait for reviews, wait for someone to get back to me. While I didn’t want to come across as pushy, I realized that gentle, respectful follow-ups are not only acceptable but expected in a high-velocity environment.

Moving forward, I want to be more proactive in chasing down feedback or clarification when I’m blocked. A simple, “Hey, just checking in—do you have 5 minutes to review this?” can go a long way. It’s not about pressure; it’s about momentum and ownership.

2. Following Up When I Don’t Know Something

There were moments when I hesitated to ask questions because I didn’t want to seem unsure. But I’ve come to realize that clarity is a superpower. If I don’t understand something, the best thing I can do is ask—early and often. Not only does it prevent wasted effort, but it also shows that I care about doing the right thing, not just a thing.

3. Being Less Hesitant, More Forward-Moving

One of the biggest personal realizations? I was often too cautious—waiting for perfect context, over-validating every possible path, or delaying a PR because I wanted to be 100% sure.

But here’s what I’ve learned: you can only prepare so much.

I could run all the local checks, write comprehensive tests, and validate every known scenario—and still, something might break in production. Maybe an edge case wasn’t covered. Maybe a dependency behaved differently in staging. Perhaps a situation I never anticipated arose.

And that’s okay.

I now see that perfection isn’t the goal—progress is. The reality of software development is that you ship, observe, learn, and iterate. You do your due diligence, yes—but at some point, you have to trust your preparation and move forward.

Hesitating too long doesn’t eliminate risk. It just delays learning.

So I’m working on being less hesitant, more decisive. Not reckless—but firm in the belief that if an issue comes up, we’ll fix it. That’s part of the process. That’s how we improve.

A Lesson I’ll Carry Forever: The Technical Backpack

One of the most impactful pieces of advice I received came from my manager. He said:

“Your career is like a technical backpack. You shouldn’t need to carry everything.”

That metaphor stuck with me.

Think about it: when you go hiking, you don’t pack every item you own. You choose what’s essential for this trail. The same applies to your technical journey.

Yes, you might know five programming languages, ten frameworks, and countless tools—but do you need all of them right now? Probably not.

Your “technical backpack” should be curated. It includes:

  • The languages and tools relevant to your current role
  • The context you need to understand the codebase
  • The knowledge that helps you move faster today

But here’s the key: you can—and should—lighten your load.

When you finish a project, ask: What knowledge can I safely let go of? What context no longer serves me in my next task?

For example, after wrapping up a feature deeply tied to a legacy service, I don’t need to keep every detail of that system in my head. I can document it, archive the context, and make space for what’s coming next.

This mindset applies beyond code. It’s about mental bandwidth. The lighter your backpack, the more energy you have to learn, create, and grow.

Looking Ahead

This internship taught me that engineering isn’t just about writing code—it’s about thinking clearly, communicating effectively, and managing not just tasks, but also context and confidence.

As I move forward, I’ll carry these lessons with me:

  • Be proactive, not passive
  • Ask questions without hesitation
  • Ship with confidence—even if it means fixing things later
  • Curate my technical backpack with intention

I now see the real final boss—perfection. 🎮💥
I’m not there yet.
But I’m learning. 📚✨
And one day, I’ll beat it. 💪🔥

It’s not a goal. It’s an illusion. One that fuels hesitation, overthinking, and delays disguised as diligence. I used to think I was being thorough. Now I see: I was just afraid to ship.

So from here on, I’m not chasing perfect. I’m chasing progress. I’m chasing learning. I’m chasing forward motion.

Because in the end, the best code isn’t the one that never breaks — it’s the one that gets built, shared, and improved.

Shopify didn’t just give me a chance to build software—it gave me a chance to build myself. And for that, I’m truly grateful.

Here’s to the next trail, the next backpack, and the next version of me.

Thank you

Big thanks for reading! You’re awesome, and I hope this post helped. Until next time!