home

YoungHoon Jung

Software Engineer

Google Inc.

E-mail: jung@cs.columbia.edu

Fax: N/A

Projects:

Google Now (Oct. 2015 ~ Present) :

Refer to the official Google Now homepage.

Academic Achievements (Aug. 2011 ~ Sep. 2015) :

Refer to my homepage at Columbia.

Samsung Linux Platform v1.0 / v2.0 (Nov. 2008 ~ Jul. 2011)

Participation Experience:

Following the research I performed in XO project, I had the opportunity to utilize various hardware devices and to study how to establish optimized architecture for parallel use of the devices during the SLP development period. My work concentrates mainly on hardware acceleration of the UI Framework, which includes open sources like X.org server, pixman, GTK, and EFL. A variety of hardware architectures such as diverse DSPs, Samsung's FIMG2D, Imagination's PVR/SGX, ARM's Mali architecture, Nvidia's CUDA on Tegra series, OpenGL, and OpenMP were used for X.org server's EXA and DRI acceleration. For parallel hardware acceleration, I discovered that the key factors for successful acceleration were balanced scheduling, synchronization including cache control, memory migration costs, and bus capacity.

Aside from hardware acceleration through X.org server's EXA and DRI architecture, my work includes code optimization using SIMD, video supporting operations, and memory management for devices. SIMD instruction sets, such as ARM NEON or Intel WMMX, can significantly improve performance to optimize the memory operations and drawing primitives, like rotation, blitting, ROP (Raster OPeration), and blending. As a result of the experiment, the NEON-optimized version of pixman showed two to ten times faster performances than the open source in these areas. In order to support multimedia frameworks’ video operations, such as resizing, rotation, and format conversion of the YUV image from hardware Codec, I utilized various hardware devices including DSP, special purpose hardware blocks, and camera-supporting modules through v4l2 interfaces and OpenGL. The memory module I developed to cover DRM functionalities not only manages synchronous memory allocation, but also controls caches and physical addresses for supporting systems without cache-coherency consideration and devices without IOMMU.

In addition, I found collaborating with open source communities to be a helpful experience. Compared with XO, in which DirectFB was the only module we worked on, together with its maintainer, Samsung made contracts with maintainers of GTK and GStreamer and hired the founder and core maintainers of EFL. These collaborations helped me to understand the open source module's intention and to widen my perspectives of designing and improving software projects. Working together with these people to achieve the common goal of finding better solutions was a worthwhile experience.

Project Description:

Samsung Linux Platform (SLP) is a mobile operating system based on the Linux 2.6 kernel and X.org server. Evolving from XO v1.0, SLP changed and developed several features, such as the replacement of the window system to X Window, as well as the support of EFL (Enlightenment Foundation Library) for applications. Furthermore, SLP has gradually expanded its target devices from mobile phones to TVs, cameras, MP3 players, tablets, and laptops. Not only has SLP been compatible with LiMo, but the SLP team has become LiMo foundation's leading contributor. SLP’s design is based on the principles of the standard Linux desktop, suitably adapted for the mobile environment. SLP reuses a large number of Open Source components. Hence, its software architecture is easy to understand for anyone familiar with a standard Linux desktop. The SLP software stack has a layered architecture consisting of applications, middleware, and the Linux kernel.

Members: approximately 300 developers

Vodafone 360 H1 / M1 - Linux-based SNS Specialized Smartphones (Jun. 2009 ~ Sep. 2009)

Participation Experience:

