“Our server is down. Is our dev team working hard or hardly working? Kidding :)”
Says on a funny/scary sticker a coworker gave me on my first day of work. Like the sticker said, my days at Buzzvil entailed plenty of server downtime and hard work, day and night, on weekdays and weekends. One year has passed and that one year has taught me a lot. In fact, I am still coding and learning but a little more better positioned to inform those interested in the start-up scene of what working at a Korean startup as a developer entails and what it takes to succeed there. I would like to take this opportunity to share things I experienced / learned / did right and wrong. If you take away a small “aha moment” or a click in your mind, I will be pretty flattered.
Every startup has its unique color and shape. What I share in this post are solely my first hand experiences and thoughts that are based on them. Please read with a grain of salt What is this meme? Some of you might be thinking. As an analogy to this meme, I would describe my Buzzvil experiences from five perspectives in a slightly light tone. What? 5 is too many? For those of you already scrolling down the page, I have an one-liner summary.
“Was super duper fun. And I would definitely want to do it again”
What my friends think I do?
Before joining Buzzvil, I had already took 4 semesters off from college for my military leave. Four semesters are a long time and I was eager to return to college. So, when I said I was going to instead extend my leave so I could work at a start-up based in Korea, I got various responses ranging from a disappointed “OMG(..), why..” to an encouraging “go for it”. To this date, I get many start-up related questions and the most frequent one is the following
“Is your startup really bottom-up? What does that mean in terms of culture and work?”
I can proudly say it is, in a heartbeat! At least Buzzvil I experienced is indeed so. I promise that a company of size of 50-ish people, tightly bonded, is hard to find and that is Buzzvil. I got to know every single one of my co-workers on some personal level and it was like making new friends in a new school semester. More surprisingly, the culture is still very professional, given how well-bonded members are. Buzzvil has no place for emotional appeals and personal relationships in its decision making process. No lie that my facebook messenger was sometimes flooded with work conversations but it is a proud confession that I enjoyed them as well! Buzzvil is able to stay professional and tightly-bonded because each member has proud ownership over their work. And because people take ownership, they also willingly take responsibilities and therefore do the best they can. There is no “just because” or “good enough”. A slight evidence of doubt leads to intense debates and the best result often comes out of such efforts. Personally, I was motivated to continuously get better at my subject matters because I grew to believe if I can’t convince myself, I can’t convince anyone. Whether that struggle was in the form of collaboration or personal efforts, I was able to make the most and learned a lot. On a slightly side note, I would like to thank my co-workers for putting up with my frequent digression and heated questioning. Friends, I tried. Engineering-wise, if you are motivated and competent enough, you can expect high flexibility in your work. Just like any startup, Buzzvil has heaps and heaps of problems to solve. It indeed is a blessing, however, to tackle such problems with qualified, often better, co-workers. When it comes to good collaboration in engineering disciplines, one plus one equals more than two. My days at Buzzvil were indeed full of experiences of such effective collaboration. Additionally, you can have the whole AWS infrastructure at your disposal. Getting exposed to various AWS services, you get to catch up with latest trends in cloud technologies and sharpen your understanding in its innerworkings and upsides and downsides. Buzzvil’s bottom-up culture owes much to its non-Korean employees. From Silicon-valley brand software engineers to a French chief UX designer to members from Africa and other sides of the world, Buzzvil has diversity. For such diverse members to work together and towards a common goal, a bottom-up culture is a must. As a developer, I got to develop how to communicate with my diverse engineer and non-engineer co-workers in a clear, logical, convincing way in order to get my ideas across and get arguments accepted.
What my parents thinks I do?
By parents, I mean those that are not fully familiar with the startup scene. However rosy the media presents, startups (and Buzzvil) have its unique set of problems and issues. Thankfully, however, you learn a lot by being exposed to diverse domains and dealing with domain-specific work. Before working at Buzzvil, I thought to myself that if “opportunities” present, I might give my own-startup a try. That’s an immature at best and very naive and ignorant statement. Now I know slightly better what building a successful startup takes. I said slightly better, because I am still far from knowing A to Z. From first-hand experiences, however, I have realized two important qualities good start-up software engineers should have.
Being prolific is essential to solving problems that startups face on a daily basis. When I say problems, I include regular feature implementation tasks as well as urgent development requests for high priority tasks that break your moments of development epiphany, frequent premature “doesn’t work” reports from co-workers, etc. If you fight such problems with the help of productive and powerful frameworks / tools and a handy cloud infrastructure, you can save a lot on potential brain cells destroyed. I definitely learned to quickly get up to speed on new tools and use them to my advantages. Being prolific also means doing less over-engineering and defining trade-offs in a reasonable way. Writing lots of code that no one ever ends up using doesn’t mean being prolific. Define thoroughly what to be implemented and what not in the design step and that will serve you well.
Writing quality code is equally important. One thing I learned the hard way is that every line of code written is another line to manage - It has a cost to it. Put another way, writing quality code is writing bug-free code. That way, the management cost is minimized. Of course, this is not easy. Bug after bug, you lose your brain cells non stop. In order to save your mental health and also earn respect from your co-workers, test early and thoroughly. Writing quality code doesn’t just mean writing bug-free code. Whether it violates the fundamental rules of engineering or lacks understanding of the fundamentals, some code is flat out bad. Fundamentals matter. Algorithms, design patterns, numerous best practices about many different subject matters, you name it. Without knowing those basics, your code is going to stink. Does all that sound like a super-star engineer or are you already well-versed? Whatever is your definition of a super-star developer, never stop growing. And consider adding those two qualities to your skillset. I too am still in my own endeavors.
what my boss thinks I do?
“Is our dev team hard at work or hardly working? ” Still sounds scary. Sounds less scary, however, now that I learned startups (and Buzzvil) don’t want you to work to impress others. Work instead in a goal-drive fashion. That will get you far and wide and keep you motivated at times of stress and disappointment. My overarching goal while working at Buzzvil was to learn A-Z about getting my service up and running as a developer and learn that by helping the company with whatever engineering needs they have. That way, my goal and company’s goal were aligned. I was at times too adventurous and wrote pieces of software that soon went obsolete, but those were also my attempts to learn the most and therefore help the company the most. And Buzzvil had leaders and bosses that understood that motivation, for which I am very grateful.
what I think I do & what I actually did?
Above all, I was most interested in solving interesting engineering problems and never stopped that endeavor throughout. Some of the things I did or attempted include building a recommendation system based on collaborative filtering, implementing a log-based in-house analytics system, approaches based on multi-armed bandit algorithms to improve ads’ CTR and etc. All of them, I believe, are hurdles to overcome for an exponentially growing ads tech startup. I am very thankful for opportunities I had, big and small, to discuss ideas, try out approaches, and implement solutions with smart and humble coworkers. I had no doubt about the company’s growth, moreover believed its growth would mean my growth, and worked to my fullest ability to achieve that. Time flies by when you are having fun and indeed the past one year was a fast and fulfilling year. One thing I can proudly say I did better than anyone else is that I enjoyed Buzzvil to its fullest, both culture-wise and as an engineer. Making lots of fun and competent co-workers and learning my strengths and weaknesses are also an invaluable gain. Doing what you love with best co-workers and loving what you do in a rewarding environment is the best you could possibly ask for and I got a taste of that at Buzzvil. If sharing my lengthy and hopefully fun experiences can directly or indirectly help others in their career adventures, I would be very happy. I would like to end with a cliche. Thank you for reading and Buzzvil is hiring!