Jolly Good Old Days

My job (Jolly Good Coder, “CEO and CTO”) at Jolly Good Code is finished. I learned an immense amount of things. Working at Jolly Good Code motivated me and help me become a better engineer I am today. Endless thanks to my Jolly Good Colleagues: Winston Teo Yong Wei and Chew Choon Keat! I'm eternally humble and grateful to have the honor and pleasure to work with them, and learn from them.

I joined Jolly Good Code in its early stage around Mid-July 2014 as Employee #1 (yea ✌). The following is my story worked there and some things I learned along the way.

Connecting the dots

How I got hired we need to fast backwards to RubyConf Taiwan 2014. Winston came to Taiwan and gave a talk: Happy Teams. The talk was great and was very interesting for me (Still awesome, recommend you check out). This is my first conference ever. The talk was like a delightful light, shines my gloomy life. So I gathered my courage and approached him to talk more about it. This is how we knew each other. Then after the conference, we went to the RubyKaraoke (My first Ruby Karaoke ❤ ever). THAT WAS A GREAT NIGHT!

Around that time I just finished my last job and then one day I saw Winston wants to hire someone to help his company on Facebook. I applied and with an interview. Then voilà, I joined Jolly Good Code! 🎉

I think the main reason Winston hired me was because: We sang a perfect duet together at the #RubyKaraoke party after the conference 😉, and another reason maybe is because I contribute to Open Source:

My GitHub profile before joined Jolly Good Code

My GitHub profile before joined Jolly Good Code

So important lessons noted here:

Working Remotely

This job is also my first time working remotely full-time. That was a lot of challenges. I enjoy life without pants, read the bible, and many other stuff over these two years. Working remotely could be 12 hours a day or 4 hours a day. It is all about trust and responsibility. Async communication is key. We have three persons in total based in Singapore (2) & Taiwan (1). No time difference between Singapore and Taiwan (but why fly from Taipei to Singapore took 5-hour 😱) and we're Remote-First. Time Zone is less of an issue for us.

Jolly Good Code is a Happy Team

Everything in Winston talk: Happy Teams were all checked!

With a happy team and chosen right language and tool, we do client work, consultancy, training and created some products, open source, and spread our love of Ruby, and better ways of Engineering.

Client Work

I remember the first project I did was to rewrite a joomla website into Ruby on Rails in three months 😱 I did many client projects at Jolly Good Code, from MVP to maintain legacy code. With these projects I participate, practice and learn agile practices in action, embrace tools like Pivotal Tracker and Trello. Practicing TDD, refactoring, fixing tests, trying out new gems / patterns / ways, wrote Unit / Integration tests, code review, leverage GitHub flow, feature branch, frequent rebases, merge with style, help debug memory leaks, tune app performances, secure the app data, all aspects of web application.

Products

Disclaimer: These products are not failed, they're just not succeeded yet 😅!

Training Courses

Winston always wants to find a way to give back to the community. So he taught Ruby on Rails in Singapore. I once had a chance to Singapore and help him with a Ruby on Rails training at an Enterprise together and later on more trainings evolved and a WIP Rails book was born.

Simplest thing first

Given the current circumstances, did the simplest thing that could possibly work.

The principle of Good Enough

Simplest thing goes hand in hand with the principle of “good enough”. I am the kind of person seeking for (the level of) perfection (I can achieve for now). So was very frustrated at first, now I learned how to find the balance. Make the best decision at the moment.

Solve Problems

Choonkeat's Twitter has this line in bio:

i solve problems

Which is very cool! I think he can solve any problem if he is not busy changing diapers :)

I hope one day I can be a great problem solver like him.

Don't get stuck

If stuck for too long, let's say 30 minutes, seek for help. Because nothing is real until it is shipped, and maybe now isn't a good time, take a break and come back at it.

Don't be obsessed with your code

If today the code does not fit our need anymore, we need to throw it away. Everything could be changed.

Ask a lot of Questions

No one ever has everything figured out if you don't ask questions, things are always changing, we need to ask a lot of questions in order to figure things out.

Making Mistakes

Jolly Good Code is a company that you can make any kind of mistakes and no blames whatsoever! I found it is important to make mistakes so you learn and gain experiences.

Sharing is Learning