Xv (X Video extension), the Fast RGB drawing method, and watchdog are the components for which I was responsible during the production of Vodafone 360 H1 / M1. Firstly, I developed the Xv-supporting X driver using hardware devices through V4L2 (Video for Linux 2) interfaces. DSS (Display SubSystem) in TI OMAP3430 and FIMC (Fast Interface Module for Camera) in S3C6410 were used to convert YUV formatted data from hardware codec into RGB that frame buffers can display, in order to resize the image to fit it in LCD size and to rotate the image. Unlike other platforms that use an overlay scheme, an underlay video scheme was employed to display translucent UIs over the video screen in SLP. Secondly, the Fast RGB drawing method I suggested successfully improved the performance of animated UIs. Every time the frame is changed, the composite manager should repeatedly complete a costly operation - alpha composition. However, applications of full screen size and that own drawing engines such as Flash player, Java games, and 3D applications do not necessarily have to be composited. If those applications render output directly on the video layer, called the Fast RGB drawing method, performance dramatically increases because they can avoid software alpha-composition. Instead, the display hardware composites the layers in real time. As a result, it was widely used as a key performance improvement method. In fact, eight out of eleven screens in the above screenshot use the Fast RGB drawing method.

Project Description:

Based on SLP2, Vodafone 360 H1 and Vodafone 360 M1 are smartphones, the first LiMo Release 2 products that provide Vodafone's specialized 360 online service focused on SNS. H1 is a high-end model based on TI (Texas Instruments)'s omap3430 CPU, which has the SGX340 GPU core. M1 is a lower-priced model based on SEC (Samsung Electronics)'s S3C6410 CPU. The Vodafone 360 H1 features a large 3.5-inch WVGA AMOLED display, a 5-megapixel autofocus camera with the capability to shoot 720p high-definition video, 16 GB of onboard storage, integrated GPS, plus Wi-Fi and Bluetooth wireless networking capabilities. It also supports EDGE/GPRS 850/900/1800/1900 and HSDPA mobile broadband capabilities. The M1 scales back slightly, providing a 3.2-inch TFT display, 1 GB of memory (with microSD expansion), a 3-megapixel camera, and integrated GPS. The M1 lacks Wi-Fi, but still offers HSDPA. Both phones feature a unique 3D interface that enables users to have a depth-based chronological view of mail and calendar items, as well as tie into exclusive Vodafone services.

Members: over 500 developers

XO v1.0 - LiMo Compatible Linux Platform (Sep. 2007 ~ Oct. 2008)

Participation Experience:

In XO, I developed the UI Framework focusing mainly on 2D acceleration, improvement of architectures for accelerations, and implementation of required UI functionalities such as a LiMo window manager. As this project was developed mostly on SGH-i780 hardware that has the Marvell PXA310 624 MHz processor, also known as Monahans LV, I endeavored to make the best use of its 2D acceleration device (M2D GCU) and WMMX instructions. However, the hardware performance was unsatisfactory, so I proposed a heterogeneous mechanism that CPU and GCU can operate simultaneously. This trial was meaningful on the systems that have hardware acceleration devices whose performance is not vastly superior to CPU. What I did includes acceleration and customization, not only for Marvell chips, but also for other chips such as Philips' NXP, Samsung's S3C, Freescale's i.MX, Telechips' TCC, Qualcomm's MSM, Broadcom's BCM, and Infineon's XMM series. In order to establish a common architecture that fully utilizes hardware devices, I also collaborated with the maintainer of DirectFB. As a result of this close cooperation, I contributed to the mainstream of DirectFB 1.3.0 and became one of DirectFB contributors.

Project Description:

XO is a Linux-based mobile platform that provides high level features, performance, and reliability, while supporting multiple sets of BSP, Window System, and Mobile Browser. XO is compatible with LiMo Release 1. The LiMo Platform is a modern Linux-based Operating System for mobile handsets. As a window system, XO adopted DirectFB, a thin library that provides hardware graphics acceleration, input device handling and abstraction, integrated windowing system with support for translucent windows, and multiple display layers, not only on top of the Linux Frame Buffer Device.

Members: about 120 developers

SCH-W290 - 3G UMTS/WCDMA HSDPA Phone (Jul. 2007 ~ Aug. 2007)

Participation Experience:

During this period, I was in charge of platform core modules and the kernel. SCH-W290 uses the Qualcomm MSM6260 chip as CPU. Accordingly, it uses Qualcomm's RTOS REX (Real-time EXecutive) underneath BREW (Binary Runtime Environment for Wireless), Qualcomm's application development platform. Samsung has ported SHP (Samsung Handset Platform) over BREW in order to reuse in-house applications that are already developed and commonly used by Samsung's WCDMA phones.

