31st Monthly Technical Session (MTS) Report

31st Monthly Technical Session (MTS) was held on February 24th. MTS is a knowledge sharing event, in which HDE members present some topics and have QA sessions, both in English.


The moderator of the 31st MTS was Jeffrey-san.


The first topic was 'Introduction of EBS' New Feature' by Nagira-san. Attaching additional EBS volumes had always been hard for him, because he had had to stop the EC2 instance that the EBS volume was attached to. Fortunately, AWS provided an update which allows him to to increase volume size, adjust performance, or change the volume type while the volume is in use. In other words, now he doesn't have to stop any EC2 instance when attaching additional EBS volumes. This makes his work easier and reduces downtime. Nagira-san also explained in detail the new way to attach additional EBS values.


The second topic was an explanation of an HDE service's mobile UI, by Kevin-san. He began by reintroducing the service itself. Then, he talked about the technology stack, particularly about why he had chosen Riot as the Javascript framework. The reason was because it's very small, component-based, has simple APIs, and its community is small but friendly. He proceeded by teaching us about the components of the mobile UI and what's actually happening under the hood. He wrapped the session up by explaining his work's performance, past challenges, and future works.


The third topic was 'Backing Up DynamoDB Tables' by Bagus. He began by talking about the recent events that made him look into the issue further. One strategy we can use to backup DynamoDB tables is to utilise AWS Data Pipeline. Data Pipeline is a service which allows us to automate the movement and transformation of data. Creating pipelines to backup DynamoDB tables is simple, because we can use templates. Via AWS console, we can easily create a pipeline that exports DynamoDB table to S3 and another pipeline that imports DynamoDB backup data from S3.


The fourth topic was 'Things I Learned from IT Admins in Taiwan' by Nakakomi-san. For almost half of last year, he was working in Taiwan. During that time, he noticed some differences between Japan and Taiwan in several aspects, such as employment culture, decision making, and concern of IT admins. He related these differences to HDE's goal of becoming a world-class IT company. To achieve that goal, we need to think globally. Each country has their own culture, which affects the way the people think, which affects the solution that they need. By knowing more about other countries, we can adjust our solutions to suit their needs.


The fifth topic was 'Introduction to Video Encoding' by Michael-san. He began by explaining the terminologies related to video encoding, such as containers, codec, compression, and encoder. He continued by teaching us about compression and re-encoding effect. There's always a tradeoff between file size and quality. According to Michael-san, the codec used and encoding parameters affects the result a lot. He also answered some frequently-asked questions regarding video encoding. He wrapped the session up by introducing a software he prefers to encode videos, FFmpeg.


The sixth topic was an in-depth explanation of an HDE service by Xudong-san. He began by explaining the feature he was working on and its requirements. There had been a previous implementation of the feature, but Xudong-san was requested to redesign it. The original design utilised EC2, while the redesign was to utilise AWS Lambda. The reason was, unlike EC2 instances, Lambda functions needs no maintenance. Furthermore, Lambda functions can also be cheaper than EC2 instances.

However, utilising Lambda functions also had its own problems. This was mainly because he was utilising Lambda functions for I/O-bound actions. He created a new design to solve this issue. This new design utilised two types of Lambda functions, consumer and controller. Controller functions invokes consumer functions, and consumer functions can also invoke other consumer functions. He also highlighted the limitations of AWS that he needed to consider during his implementation.


The seventh topic was 'Airport Baggage Handling System' by Kelvin-san. He is our current Global Internship Program (GIP) participant. Before his internship at HDE, he had had another internship, during which he worked for projects related to baggage tracking system at HKIA. Baggage handling system manages activities such as checking in baggage to unit load devices, transferring baggages to other flights, and baggage claiming. A good baggage handling system is reliable, handles numerous baggages at the same time, minimises transfer time, and is completely automatic.

Apparently, baggage mishandling is one of the most common issues in airports today. Among the usual causes of baggage mishandling are human error and damaged tags. Furthermore, almost half of lost luggage is due to transfer-related incidents. Kelvin-san explained one of the solutions to baggage mishandling, which is automatic RFID baggage tracking system. According to Kelvin-san, RFID has higher successful reading rate compared to barcode. Towards the end of the session, he explained various components of airport baggage handling system by describing their pictures.


The day of the 31st MTS was also the last day of Kelvin-san's internship. We had a small event for him and gave him some souvenirs. In turn, he shared his impressions of his time working with us. Thank you very much for your contribution, Kelvin-san!


As usual, we had a party afterwards :)