charles c. lee

charles c. lee

staff engineer at Shopify

03 May 2016

👋 Hello World

Less than a year ago, I joined a startup as a software engineer. As engineer number six of an ever growing team, my introduction to the startup life has been a giant collection of learning experiences.


Being my first job within the tech industry, one of the leading factors in accepting an offer was the promise of being mentored. Learning something new is a guarantee in any new career but being guided and taught by a dedicated individual is a rare opportunity.

With a small team, the following are possible:

One on Ones (1o1) - Every other Friday, a 30-minute block (or longer) is dedicated to discussing my progress as an individual, one on one. These talks usually take place at a nearby cafe but some have been done while walking around the city if it’s nice outside. The nature of the discussion can be about anything including personal matters, work related issues, or simply a progress update. Being able to talk to the engineering lead (now the VP of Engineering) is both a humbling experience but also an amazing opportunity to get honest feedback and/or motivation. It’s refreshing to hear that I’m doing well during a particularly stressful week and receiving any constructive criticism always feels like an honest attempt to help me.

Accessible Senior Level Developers - Almost half the engineering team is composed of senior level developers. Although there isn’t a one junior to one senior mapping of any sorts, there is usually one developer within the team that knows exactly how to help you with almost any problem. I did want to note that they have their own tasks at hand and aren’t just information banks that I can access at any time but the frequency that they’ve taken out of their day just to pair program has been more than enough for me. Let’s not forget the value of code reviews. I’m ingrained with the idea that if a change was made, a spec (test) for it should be attached to it. Whether it be a regression test, a unit test or a behavioral test, there needs to be some form of testing that ensures that the bug/refactor/addition/removal stands the test of time.

Understanding the Company Mindset

Let’s be honest here, startups are tough. Tough in the sense that it’s more of a sink or swim situation for most companies. Although this company has been successfully funded in the past few years, the mentality to perform still remains. There’s a consistent need to push for revenue, to increase value to both users and investors and to consistently improve the platform.

We win as a team. An accomplishment in any department, whether it be marketing, engineering, HR, etc., calls for a celebration from the entire team. Understanding that every department’s effort affects the company’s overall success encourages me to play my part well.

To even further drive the point of working as a team, the company practices objectives and key results (OKRs) which are public goals where an individual owns a specific metric and is held accountable by the others. These metrics range anywhere from site performance to revenue milestones — any factor to further improve the company.


I’m thankful to have the opportunity to work with a supportive team and to be able to grow in this welcoming environment. If you’re just interested in chatting and live in the lovely city of San Francisco, I have not yet turned down an offer to grab a cup of coffee/tea!