In the middle of the development period, the planning team decided to cut the main memory size that the model will use by half of the size of its base model (specific size is confidential) in order to reduce the unit cost of production. If the development team could not meet this bottom line, this project would be halted. As a result, a memory reduction TF was initiated and I joined the project. After investigation, the TF decided for the problem to support demand paging mechanism that has not been used before in the system. Demand paging is more difficult to achieve in mobile devices than in desktops because there are several time-critical applications that require real-time scheduling and memory allocation, such as phone calls or the 3G network protocol manager. If these kinds of applications are delayed because of page-faults, the mission of the RTOS fails. The TF essentially discovered at what time critical applications would occur and which libraries they use. It was a challenging but rewarding experience.

Skills used: C language, ARM assembly, ARM JTAG debugger

Project Description:

SCH-W290 is a mobile phone designed for the 3G network of SK Telecommunication Ltd., the biggest telecommunication service provider in Korea. SCH-W290 is compatible with UMTS and WCDMA. It is a HSDPA phone featuring a slider form factor, MP3 capability, expandable memory, and built-in printer support. It also has dual camera modules: a front VGA digital camera with video recorder/playback/streaming/call functions, and a back 1.3M resolution CMOS digital camera with video recorder/playback/streaming, flash light and digital zoom functions. As general features, it supports multi-tasking, MOD (music on demand), VOD (video on demand), MP3 player, video player, STK (SIM Tool Kit), downloadable pictures and animations, my pet application, English dictionary, file viewer, photo album, photo editor, wallpapers, and 3D messaging.

Members: approximately 70 developers

SGH-P930 - 3G DVB-H Phone (May 2007 ~ Jun. 2007)

Participation Experience:

Although most production projects have imminent deadlines, the schedule of this project was apparently impossible to follow. This is because the release of this phone is a time-critical mission for the timely possession of mobile TV technologies and for showing it to the market. During this period, all team members worked more than 16 hours a day on average.

Phone production is an endless debugging process. Among several hundred problems I solved and fixed in this project, I clearly remember two of them. I figured out the reason behind a problem that chronically occurs in the SGH-P9xx series: after watching mobile TV, the phone randomly crashes. I was able to identify what causes the problem with a new memory management scheme I designed to trace memory blocks. It records doubtable memory accesses, as well as allocations and releases. As a result, it was revealed that one application writes on memory blocks even after release because of an error on reference counting. Another problem pertained to the structure padding difference. This was caused by a third-party library built with a structure packing option because other modules were built to have padding. Therefore, this mismatch contributed to the problem, although the header file was shared between the two.

Project Description:

SGH-P930 is a global roaming phone specialized in DVB-H mobile television. It features HSDPA data transfer, DVB-H mobile television, a 2-megapixel camera, Bluetooth, swiveling 262k color TFT display, and microSD memory card slot. It supports the DVB-H standard, providing the Picture in Picture (PIP) function to watch two TV channels simultaneously. Connectivity support includes 3G, EDGE, GPRS, HSDPA, Bluetooth, and USB. SGH-P930 is designed primarily for Asian and Europe markets such as Vietnam and Italy, but also supports a roaming service channel in the United States. It has received good responses from review sites because of its novel design and mobile television functionality.

The mobile TV market is served by three different standards: DVB-H in Europe, MediaFLO in the United States, and DMB in Korea. Samsung is leading all three standards by supplying the world's first S-DMB and T-DMB phone in Korea, Europe's first T-DBM phone in Germany, Europe's first DVB-H phone in Italy and by successfully demonstrating the MediaFLO mobile TV technology at ‘CTIA Wireless 2006' in the U.S. market.

Members: about 70 developers

Grid Computing System (Jan. 2007 ~ Apr. 2007)

Participation Experience:

