Filipino Engineer's Reflection on His First 6 Months


Every year around October, when fresh graduate engineers reach their 6th month in Retty, they write a blog entry reflecting upon their experience so far. This year's first blog entry is from me, Eugene Sinamban. I joined the company back in April as a Backend Software Engineer. It has been a fun experience working here, and I hope you get a feel of how it is to be an engineer in Retty.

What is Retty?

First off, what is Retty anyway? Retty is a Restaurant Search App based in Japan, available through the web or mobile apps, where you can discover the best restaurants that match your preferences. We are also the only restaurant search app in Japan where users have to register their real names, and users are encouraged to post only positive reviews that will help others find the best restaurant for them.

Why I Joined Retty

Why did I join Retty? I have three reasons.

  • The Atmosphere.

Me(left) and Syu(right)

The vibes of the people are just great, and people are always up for a good discussion regarding the product. We work hard to deliver what we believe would make our users happy, but we also play hard to relieve us of everyday stress. It is a fun workplace, but without the social pressure that goes with most companies.

  • User Happy.

This is one of the "Retty Ways", which is basically how we base our decisions and actions on. We want to create a product where our Users become happy by discovering the best restaurants for them.

  • Open Communications and Constructive Criticism.

Members of the company do not shy away from providing constructive criticisms which helps members grow. There are several 1 on 1 sessions, retrospectives, and peer reviews where we can provide/receive constructive criticisms from team members or managers alike, and I find it helpful because with them, I can gauge how much I've developed as an engineer, and it helps shape me to become the engineer I aspire to be.

I thought If I join this company, I will be developing a product in a safe and fun environment, which will result in happy and satisfied users, then get feedbacks from my colleagues which help me become a better engineer. From there, I get inspired to be productive again and it gives me that drive to develop something for our users, then get feedback from my colleagues again, and it creates this beautiful positive cycle and I just thought that's a great place to work at, so I chose Retty.

Batch 2022

How I Fit in Retty as an Expat

First of all, I joined the company as a fresh graduate at 30. Technically it's not ideal but it’s 2022, times are changing, and technically I just graduated from college in Japan. They didn't make a big deal of my age which helped me be more comfortable and join the team normally as my batch mates did.

Secondly, there are times when I don’t understand some of the words or phrases used in the company but whenever a word I don't comes up, I ask them and they are nice and patient to teach me what they mean, or they rephrase stuff so it’ll be a lot easier for me to understand. English is normally used in the company and they even ask me to express my thoughts in English if I can't correctly express them in Japanese. It may be my excellent, almost genius-level Japanese skills that made them feel like they didn’t have to treat me as an outsider (lol). Joking aside, what I was really afraid of is discrimination, and I felt none of that joining Retty, despite the language barrier.

Lastly, as an ex-pat (especially a Filipino), I worried about not getting the visa, but Retty provided me the services of a specialist to help me process my papers and honestly, it was a breeze for me.

I thought I would have more to write here but as I reflect on the last 6 months I spent in Retty, I never felt like an outsider so I can say that this company is inclusive and changed my views on Japan as a whole.

Things I did in the Last 6 months and What I Learned Along the Way

So what did I do in the last 6 months, what skills I acquired, and how did the team and the company atmosphere help me along the way?

API Development

We are implementing Clean Architecture and Microservice Architecture for our services and we usually discuss within or across teams how should we implement logic, and where should they reside.

Clean Architecture Diagram

Our choice for interservice communication is gRPC. Whenever we need to update the protobuf files, we consult with the team who will be working on the consumer side so all teams working on the feature are on the same page. But sometimes the same team is also working on the consumer side there are times when we are not sure how to go about the interface. In that case, we open a general discussion in a Slack channel and we discuss how the interface should be. We make it a point to maintain open lines of communication and we have no trouble expressing our ideas or concerns about how we should develop and design our code.

Pair / Mob Programming

Usually, for repositories that member/s are not yet familiar with, instead of assigning an engineer to a task, we all get in the task together through mob programming.

We take turns being the driver, relying on other members as navigators, and through this process, we build our understanding of the architecture and the domain a Service is responsible for as a team. It is more effective to do a task as a pair/team because :

  1. Any doubts or questions you may have may be answered by the navigators.
  2. Simple mistakes can be picked up by the team.
  3. Working remotely during the pandemic won't be as lonely as it normally would be.

Considering the points above and others I did not specify here, we make it a point to do Pair / Mob programming when we can and it's been smooth sailing ever since.

On-Call Team

I told my mentor and my manager about my interest in Elasticsearch and Kotlin / Java, and I was offered to be a member of the on-call team watching over our BFF (Backend For Frontend) for our mobile apps, and the in-house ELK (Elasticsearch, Logstash, Kibana) stack. I am now learning about how these things work not only on the application level, but also on the infrastructural level as well, and it helped me develop my understanding of how all these fit together to create an intricate chain of responsibilities and functionalities. It also improved my skills in developing code as I am now aware of how a small bug could cause an alert and make a service crash, which leads to engineers waking up in the middle of the night having to oversee the system or worse, implement a quick fix to alleviate the problem. So I am more careful now not to introduce a bug to the system when I write code.

What I learned

There’s so much more I learned but what I realized after hours of discussions between members or teams, is that there is no one universal truth in developing or designing systems. Sometimes you just can’t see the bigger picture right away as there are so many things to consider like domain-related logic that was not clear or wasn’t discovered at the time. All we can do is write sustainable code, and design sustainable architecture, taking into consideration how the code could grow, and how it could affect us in the future. The way we work at Retty helped me learn and deepen my understanding about working as a team, relying on and being relied upon. I used to love how I developed stuff at school where I called all the shots, deciding on what architecture to use, what technology to use, and how to write stuff. But all that only led to rewriting stuff, constant reengineering, where it was always a pursuit of the one truth.

Helen Keller once said - "Alone we can do so little; together we can do so much." - and it resonates with how we work at Retty. I felt like I am part of the team, where I get to have a say on how we should run things, how we write or develop code, what tools to use, and how we can provide our users with the best services we can offer.

To End

Retty is an awesome company that provided me a chance to start over my career as a 30-year-old fresh graduate, where the people are great and the environment is productive and conducive. Where teams collaborate to find the company’s answer to providing what we believe is “User Happy”.

Me and my batch mates (Engineers & Data Analysts)

It has been a fun 6 months for me, and I'm looking forward to the next years honing my skills and discovering how else can I grow as an engineer and become a bigger part of Retty.