I just finished my final week at a small FinTech startup in San Francisco, working as a Software Engineer. I was there for just about six months. This was my first experience with such a small company — 7 employees, including the founders — and I want to write down some of my experience and what I learned.
I do not know yet what I am going to write, but I want to give a warning up front: my experiences are not universal, your results may vary.
The best part of my experience at this company was the freedom and power that I had. It was easy to suggest an idea, and have my coworkers take action on it almost immediately — depending on the idea. Any idea usually had a champion, and it was up to the champion to make it happen.
If you did not need buy-in from your co-workers, you could pretty much just do the thing and no one really cared. This type of freedom is very different from what I have historically had as an employee, so it took me quite a long time to warm up to the full extent of it.
During my second month with the company, I asked to be part of the recruiting effort. The next day, the founders gave me admin privileges to AngelList and showed me their process. I also started posting to HackerNews and /r/Scala. It took very little swaying to be able to spend $300 to post on a remote jobs board.
This may not be the experience at every startup, but I also really enjoyed the transparency and quick feedback. Want to know the monthly revenue or expenses? I just asked during the all-hands, and I would get a 10-minute explanation and a pretty detailed breakdown.
The truth is, founders have to be more transparent when they are running an early-stage startup. Investors expect it, and as an employee, you should expect it to. You are taking a risk by joining a startup. For example, you should learn about the projected runway before accepting the offer. Do your research.
Lastly, I want to point out a really nice mould-breaking perk of my experience: work-life balance. I worked 40-hour weeks and that was it. No late nights at the office.
Almost every experience comes with some challenges, and for me, working at a startup was no exception.
As it might be expected, there was a lack of structure. I have had people describe me as subversive before, but apparently I do like a little bit of structure and process. For example, there was not much discipline around the kanban board, and despite the JIRA cards being in priority order, the priorities were never really clear to me.
This ties into another point: lack of direction. Perhaps not a lack of it, but that it changed so frequently, and there was never much time to breathe.
As a software engineer, what maybe hurt the most was the codebase. There was a lot of technical debt, and even after six months of working on it, I am not sure if I was digging up or down.
Lastly, something else I would have changed was the lack of collaboration. I come from a background of pair-programming, in highly collaborative environments. This is probably not universal to all startups, but the environment felt pretty isolating to me. This is just my personal evaluation — I know plenty of developers who love isolation.
What did I achieve during my time at a startup?
I think my biggest impact, outside of my individual contribution to the codebase, was being part of recruiting. I helped transition the engineering team (and founders) to supporting a full-time remote engineer. I also helped source many of the candidates, including the one we hired (hi!), during one of our recruiting efforts.
I introduced retrospectives to the engineering team, facilitated them while I was there, and helped/mentored a new facilitator before I left.
I also introduced tests to parts of the codebase that did not have them before. I was strict about adding tests to new features, but I was barely able to cover a small portion of the codebase before leaving.
On a smaller scale, I updated React to the newest version, made some small refactors, and helped move toward the shared objective of an individually deployed API and web application.
I did manage to implement a bit more team bonding — introducing weekly team lunch outtings, at least one video game afternoon, and a few team hikes.
I am sure that I impacted and influenced the team in other ways, as any individual at a 7-person company would do, but it is difficult to measure or perceive the differences as I have no idea what it was like before I joined. I hope that my influence was a positive one.
There are a few things I wish I had done differently, but I will not spend much time on this.
I wish I had recognized the amount of freedom that I had earlier in my role. It would have given me the confidence to advocate for and make bigger changes.
I wish I had spent more time becoming familiar with the legacy architecture. I did not take part in many production deployments, and I was still unfamiliar with how to run some parts of the codebase before I left. I wish I had frontloaded this learning to make myself even more valuable.
I wish I had pushed for End-to-End/Acceptance tests. There were never any in place, and I think these would have been incredibly valuable to increase confidence in the product.
What did I learn? I think, as a summary: I learned how to operate in an environment that I had not been in before. I learned how to recognize the freedom that I had. I learned more about my own confidence and ability to speak up. I learned more about how to interact with a legacy codebase.
I also learned a lot about startups in general. Working at such a small startup and being able to work closely with the founders and to hear their experiences was incredibly enlightening. I really appreciate everything they taught me.
Furthermore, as it was a FinTech startup, I learned a lot about finance. I have no idea if this will ever apply to me, but I really enjoyed learning the intricacies of the finance world.
I was a bit hesitant to join a startup, but it turned out to be a valuable experience. I jumped in a bit eagerly, but I do not regret it. I was able to leave on good terms, though a bit earlier than I originally hoped.
Want more freedom? Want to work with a small team? Want to learn what the startup world is all about? Start applying. There are many, many startups and I almost guarantee you can find one that you like. San Francisco is a hot market right now, and it is hard to find talent locally.
If you are interested, you might like a previous article I wrote about finding a job in San Francisco where I talk about how I found this position.
Want to share your experience at a startup or ask me more questions about mine? Reach me on Twitter: @NickOnTheWeb