Takeshi Arabiki

Who am I?

I work as an engineering manager and a kind of technical lead for a team responsible for site reliability engineering (SRE), data engineering, application development, etc. I’m mainly specialized in Rails, AWS, MySQL, Presto, Fluentd, Cassandra, and Kafka. I’m also the co-author of a Japanese book on the R language for advanced users (R言語上級ハンドブック), which was published in 2013.

Primary Skills

Rails

Since December 2013, I have been involved in developing medium-sized Rails applications. In my work with Rails, I usually focus on developing background jobs rather than Rack applications, so my experience using modern JS frameworks such as Vue.js and React.js at work is limited.

Also, I can fix almost all flaky system specs.
cf. Fixing flaky tests in Rails applications: Ways of debugging system specs and factors making them flaky (in Japanese)

Ruby

Ruby has been my primary programming language since December 2013. Although I seldom attend Ruby community events or keep up with the latest features they talk about, I can read and write Ruby code most swiftly and efficiently. Actually, when I encounter a bug in an OSS written in Ruby, I can create a pull request to fix it.

Here are some noteworthy pull requests I created:

Although the author of ridgepole made me a commiter, possibly because I’m his ex-colleague and I created many pull requests in a short period in 2017, I haven’t been able to contribute to the repository recently.

I also developed several of my own gems:

Additionally, I have a good understanding of how Ruby manages its memory, which is essential to operate Ruby applications effectively.

MySQL

I have a good understanding of how MySQL works and the optimal indexes to add for enhanced performance.
Here are several of my blog posts related to MySQL:

AWS

Since August 2017, I have been developing and managing applications on ECS on EC2. This experience has equipped me with substantial know-how regarding ECS on EC2.

Additionally, I think I can swiftly build an architecture that integrates AWS services such as S3, SNS, SQS, Lambda, Route53, EMR, and EventBridge.

I’m skilled at reducing costs by utilizing Savings Plans and Spot instances, or by re-architecting.

Datadog

I have experience in migrating a monitoring service from CloudWatch Alarm to Datadog and in ensuring it triggers an alert only when needed. The experience has provided me with the knowledge to prevent unexpected alerts.
Here is a blog post to prove my experience:

However, I’m not as familiar with Datadog APM or Logs as I am with the monitoring service.

Terraform

Since August 2017, I have been managing AWS resources, Datadog monitors, etc. with Terraform. The experience has enabled me to swiftly construct infrastructure using Terraform.

Fluentd

Since August 2017, I have been operating aggregators that process a large amout of data. If I encounter a problem, I can read the source code of Fluentd and create a pull request to solve it.

Here is the list of pull requests I created: https://github.com/fluent/fluentd/pulls?q=is%3Apr+author%3Aabicky

Particularly, I was the one who resolved the bug that was a blocker for the stable release of Fluentd 0.14.

We got a bug report about output plugin deadlock with several plugins. @abicky fixed this bug and several users tested the patch on their environment. Many thanks for working on this issue.

cf. Fluentd v0.14.22 has been released | Fluentd

The blog post Introduction to Fluentd: Fundamentals necessary for operating Fluentd (in Japanese) was derived from this experience.

Presto/Trino

I have over four years of experience in managing Presto and ensuring its stability and good performance. Although I may not have enough Java experience to create a pull request, I can make minor modifications to a connector and I have a good grasp of which parts of the source code to read to understand its key behaviors.

I also wrote blog posts targeting beginners, such as Introduction to Presto/Trino on Amazon Elastic MapReduce (EMR) (in Japanese), and blog posts for engineers managing Presto/Trino, such as Service Discovery in Presto (in Japanese).

Additionally, I gave the following presentations at a workshop:

Go

I sometimes review changes in services written in Go and write simple programs in Go. As part of learning Go, I also have experience in developing operational tools written in Go as follows:

However, it takes me much more time to read and write code in Go than in Ruby due to its less frequent use.

Java

Although I rarely write Java code, I often read the source code of Java-based OSS we use, such as Presto, Cassandra, Kafka, Kafka Streams, to understand their behavior and review code of Kafka Streams applications.
Here are examples where I gained an understanding of the behavior of Java-based OSS by reading the source code and setting breakpoints:

BigQuery

I can investigate and resolve peformance issues and memory-related errors. Additionally, I can write analytical queries that consist of several hundred lines for complex data aggregation.

Kafka

I have over two years of experience in managing Kafka brokers and have developed both producer and consumer applications using ruby-kafka after reading almost all of the source code of ruby-kafka. I can also conduct code reviews for Kafka Streams applications with a good understanding Kafka Streams at the source code level. Furthermore, when encountering problems with librdkafka I can investigate and address them at the source code level.

Here are related blog posts:

Additionally, I actively contributed to ruby-kafka: https://github.com/zendesk/ruby-kafka/pulls?q=is%3Apr+author%3Aabicky

Cassandra

I have over three years of experience in managing Cassanda, during which I have gained a good understanding of it by reading a specialized book, studying the source code, and running it locally in debug mode.

Management

I became a team leader in 2018. Although our development organization abolished the role of team leader in 2019, I functioned as a virtual team leader. In 2021, I officially resumed the role of team leader, a position that doesn’t include people management responsibility. Then, in 2022, I assumed the role of team manager, a position involving people management responsibility.

Here are some examples of materials related to my management experience:

Languages

Japanese

Native

English

CEFR B2

I completed all courses of the Callan Method in 2022. Additionally, since July 2020, I have been taking one-to-one online English conversation classes twice a week, each of which lasts for one hour and a half. These experiences have enabled me to communicate in English on a one-to-one basis.

  • TOEIC L&R 935 (August 2021)
    • Listening 455 (CEFR B2)
    • Reading 480 (CEFR C1)
  • duolingo english test 105 (CEFR B2)

Publications (in Japanese)

Workshop Presentations (in Japanese)