I suggest to Winston that we abuse GitHub like a Pro. That's why we use GitHub issues as our blog. Because GitHub has the best UI & UX for our target readers and everyone already got an account, ready to comment on. Some of the posts I am proud of:

Helping people

Winston and Choonkeat helped me almost about everything. They're not only great developers, but also great mentors. At the end of day, it is group of people (a company) doing work. So helping others is actually helping yourself, too.

Engineer happiness

The most important thing from Matz's philosophy on Ruby:

Ruby is designed to make programmers happy.
-- Matz

We are passionate about being Jolly, producing Good work, and writing Code. It's Software Craftsmanship (ソフトウェア職人). Committed to ethics and morals, integrity.

Talks

12 various talks given! I am a rather shy person actually, this couldn't be done without the encouragement by my Jolly Good Fellows!

Conferences & Meetups

I love going to meetups and conferences. It is a way to prevent burn out and refill my passions of working. Jolly Good Code enables me to attend / travel to these conferences / meetups:

I shared many reasons Why I attend conferences post by awesome Lim Chee Aun). I traveled to many meetups and conferences, met many nice Rubyists, all people I met are super lovely, and made friends with amazing people all over the world.

Community Work

Winston did excellent jobs organized RedDotRubyConf, he organized RedDotRubyConf for more than half of decade and show me how professionalism is like! He often kindly asks me about my opinions and let me be part of it. He even published a conference playbook at the end.

Volunteer

I got "OK, have fun and enjoy" every time when I said: Can I use some of the work time to contribute to events like Rails Girls, Rails Bridge, and GitHub Patchwork. Those Aha moments are the most valuable things also it feels so good to help people.

Translations

With the job at Jolly Good Code, I was able to maintain the Chinese locale of Ruby Official Website (I'm probably maintaining forever) and translated tons of documentations like Ruby on Rails doctrine, and Rails Guides, a variety of style guides.

Open Source

Before I joined Jolly Good Code, I already contributed to Open Source sometimes. But since day one, explicitly in the first email, Winston wrote to me, and I quote:

At the same time, I want you to continue to contribute to open source,
in the ways that you are already doing. Don't stop.

So I contributed more to Open Source, I got many internet points on my GitHub profile 😁:

JuanitoFatas GitHub profile after Jolly Good Code

JuanitoFatas GitHub profile after Jolly Good Code

At Jolly Good Code, we love using open source software as it makes us nimble and productive. We love even more to create open source software and contribute back to the community! Jolly Good Code has produced many Open Source tools:

Finally...

When I am at big difficulty of life

Last year around July, my mom got Stroke. That was super tough times for me but Winston & Choonkeat gave me every possible support that friend, colleague could ever give. For that, I couldn't thank them more! 🙇

Moving Forward

I am very blessed to have the opportunity to work at Jolly Good Code with great people. I was so lucky to have work with Winston and Choonkeat who helped me through the bumps in the road. I got constant praises and kind words with everything I did. This makes me feel the work I did was appreciated. I received loads of great advice from them, I was so lucky to have got on this journey.

Singapore & RubySG community has became a very special place (+ the great food, good startup scene) in my heart (I even cried when I saw the news that Joseph Schooling won the gold medal 😢). We have a guide for you if you visit Singapore.

Also, never stop learning and growing your knowledge! :)
-- Winston Teo Yong Wei

I will pack these Jolly Good Lessons to whatever adventures ahead with me. It's a lot like leaving home. Winston is like my founding father of my underdeveloped software career. And Choonkeat always give me a sharp perspective to look at problems, he solves problems swiftly, I still have a lot to learn. But all good things has an end...

Now I will remember those Jolly Good Memories, lessons, spirits and became a Jolly Good Fellow. Lastly I want to say:

To my lovely Jolly Good Fellow that make me feel welcomed, trusted, appreciated, and respected on a daily basis, it has been a blessing to work with you all, and my sincere wishes for you, your life, your families 🎉

You guys rock and enrich my life. Thank you all for being awesome. 🙇

Chonnkeat, Winston, and Juanito Fatas at RedDotRubyConf 2016 after party

Chonnkeat, Winston, and Juanito Fatas at RedDotRubyConf 2016 after party

🌈 Jolly Good Fellows at RedDotRubyConf 2016 after party 🎐

Yea, I ord loh 👋😎

Love 😘,
Juanito Fatas