In the development phase, I designed and developed the Grid Computing System's scheduling server and implemented parts of the Grid Toolkit libraries that the server and clients used. After the development, I applied the Grid Computing System to seven projects performed by other teams in the Telecommunication Network Research Center or Wireless Division at Samsung. About six months later, I ported the Grid Computing System to Linux for XO project.

In the design of the server, I considered two things to be most important. One was reliability that ensures the server performs its functions under unpredictable conditions for a relatively long time. For this, I utilized a smart pointer design pattern, unit tests, and crash analyzer. Another concept for the server design was scalability. The team was planning to serve the whole Research Center with one server, meaning that more than 4,000 clients could access it simultaneously. I decided to adapt thread pool, message passing, and command queue designs in order to cover this requirement. More importantly, I invented a new scheduling method, List-based Progressive Data-Intensive Service Scheduling, an improved version of Data-Intensive Service Scheduling that considers compile data transactions and priorities. As a result, the server has worked reliably and succeeded in supporting over 100,000 clients according to the simulation results.

Toolkits were designed to be portable; however, the multiple different APIs caused trouble in the early stage of porting. For instance, POSIX API select() in Linux may updates its fifth argument 'timeout' to indicate how much time is left. However, in MS Windows, select() does not modify the value. Another example is the difference between Linux's pthread mutex and MS Windows' critical section. Linux's pthread mutex does not allow nested locks, so that another lock request of a thread that already holds the mutex is blocked, while MS Windows' critical section allows nested locks.

Used skills: C++, Python, MFC, XML, Apache Web server, and Adobe Photoshop

Project Description:

Grid Computing System, which later changed its name to Withus, is a distribution compiler that enables hosts to rapidly compile source codes using computing power of other PCs that are idle. Grid Computing System can speed up the compile jobs process eight times, on average. For example, one confidential project took four hours for its compile jobs process normally, but only required half an hour with Grid Computing System. It supports various development environments such as ADS (ARM Developer's Suite), RVDS (RealView Development Suite), Microsoft VisualStudio, and gcc. This project was selected as an outstanding executive's Six Sigma Project due to its contribution to the reduction of development costs.

Members: 7 developers

Dynamic Code Modification System (Jun. 2006 ~ Dec. 2006)

Participation Experience:

The RTOS that Samsung has used for vanilla phones at this time allowed only one single process to be executed throughout the whole system. The resulting executable binary was a mixture of all applications, the platform, and the kernel. Moreover, no method was supported by the kernel to link libraries dynamically, such as DLL (Dynamic-Link Library) or SO (Shared Object). Consequently, when a developer modifies a small fraction of source code, all the libraries should be linked again to generate the new executable binary. The main idea for this project came from the inconvenience of redoing everything required to update the modified part. To replace the existing function, the following four steps are required. First, change the MMU configuration so that no segmentation fault (or restricted write violation) occurs, when DCMS writes on the code section in the runtime memory. Second, back up the previous codes of the target function in the memory in case of restoration. Third, overwrite the target function with a new function, when the new function code is shorter than previous code. Otherwise, overwrite the target function with a "Branch Code" that links the call to the target function and the new function code, delivering arguments and return value. Fourth, restore the original configuration of MMU.

I believe that this area is worth researching more thoroughly, even though most recent operating systems support dynamic link library schemes because they can still reduce unnecessary code executions, such as initializations or condition statements, and can also avoid process re-launching after code modification.

Used skills: JTag debugger, ARM assembly, Bash shell script, C language, and RTOSs (Nucleus, pSOS, REX, Symbian, Window CE and VxWorks)

Project Description:

Dynamic Code Modification System is for the dynamic modification of code that resides in the memory on runtime. Throughout the development process, several steps are repeatedly performed, such as writing, modifying, testing, and debugging of programs. However, these steps take much time, especially when the development system does not support a dynamic library scheme, such as several embedded systems, or when re-launching the program costs a lot, for many reasons, for example, the initialization steps that include a number of calculations. In order to reduce the time spent on program reloading and re-launching, Dynamic Code Modification System allows developers to directly replace modified functions in the memory. In addition, DCMS can be utilized to remove unnecessary code repetitive executions. For example, many functions use dynamic initialization by executing init functions when a function is firstly called. After the initializations, however, the function will still check whether this is the first call because the code in the memory was not changed. As long as the new functions follow the prototypes of existing functions, it can still receive arguments and return the result value, just as the old functions do.

Samsung requires every new software employees to design and develop an individual project that improves any module, process, or system. The subject is chosen by the employee, depending on his or her interest. At the end of each year, Samsung award a CEO's prize to the best project that significantly improves performance, cuts costs, or shows originality. DCMS was submitted to Samsung New Employee's S/W competition held in 2006 and received a second award among over 3000 software employees.

Members: 1 developer

Prize: 2nd award, 2006 New Employee's Competition by CEO, TN Business, Samsung Electronics

MediaTrans - Subtitling Total Solution for Translators and Producers (Jul. 2003 ~ Jan. 2006)

Participation Experience:

MediaTrans was essentially my first UI centric software project. Before this project, I was interested primarily in core system modules and had a few UI experiences with Java Swing and Delphi. I realized through MediaTrans development how important it is to examine the way users view and interact with software. In addition, the project convinced me again that I can rapidly become accustomed to any IDE, tools, and other environments. As a project leader and the only developer of the project, I designed the architecture and developed the whole program, including core MFC controls such as WYSIWYG Video Player, WaveViewer, Excel-style Subtitle Editor, and Timeline Controller.

MediaTrans had sales of over $2,000,000 for the first year. This project was quite lucrative to me because I drew up the contract with I-Yuno, incorporating a condition that ensures 2% running royalty of total sales.

Used skills: MFC, DirectShow, and XML

Project Description:

MediaTrans is a subtitling solution that allows subtitle translators to interpret dialogue, to include time code and producers’ designs, and to generate subtitles easily and rapidly. In particular, MediaTrans analyzes the input media and generates voice waves, so that translators can insert subtitles at precise positions: the beginning time of the voice. MediaTrans provides user-friendly UIs and WYSIWYG work space. MediaTrans also supports multi-language subtitles based on Unicode. Plug-in modules are provided so that results can be directly exported to most existing NLE (Non-Linear Editing) systems. As a market-leading product, MediaTrans has been provided to three major cable TV companies and several broadcasting system companies in Korea.

Members: 1 developer and 1 skin designer

Sales Route: I-Yuno global (http://www.iyuno.com)

Hades - Heterogeneous Distribution System (May 2002 ~ Sep. 2002)

Participation Experience:

This was an experimental research project conducted by three developers. Although the other two were my seniors, I took the position of project leader because I initiated and designed this project. The purpose of the Hades project is to determine how much a distribution system can improve its performance at best and to identify the key factors for the best performance. I have been concerned about ways to utilize spare and idle computing resources on the network for four years, and this project was closely aligned with my research interests. In this project, we aimed to develop fault-tolerant and automatically reconfigurable P2P protocols that reliably manage distribution systems on P2P networks. Analyzing dependency manually, the Linux kernel compilation showed a threefold speed-up with four nodes. Through this project, the most important factors that affect the result were determining which problem to solve and how sequential it is. Ultimately, we discovered that bus capacity was also a key factor.

Responsibilities: Project Leader, developing file system imaging and installation modules that communicate with network modules.

Used skills: Java, C language, and Bash shell script

Project Description:

Hades is a peer-to-peer distribution system that allows each node to request other nodes in the network to share their computing power. In this system, there is no designated server that manages clients and orders them to work. Instead, a Hades node plays two roles as a requester and an executor. A requester analyzes the user's operation commands, generates a dependency tree, makes command groups, and requests executors to execute the command. An executor receives commands from requesters, executes them, and returns the result of executions. As there is no separated server process that reigns over all other nodes, every node communicates and collaborates with each other. For example, when a user configures the system with Hades Configuration UI that attaches only to one node, the node shares the configuration data to other nodes in the network. Likewise, they spontaneously exchange information such as capacity and use status of resources.

Members: 3 developers

Prize: 3st award, S/W Competition, Soongsil University (2002)

eNeti - Network Installer (Jul. 1999 ~ Feb. 2001)

Participation Experience:

Thanks to my programming experience since middle school, I was able to join the eNeti project during my freshman year of college. I developed file system image extraction and installation parts using C language and shell scripts. As NFS (Network File System) is inadequate for concurrent access, we decided to develop a new method that manages file systems based on broadcasting protocols. To design and implement this, I researched various file system types, effective image extraction methods, and streaming compression algorithms. The analysis of ext2/3, fat16/32, and ntfs brought me deep, practical understanding of file systems. Linux kernel source codes and MSDN provided those file systems' pragmatic information that I referred to during the development. In addition, I designed effective data structures for storing file system metadata and files optimized for each file systems. I used various streaming data compression methods depending on the data type. For example, I used Run-length encoding for FAT's bitmap and Deflate for most of the file data. Personally, I believed compressions are interesting because they look useful for a variety of applications. I appreciate this project because it provides me the experience of conducting research and is also practical. Through this project, I not only improved my development skills and knowledge, but also came to understand how a project is created from an idea, what kind of steps the project follows, and how to manage a project.

Responsibilities: developing file system image extraction and installation modules that communicate with network modules and UI.

Used skills: C language and Bash shell script

Project Description:

This eNeti project was a research project designed to model an effective network management system and to be commercialized later. The commercialized version of eNeti is a network-based PC management system for backups and concurrent installations, primarily designed for the places that have a number of PCs such as offices or labs. eNeti extracts a sample image from a well-prepared PC and stores the image on the server. The image contains specified partitions, such as ext2/3, FAT16/32, and NTFS, so that it includes the installed operating system and applications. The eNeti server distributes the image through a multicast protocol in order to install or recover PCs on the network, so that many PCs can be set up concurrently and therefore quickly. In 2000, eNeti received the NT (New Technology) mark, given only to newly developed, outstanding technologies and GS (Good Software) certification issued by the Korean government after passing standardized S/W quality tests. In Korea, software with GS certification receives high priority during government supplier selection. As a result, eNeti has been supplied to a number of schools, companies, and government offices.

Members: 6 developers

Sales Route: SJ Infotec (http://www.sjinfotec.com)

Prizes: 1st award, S/W Competition, Soongsil University (2000)

3rd award, Linux S/W Competition, Korean Linux Association (2000)

Current Activities:

National Ski Patrol - Volunteer Rescuers (2009 ~ Present)

I have wanted to be a ski patrol officer for more than ten years to maintain others’ safety. I had been not able to do so because most of the ski patrol officers are employees. In 2008, I fortunately learned of NSP, whose headquarters for NSP Asia are located in Seoul, Korea. Furthermore, they are volunteer patrol officers, not employees. That means they can patrol on weekends. I immediately applied and became a qualified alpine ski patrol officer after passing the OEC (Outdoor Emergency Care) written and spoken exams, OTH (On The Hill) rescue practices, American Red Cross' CPR (CardioPulmonary Resuscitation), and toboggan test. I made a new bond between USSPA and the Konjiam Resort in Korea by contacting the resort’s HR team and persuading the sports operation manager through the offer of several benefits. Due to this contribution, I have been the designated Hill Captain of this resort.

The National Ski Patrol (NSP) is the largest winter rescue organization in the world. It was founded in 1938 by Charles Minot Dole, at the urging of Roger Langley. It is composed of more than 26,000 members serving over 600 ski patrols including volunteer, paid, alpine, snowboard and Nordic patrollers throughout the United States and certain military areas in Europe. U.S. Ski Patrol Asia was created and organized as a member of the U.S. National Ski Patrol System.

Websites: http://www.nsp.org

http://www.usskipatrolasia.com

US Professional Engineer (2009 ~ Present)

I became a Fundamental Engineer (FE) in April 2008 and a Professional Engineer (PE) in April 2009. I am a registered PE in Oregon State. I believe that the preparation for the tests, especially FE, was a helpful experience to study other fields. These subjects informed me as to how they are related, including Mathematics, Chemistry, Computers, Statics, Dynamics, Material Science, Electrical Circuits, Thermodynamics, Fluid Mechanics, Engineering Economics, Engineering Management, Ethics, Environmental Engineering, and Biology. Due to my thorough preparation for the FE exam, I understand these subjects deeply and am also aware of the intersection fields between those subjects. For this reason, I have realized several intersection areas, for example, designing physics engines and fluid simulation are attractive subjects. PE requires registrants to continuously self-develop by attending classes or participating in relevant conferences.

A U.S. Professional Engineer is licensed within each state's jurisdictions to offer professional services directly to the public. The professional status and the actual practice of professional engineering are legally defined and protected by a government body. Generally, PE registration requires test takers to pass FE and PE exams, to be recommended by five people, three of whom are PEs, to hold a bachelor's degree, and to experience four or more years in relevant fields.

Web sites: http://www.nspe.org

http://www.oregon.gov/OSBEELS (Find a Licensee 80413PE)

Hwasung Fortress Volunteer English Guide (2008 ~ 2011)

When I traveled to Japan, I visited Osaka Castle where I met an elderly gentleman who explained the history of the castle to me. Even though his English was not perfect, he enthusiastically explained Japanese history, features of the castle, and more importantly, good places to take pictures. Deeply impressed by his enthusiasm about cultural pride, I decided to strive to introduce the excellence of Korean culture to the whole world. Fortunately, it was not difficult to find such a chance because Hwasung Fortress is located in Suwon, where I am now living. I gained more than guests gained through this activity. As a volunteer guide, I became better acquainted with Korean history. Furthermore, this volunteer guide enables me to make good friends with people from all over the world. Some of them sent me appreciation emails later and I still keep in touch with them.

Hwasung Fortress is a World Cultural Heritage site. It was constructed as a fortress, a palace, and a country shrine. Although Hwasung Fortress has a relatively short history since the eighteenth century, it is considered special because of its outstanding defense functionalities from the harmonious utilization of both Western and Eastern military facility theories. Inside the four-mile walls, there are four gates and every single building has its own diverse features and designs.

Web site: http://ehs.suwon.ne.kr

Association for Computing Machinery (2007 ~ Present)

I have been an ACM student member since 2007. With my efforts, ACM will be the missing link between my professional career and academic experience. I believe, in the near future, ACM will be the place in which I most actively participate. So far, PPoPP and SPAA are the journals that to which I mostly refer for parallel systems. I am also interested in papers from IPTS and NSDI. I also use IEEE through Samsung Electronics' account. I subscribed and posted a few technical reports on the Samsung Electronics' Journal.

ACM is the world's largest educational and scientific computing society and delivers resources that advance computing as a science and a profession. ACM provides the computing field's premier Digital Library and serves its members and the computing profession with leading publications, conferences, and career resources.

Web site: http://www.acm.org

Mensa (2005 ~ Present)

By passing the test with results in the 99th percentile in intelligence, I joined Mensa through Mensa Korea in 2005. My activities in Mensa are mostly solving quizzes and puzzles. In my spare time, I enjoy making graphs, solving math problems and deciphering logic puzzles. Solving a problem is quite attractive to me, especially if no one has solved the problem yet. In addition to Mensa, I also participated in other puzzles like TOAD (link). I solved one puzzle (link) and corrected one past puzzle's proof (see the last line of this link). Likewise, I devised and proved several puzzles on a variety of Web pages.

Mensa is the largest and oldest high-IQ society in the world. It is a non-profit organization open to people who score at the 98th percentile or higher on a standardized, supervised IQ or other approved intelligence tests. Mensa is formally composed of national groups and the umbrella organization Mensa International, with a registered office in Caythorpe, England. Mensa's constitution lists three purposes: "to identify and to foster human intelligence for the benefit of humanity; to encourage research into the nature, characteristics, and uses of intelligence; and to provide a stimulating intellectual and social environment for its members."

Web site: http://www.mensa.org