Monday, May 22, 2017

Life at a Successful Startup

I started to work for Confluent, Inc. exactly 6 weeks ago, and I am ecstatically compelled to say it is the best job I have ever had. :D Over the last 6 weeks, the company has provided the perfect working environment that allowed me to push myself technically/personally and just be myself.

If you don't already know, Confluent is the company behind the de-facto streaming platform Apache Kafka that powers modern Internet companies as the backbone that supports stream processing, microservices integration, logging/metrics, cross-datacenter replication, and more.

As an open-source based company, we use many open-source technologies from development to production. Being on the Tools team, I have had the opportunities to learn and work with Kafka, SEO, Docker, Jenkins, Ubuntu/Debian and open source licenses, Python 3 with asyncio/SQLAchemy/Sphinx/Jinja, Vagrant with VirtualBox, AWS (EC2, S3), Markdown, git with github, and good old bash. It is amazing to see how mature open-source technologies have become and so fun to learn and work with -- I only wished I started learning about them sooner. From my previous job, I have already worked with Python (mostly v2) stack and git, but none of the others. On my personal time, I have open sourced a few projects on PyPI that are hosted on github, so I had some similarity with that but not dealing with branches and PRs as I was the only contributor to my projects. 

On my first day, actually first hour ^_^, I jumped straight into a meeting with a dozen engineers across the entire company, including the CTO, where engineers were presenting demos or summarizing the end of Tools Spike, a project that temporarily sourced all engineers in the company to work on improving tooling -- good companies know how important that is for engineering productivity and being competitive in the engineering space. It was great to know the company's emphasize on the importance of great tooling.

On my 1st week, I had the opportunity to learn about Kafka and overview of tooling and meet with colleagues and learn about their roles. In a startup with about 100 people, you get to talk to everyone and learn about different aspects of the company. For someone that is aspired to start his own company someday, it is a great place to learn. :) I did go overboard with the learning/questioning a bit -- thankfully I have a good manager to let me know that, LOL :D. On Thursday, I attended my first weekly No Pay Thursday, where everyone goes to their favorite restaurant and the company picks up the tab. Fun & delicious. 

On my 2nd week, I had the opportunity to work with the marketing design team on improving SEO for Confluent Platform docs. It was interesting to learn about the complexity and mysterious nature of SEO and canonical URL and the extensiveness of Amazon AWS and S3. We made a couple of improvements, along with simplifying the build/deploy process, for docs that week week, and I got the chance to stage and push the docs to production on the same week. :) For releasing changes, from dev to prod, it is just me -- I love being an owner and having the power to go along with that! Every month, we also celebrate everyone whose birthday is during that month -- love the personal touch. I hadn't attended one of these since my first startup, CMSI, more than 10 years ago -- that company will always hold a special place in my heart.

On my 3rd week, I got to work with my favorite language, Python, on two projects -- a test dashboard webapp and release tooling with several CLIs -- both authored by my awesome teammate/friend Alex. Fixed a few bugs and re-organized the Jinja layouts and CSS styles, and of course, pushed the changes to prod in the same week. :) Being an engineer that is obsessed with clean and well organized code, I also split the projects into their own project folders with a common one for library code. And closed out the week with adding automatic syncing for Kafka from Apache's repo to Confluent's fork and wrote a one-pager to add unit and dependency testing for downstream projects. Lucky me, there was a planned company outing to see the Giants game -- good food & companies, why not. :)

On my 4th week, I resumed work with the marketing design team to finish up on final SEO changes -- the design team added a cool versions menu widget that allows user to select which version of the doc to view, and then I backported that along with all other SEO/layout/CSS changes from current version to all previously released docs. The one-pager got reviewed that week as well, and I managed to finish adding unit test before syncing Kafka -- first milestone out of five. And then it's Cinco de Mayo!! Cheryl knows how to make great margaritas! :D 

On my 5th week, I finished up the unit/dependency tests work by merging the sync job with existing Jenkins jobs that were already doing the unit and dependency testing. While working on that, I had to learn Jenkins and Docker and the integration between the two. It was fun learning both, especially Docker -- super cool tech, where have you been all my life, LOL? This is also the week we announced Confluent Cloud and Exactly-once-Semantics during Kafka Summit in NYC. Awesome job by everyone at Confluent! Talk about an exciting week. ^_^

On my 6th week, as I was summoned for Jury Service (which didn't happen), I didn't plan to do much and also I felt I needed to know more about some of the open-source technologies that we are using to better do my job, mostly spent the week learning Ubuntu/Debian, open source licenses, our build/packaging/release process, more Docker, Vagrant, Amazon EC2, learned there is actually a test framework called Bats for bash -- who knew, LOL. I also went ahead with updating and simplifying our packaging scripts and docs as they were a bit outdated. Our base packaging/release scripts are written in several impressive bash scripts -- impressive as amazingly it works really well, which isn't something that I thought bash could do (perhaps it is a testament of the engineering skill of the author. ^_^). We do plan on rewriting them in something more maintainable in the future. I forgot to take pics of the first happy hour out on town -- we have weekly happy hour where we rotate the location to be in the office and out in downtown Palo Alto, but I made sure I took pics for this week's. Yummy appetizers, beers & wines, and fun colleagues/friends equals seamless perfect integration of work & life. 

Now on my 7th week, I am on PTO as we have unlimited vacation and I always take a week off every quarter to relax/charge up and to have fun -- celebrating my son's 3rd birthday. Right now, I am spending the night at Safari West sitting on the front porch listening to the wild animals -- serendipitously this is where Confluent held their last year's company trip ^_^. It's 3 am and too excited to sleep, a bit chilly, actually getting too cold, but I wanted to finish writing this -- once you are inspired, as a writer, you just gotta keep going, you know what I mean -- as I want to tell everyone how ecstatic I am working at Confluent with awesome engineers and friends and how excited I am about its future.

In short, I love my job! :) Do you love yours? If not, we are hiring awesome and humbled engineers. If you want to work at a successful startup that allows you to be at your best technically/personally and have lots of fun along the way with like-minded engineers, please do take a look at our careers listing. We are planning a company trip to Costanoe in July, so be sure to join before then and get ready for the best camping trip of your life -- I inferred based on pics/stories from last year's trip ^_^. It's going to be my first overnight company trip, so I am super excited and looking forward to it!

No comments:

Post a Comment