The last 12 months at Expensify have shaped my growth both as an engineer and as a teammate. As I prepare to go to my first RIT Career Fair to recruit soon-to-be graduates, I want to share four key insights that have become invaluable to me as I continue moving forward in my career.
1. When you need help, ask for it
I joined the Expensify team immediately after graduating from college. When I got my Gmail inbox set up during my first week, I felt a bit overwhelmed by the surge of communication coming along through the wire. Everyday felt like a fresh tornado of things happening in a magical form of controlled chaos and in the beginning, I felt much more like a spectator than a contributor. This grew into a deeper sense of anxiety with thoughts like:
- “I’m not moving fast enough”
- “I’m learning too slow”
- “I’m making too many mistakes”
Even though I had just started at Expensify, I felt like I was trailing behind and it made me quite uncomfortable. I reached out to our Engineering Director, Matt McNamara, about my insecurities and his response stuck with me to this day:
“For as intimidated as you may feel, don’t fall victim to the imposter’s syndrome. Know that it’s through a yearning to become even better than we are today that makes every single person on this team amazing.”
He put a name to my uncertainties and greatly reduced my stresses in a single e-mail. After that necessary boost of confidence, I began to shake my initial doubts.
Later on that year, there was another moment when I felt troubled and reached out to Matt late one night to find a time to talk. We spoke the next day, immediately following our offshore 10 AM meeting. He lent me his ear as fast as he could. While juggling a million tasks, Matt made certain that he was available to support me – to support his team. In that brief moment, he demonstrated the meaning of being a role model.
Lesson learned: When you feel like you need to reach out to someone, follow that instinct. Find who you trust and respect and seek their guidance. Problems are rarely solved alone, so don’t be afraid to lean on others to help you when you feel stuck.
2. Find mentors
The greatest role models are there not only when you stumble, but also there while you grow. Having a recurring meeting to discuss feedback, general thoughts, and more is just as vital as impromptu conversations. These weekly sessions are spent reflecting on the past segment of work and discussing:
- What went well? What went not-so-well?
- Did you try what we discussed in the last 1:1? Did it work?
- How do you feel about the team, about your work?
- Are we maintaining growth?
- How can I do better? How can we do better?
- Are our priorities on the same page?
These scheduled 1:1s are about identifying the actions necessary for improvement right now. Not tomorrow, but as soon as the conversation ends. They are a moment to take a deep breath away from the day-to-day work and reflect on whether the current strategies are effective or not. From cross-team communication and processes to discussion of personal issues and work/life balance, these sessions exist to help both the mentor and mentee grow. And we grow through uncovering the actionable next steps that propel us forward on the path ahead.
Lesson learned: Find people who inspire you, who blow your mind with what they’ve accomplished and the complex problems they’ve solved. People whose passion inspire you to try harder than you knew you ever could. When you discover these people, set up recurring 1:1 discussions with them. Their time and experience is invaluable, and although there is no substitute for either, you can absorb both from your role models. The most important thing you can do is listen to what they say with your whole heart and then figure out how to apply it to your own path.
3. Learn to #focus
The majority of my 1:1 sessions encompassed the topic of #focus. Specifically, I’ve found three key areas that I continuously strive to improve on:
“What is the very next step in making this work?” When your job has Google Chrome open the entire time, it can be difficult to stay away from Facebook, Reddit, and whatever piques your interest. Although it doesn’t hurt to browse on occasion, the line between mental break and distraction blurs if you let it. And it’s not just the internet to be wary of. At Expensify, everyone is fun to talk to and the jokes are plenty throughout the day. Yet as social as everyone is, it’s still important to recognize when it’s time to put the headphones on and go heads-down on your work. Growing the ability to get in the zone, or into a state of flow, is one of the best ways to spend the day. As our CEO David Barrett puts it,
“Make sure you are optimizing for the ‘global maximum’ and challenge everything you do to be the most valuable thing you can imagine out of the *entire* set of possibilities, rather than getting trapped into a “local maximum” of only picking the most valuable thing out of a tiny corner of the set.”
“How/why does it work/break this way? How would I build it to work better?” Even though it’s critical to focus on one task at a time, unexpected switches in context are unavoidable. Jumping from one task to another can become a mental burden and will work against your ability to think tactically. To reduce this burden, write down detailed notes wherever you are actively working. For engineers, this usually means on our Issues and Pull Requests. This small yet powerful habit allows you and your teammates to dive deeper into complex issues with less mental preparation. Upon returning to an issue when the context is no longer fresh in your memory, these notes are the foundation for making accurate and rapid decisions. Even when you feel stuck after hours of no progress, write out all the ways you’ve attempted to understand and solve the problem; I guarantee it will make work easier for your whole team.
The Big Picture
“What’s the next step in my master plan?” Identifying next steps and accurately perceiving the current landscape are still just two pieces of the pie. Think about where you want to go, what you want to do, and how you want to see the world. How do you want to live your life and how does your job take you there? This philosophy of challenging each day to be meaningful became abundantly clear to me when David wrote to me:
“Mainly, just take your life seriously and do something amazing with it. You’ve only got the one, and if you finish up with little more than a full bank account and collection of random memories, you’ll have nobody but yourself to blame. Make the choice to be amazing, in whatever way that amazes, inspires, and challenges you, and don’t give up.”
4. Communication is Golden
In college, the unfortunate case is that many randomized teams contain people who are B, C, and even D players. They don’t send updates. They don’t actively help progress the project. They may eventually contribute, but usually it comes at the cost of generating even more work. I recall an awful story from my best friend during his Software Engineering Final Project at RIT. Getting more than two people on his team of five to help was as much a struggle as the project itself. In fact, one team member would agree in client meetings to build features outside of the original requirements, and then they wouldn’t even work on the feature! Their inability to sync up with the team’s priorities caused enormous stress and late nights for those carrying the weight.
It might seem obvious, but communication is key to a successful team. That story highlighted this, but that lesson didn’t sink in until I started at Expensify. In fact, so much of my job relies on succinct and accurate communication that it’s become second nature to me. I spend just as much time communicating about code as I do coding. As an example, here’s everything that I do that’s not directly coding.
- Technical Communication
- Between engineers
- Between new engineers
- Between non-engineers
- Pull requests
- Company-wide mobile team updates
- Mobile app releases
- Post mortems
- Even here, it’s crucial to document it well. One of us on the team will definitely return to that line of code and we’d rather not hate each other! Documentation is context and context makes it faster to solve problems and progress.
Group software engineering projects in college often fail to reflect the good fortune of joining a team where everybody brings their A game. Here, everyone is either a star player or is in the process of becoming one and I would not have been able to learn these lessons without clear and honest communication during my time at Expensify.
Looking back, I find it difficult to imagine just how much I’ve grown in the last year because so much has happened since I’ve started. Over the course of product launches, mobile updates, and countless peer code reviews, I’ve learned to value the importance of #focus, open communication, and respect for deep humility. Looking forward, I hope I can inspire this year’s graduates the same way I’ve been inspired here.