My computer science degree didn’t teach me that much about software engineering.
I remember coming fresh out of college with no clue what a Senior Software Engineer did. There was a vague sense that experience was valuable, but it was difficult for me to articulate what that meant in concrete terms.
I spent the year after that at Google. Google is a great place for new grads, because it provides a lot of structure, guidance, and examples of what good engineering management and practices look like. Unfortunately, it’s very difficult to shine in the company of tens of thousands of great engineers. Every company only has so many projects that it can take on at once, and therefore only so many roles for team leaders.
Small companies are qualitatively different from large ones. When I joined FOSSA, there was only 1 other engineer (and a technical founder, but founders spend most of their time thinking non-engineering thoughts). Over the last year, we’ve roughly tripled the team to 13 (of which 7 are engineers).
Being an engineer at a small company is more than just engineering. It also means interacting with customers, fielding support calls, participating in sales meetings, doing on-site deployments, making UI design decisions, coordinating projects, building hiring pipeline, and occasionally taking out the trash.
At the end of the day, these tasks must get done. For me, this has meant learning to wear a lot of new hats:
- Building an engineering hiring process from scratch.
- Participating in on-site customer sales meetings.
- Handling customer support calls for parts of the codebase that I didn’t write.
- Coordinating projects between engineers, product, support, and sales.
All on top of the usual engineering work. Thankfully, I work with a great team who help share the burden.
Being an early engineer is not easy work. It forces you to grow and develop skills that you didn’t know you could, because nobody else is there to wear that hat for you. The reward is discovering that putting on new hats gets easier every time.
Our team has now grown to the point where it makes sense to reflect on and share what we’ve learned. Starting this week, I’m writing a blog post every week sharing my experience with building a great company and a great team from the ground up. Hopefully, these posts will be useful for your own growth.