The top 5 most important things I've learned working at a startup...so far!
4 months 2 weeks and 4 days.
At the time of this writing that's how long I've been working at this startup, and it's honestly been an amazing experience. It was always one of the goals of my career to work at a place where everyone around me was so full of knowledge and had so much skill that I was bound to soak it up and become a better thinker, communicator, and software engineer. While all of that has happened, I've gained so much more that I never thought I would. I felt like it would be really beneficial to share some of the most important lessons I've learned so far, let's get started.
- User empathy is much more palpable when you stick close to them early on.
We really pride ourselves on communicating often with our customers, and making sure their thoughts and concerns are at the forefront of how we build our platform. We have internal meetings, external meetings with many customers, and have various other avenues of how get user feedback including a built in survey feature, and it's been great. Even though our platform is in its early stages still, it's wonderful to see how it has changed and been made better by just constantly listening to what the customer needs and aligning that with our mission and vision of who we are and what we want to bring to the world.
There is definitely a balance to strike between our vision and the customers' expectations, but the more you communicate with them, the better a balance can be kept.
- Personal responsibility is incredibly important when on a small and agile team.
When working on a smaller team that moves quickly to build and improve on existing systems, it's incredibly important to have a strong sense of personal responsibility within the company. I'm not guided by anyone during my day to day, and once I open my laptop I make it a point to make a plan for the day based on 3 questions:
- What am I working on?
- Who do I need to sync up with?
- Do I owe anybody anything from yesterday/last week?
These three questions first thing in the morning sets a good path for the rest of my day with clear focus and intention. Take time to understand whether you're putting in the work to understand your day fully to where you have clarity on what needs to be done.
- Taking the initiative and focusing it helps more than hurts, there's always work to do.
If you're working at a startup that is growing fast with a great product fit, there's a LOT to do, and personally I absolutely love it. However, with fast growth can come that feeling of overwhelm, which can get messy if you're not focused. I spent a lot of time when I started trying to understand my role and what was more important vs what was less of a priority. This meant understanding our kanban board lingo (list of tickets and their status), our sprint planning schedule, staying aware of the bigger projects that we were working on, documentation that could help with various tools that we used, etc.
I set myself up on the right foundation by understanding all of that first, and then focusing my initiative on the things that really mattered, and it hasn't let me down yet!
- Get it right first, make it perfect later.
When you're trying to move quickly but also correctly, your code will almost never be perfect. I've learned multiple times over that, contrary to my personal need to make things perfect the first time, things just need to work and be fully tested the first time around. You can always come back around later to refactor to your liking.
What's really important to understand as a new engineer coming onto a small and fast moving team is that we tend to think that we need to make the least amount of mistakes for fear of making a bad impression, but everyone makes mistakes and learns from them to get better. It's a part of what we do, and there's no getting around that, ever!
- Get out of your comfort zone often, startups are THE best place to do that.
This has to be my favorite part of working at a startup, the ability to step outside of my comfort zone early and often. Being able to work across different parts of the team and not feel isolated on a single team allows me to see more than the code. I'm able to see how it actually affects the customer, and how perception of the platform affects the business development team, the design team, the founders, and everyone in between. I've gotten to work with so many people in HR, Finance, Legal, Design and other areas to really understand how our platform needs to behave and look.
Not being forced to only work with the engineers on my team (although I appreciate and care for you all if you're reading this!) allows me the opportunity to help build a platform that's accessible, easy to use, and beneficial for our end customers. It's so important to branch out as an engineer and understand the different parts of the company that you might never directly touch, because there's always something to learn that you could bring back into your own engineering world. Features, fixes, and complete re-works that benefit the customer are fueled by discussions across the organization, as we all have something important to offer as a team close to the product, whether you're directly contributing code or not.
As I continue working here with a great group of people in and out of my engineering team, I hope I can keep learning things about myself not only as an engineer, but as human being as well.
Thanks for reading.
(Cover Photo by Daria Nepriakhina on Unsplash)