2018 Retrospective

jooohn
7 min readJan 6, 2019

--

As my workday will start tomorrow, I want to look back what the last year was like for me, and think about this year a bit.

Paternity leave

One of the most impressive event that happened to me in 2018 was to have our new baby. Thanks to my colleagues’ help, I was allowed to take paternity leave since she was born, and the experience definitely changed my life.

Raising babies is one of the most toughest work for every parents. They cry every few hours without any clue for what’s wrong with them. It’s like an alert notification without an error message. Changed her diapers, gave her some milk, gave her a hug, and she still kept crying. That’s what babies are like. It was really tough both physically and mentally. I can’t imagine what it’s like to raise a baby alone. I really appreciated my colleagues to let me take paternity leave. Now, I really want them to take leave when they have babies.

Work in Japan

I had worked on 2 projects in Japan since I came back to my job. There were some new challenges.

ECS Auto Scaling

To make elastic infrastructure for our service, we migrated our service’s computing resource from traditional EC2 to ECS. I found that auto-scaling is not what we just enable but what we tune for our service.

We should optimize these parameters:

  • What indicator to trigger a scaling action
  • What threshold to trigger a scaling action
  • How many instances to scale out at once
  • How many services to scale out at once

We had to care about both EC2 cluster scaling and ECS Task scaling. Not only it was confusing, it was also difficult to optimize. I know Fargate would manage cluster scaling for us, but there are some drawbacks to use Fargate.

  • It takes more time to launch an ECS task because the docker image can’t be cached.
  • It’s expensive.

It might have already been solved today. If so, let me know!

Terraform

To make it easy to maintain our AWS infrastructure, we introduced terraform. It definitely solved some problems, but I have to say that its configuration syntax is annoying. I can’t wait for its 0.12 version.

Go

We adopted Go to write application server in one of the projects. This was the first time for me to write a Go application. I understand there are lots of good aspects of Go, but I think it is not my language.

My impression of Go after the experience is “Lightweight static typed language for system programming”. Its portability is definitely great for system programming, but when it comes to web application, the portability is less important. It’s not sexy enough for me to write web applications. I don’t think everyone should agree with it, but I like sexy languages.

TypeScript

It looks de-facto standard language for frontend development nowadays. To be honest, I don’t feel type-safe completely with it, but it’s better than nothing. Its syntax is straightforward against original JavaScript, so I don’t have a bad impression about that.

Working on 2 projects at the same time

I was assigned to 2 development projects (one as a playing manager and another as a player) at the same time. I’ve experienced such a situation in the past, but I didn’t feel comfortable with it. I couldn’t focus on both of them. It seems that I am not good at having many tasks at once.

After talking with my boss about this, he seemed to understand my situation. I would belong to less team this year.

Work in the U.S. (Manhattan)

Since September, I worked for the U.S. branch of our company for 2 months. This was the first time for me to work abroad and there were lots of challenges.

English

I was foolish enough to underestimate the difficulty to communicate with native speakers in English. Unfortunately, It was harder than I expected. First of all, I couldn’t understand what they said, so I couldn’t answer at all. I worked with English engineer in Japan and I practiced English conversations by online services, so I was confident to some extent. However, I’ve understood that it was because they had spoken slowly with easy vocabulary.

Of course we went the U.S. not to do English lesson but to work. They don’t care my English level. The situation might have been improved through the trip, but it was not enough to have tough communications with them. There were plenty of things I wanted to discuss if there were no language problem. I need to practice more and more and more and more.

GraphQL

A schema language for API. It defines clear responsibility boundary between frontend developers and API providers. It offers great development experience especially to frontend engineers. With generators like this, we can get type definitions of the API calls from the schema.

The only concern is, it seems difficult to monitor individual resolver’s performance in batched API request. It might be solved as ecosystem grows.

Life in Manhattan

Aside from business part of the trip, I also enjoyed the life in Manhattan. I lived with a colleague in a room rented via AirBnB. We visited most sightseeing spots like the Met, MoMA, One World Trade Center, Apollo Theater, Brooklyn Bridge, etc. Manhattan was such a small island with numbers of places to visit.

I personally like musicals, so the Broadway Musicals were the best for me. Especially, Wicked was so good that me and my roommate had talked about its theme until midnight. Unfortunately, it’s not played in Japan now, but I want to watch it again with my family anyway.

Throughout the trip, we had 15+ burgers as we both like burgers. My favorite was Juanchi’s burger in Brooklyn. 5 Napkin’s cheese burger was also great. Though prices in the U.S. (Manhattan maybe) is about twice as expensive as in Tokyo, meats and cheese seems reasonable enough considering its quality.

During this trip, my wife had taken care of our baby by herself (with my parents’ help). When I left Japan, our baby couldn’t stand by herself, but now she walks! I can’t appreciate enough to my wife. I couldn’t experience all of them without her help.

Activities

Had a session at Scala Matsuri 2018

Talked about borrowing FP essence at the biggest Scala conference in Japan. I hadn’t experienced talking in front of 100 audiences. It was just a 10 mins talk, but I want to talk more the next time if there is an appropriate topic.

Had a session at LogmiTech

Talked about development in legacy industry.

and other 4 talks

English blog posts

Enlightened colleagues about Functional Programming

FP is not only for FP language, but we can borrow its idea in other languages. I organized a community to learn FP in our company last year. Now all of the community members seem to understand what Monad is!

Books I read

I intentionally read English books last year for practice purpose. These are some of them that I impressed.

THE COMPLETE SOFTWARE DEVELOPER’S CAREER GUIDE

A book written about tips to live as a software developer. While this book is written for various levels of developers, some of the contents might not be for me. You can pick some topics you’re interested in. I was interested in the “Advancing your career” section. I learned the way of thinking. The important thing is to prepare profitable situation.

Clean Architecture

A book written about more detail of the clean architecture explained here. I love this idea so much. It affected my policy of tech stack decisions. The important thing is to separate technical details from application logic. With such structure, we can easily change the detail later.

The Wizard of Oz

A masterpiece that every American might have read. What surprised me is, its vocabulary was much more difficult than I expected though this book is for children about 8 year old. The grammar was also difficult. I guess it’s because the book is so old that the English is a bit different from today’s English. Anyway I had a hard time reading this book. It made me realize what level my English was.

About 2019

In 2018, I vaguely practiced English, but the U.S. trip was so shocking that I made up my mind to focus on English this year. I want to work in the U.S. again if I had a chance. I’ll keep practicing English so that I can be more productive there.

Other than English, I’ll enhance my soft skills like engineering management and product management because it’s in need. I’d like to deepen my computer scientific skills personally, but it’s not the top priority. I don’t think I like management more than coding, but I think it’s good timing to improve my soft skills considering my current position in work.

I’m going to be 30 year old this year. I’m afraid there is no time to waste, hence I think I should be careful how to spend my time both for work and private.

  • Practice English
  • Practice management
  • Spend time with my family

These three would be what I’ll focus on this year.

--

--