Wgijwfsrhhaoht2f9yhq

Ahyoung Ryu

Software Development Engineer @ Seoul, South Korea

 ahyoungryu93@gmail.com 


Introduction

Hi, I am a frontend software development engineer(but want to be a full-stack one day 😄) from Seoul, South Korea. I love Programming, Developing, learning and Problem Solving. I always think these three as my motto
- Most efficient way of communication
- Most intuitive UX is always better than an eye catching & brand new feature
- There are always interesting things that I have to learn

Experience & Education

Zepl Software Development Engineer 

Mar 2016 - Present

Experiences 00 00@2x 504900dc09d82f711fdb54cf5763251cab5193a844856da978b2b8f3907ecd5a

Zepl, Software Development Internship

Aug 2015 - Feb 2016

Experiences 00 01@2x 6daa47d1df70d315f129dcecdd562003831581c4cdd8f9c819aa22d4a24ae150

Bachelor's Degree

Sookmyung Women's University, Computer Science 2012 - 2016

Experiences 00 02@2x d08cb731546334ac3e784c5845e368719bba256a127be86e720a634d798b8bb9

Tech Skills &  Tools

  • JavaScript (ES6)
  • Node.js
  • HTML5
  • SASS
  • Redux
  • Redux-saga 
  • Webpack
  • ReactJS
  • AngularJS1
  • Jest
  • Enzyme
  • Eslint
  • Cypress
  • Jekyll
  • Travis 
  • Jenkins
  • AWS Lambda / S3/ EC2/ CloudWatch
  • Git

Languages

  • Korean (Native)
  • English (Professional working proficiency)

Professional Experience



Paragraph image 01 00@2x 1a3881c875a7a1fb1e859435ef9363b5ddf36f4e73d1ad63a1a0af69f2a9f745

Apache Zeppelin

Apache Zeppelin project is a one of top level projects licensed by Apache Software Foundation. Zeppelin is a web-based big data analytics & visualization tool. 


Contributions 
 A. Documentation
  • Apache Shiro authentication for Apache Zeppelin: Link
  • Interpreter in Apache Zeppelin: Link
  • Generic JDBC Interpreter for Apache Zeppelin: Link
  • Ignite Interpreter for Apache Zeppelin: Link
  • Lens Interpreter for Apache Zeppelin: Link
  • Installing Interpreters: Link
  • Data Source Authorization in Apache Zeppelin: Link
  • How to contribute to Apache Zeppelin (Website): Link
  • Zeppelin Notebook Authorization: Link
  • Supported Interpreters in Apache Zeppelin: Link
  • Available Helium packages in Apache Zeppelin: Link 
I wrote 90% of content for the above documentation pages and also reviewed most of other pages in Apache Zeppelin official documentation website. We used Jekyll to generate the static website. 

B. Frontend 
  • Zeppelin interpreter management page improvement
  • Zeppelin notebook permission setting UI & logic implementation
  • Helium package management page implementation
  • Search feature in Zeppelin official documentation website
  • Auto-generated TOC(Table of Contents) in Zeppelin official documentation website 
Other than the above, I had been involved in UI & UX improvement for overall Zeppelin web application. We used  NPM / Bower / Webpack / AngularJS/ Bootstrap for general tech-stacks 

C. Backend 
  • Helium(a.k.a Zeppelin pluggable visualization / interpreter package) online package registry implementation (2016.12 - 2017.02)
    • Used AWS Lambda(Node.js) / S3 / Cloudwatch services
    • 1 developer involved
    • Role: Research / Design / Implementation
    • See this Jira ticket for more details 
  • Other than this project, I involved in fixing bugs and improvements for backend interpreters 

Zepl Service Platform for Data Scientists

Zepl is a SaaS service version of Apache Zeppelin. It's more for collaborative and enterprise environments. 


A. Long-term Projects (Mainly performance improvement)

  • Notebook rendering improvement project (2019.02 - 2019.03 / 2 months)
             * What was the problem?
    • The more paragraphs are added in the notebook, it takes more time to render a notebook page on initial rendering. It gets slower exponentially.
    • Immutable object ↔ plain object conversion has been occurred too frequently and unexpectedly
    • Inefficient way of passing React component props
    • Unnecessary action dispatch + API call
           * How we solved them?
    • Minimize prop passing between parent ↔ child components by using re-reselect if the prop can be generated by state stored in Redux store
    • Minimize immutable ↔ plain object conversion by using react-redux-immutable
    • Redesign component structure by removing unnecessary components
    • Removed unnecessary action dispatch &  API call
           * Improvements
    • Reaction speed has been increased 100 - 300 % after any notebook or paragraph actions(adding a new paragraph / running a paragraph / ...)
    • Reduced bundle size by removing unused legacy code
    • Development speed has been improved by re-design overall component structures
            * Project size: 4 developers
            * Role: research / design /  development

  • Large data rendering improvement project (2018.11 - 2019.01 / 2.5 month)
             * What was the problem?
    • If the size of data is too large, the browser hangs until tons of SVG elements are painted
    • Duplicated and inefficient data pivoting / refining logic which comes from open source, Apache Zeppelin 
          * How we solved them?
    • Built new data manipulation pipe line
    • Functional programming based data manipulation(used lodash fp + functional-immutableJS)
    • Introduced web-workers and added the logic to every data pipeline levels 
    • Used Canvas API graph library; Nivo instead of SVG to speed up graph rendering 
           * Improvements 
    • Resolved the browser hang by using Canvas graph API since it just draw one element 
    • Easier on debugging by building a solid data manipulation logic 
    • Contributed to Nivo charting library 
           * Project size: 2 developers
           * Role: research / design / development

  • Notebook component re-writing in React project (2018.06 - 2018.09 / 3.5 month)
             * What was the problem?
    • Notebook is a core feature in Zepl service but we just ported Zeppelin notebook service at the first time, even though Zepl is written in React whereas Zeppelin is written in AngularJS
    • Needed to spend much time on debugging whenever there's an issue
    • Since we used two large framework in one service, there are inevitable communication loss between these two parts
             * What was the problem?
    • Rewrote AngularJs version of notebook service with React 
             * Improvements 
    • Reduced time on debugging & fixing customer issues 
    • Reduced development time and opened a chance to add more useful features in Notebook service
           * Project size: 2 developers
           * Role: research / design / development

B. Short-term Projects
  • Snowflake + Zepl notebook integration, frontend development (2019. 04 - 2019.06 / 1.5 month) 
* Project size: 2 developers
* Role: development
  • Billing Service using Stripe Payment System, frontend development (2018. 03 - 2018. 05 / 1.5 month)
* Project size: 1 developer
* Role: research / design / development
  • New routing system migration React Router → Universal Router) (2017.10 - 2017.12 / 2 month)
* Project size: 1 developer
* Role: research / design / development
  • Resource management system in Zepl, front-end development (2017.08 - 2017.09 / 1.5 month)
            * Project size: 2 developers
            * Role: research / design / development

2. Leveraged skills 

  
Paragraph image 00 00@2x ebb59a6d9adb03673d06762584bb6a0cc401a7cc4bd081bb82ce6f841d95aa2b
Paragraph image 01 00@2x 1a3881c875a7a1fb1e859435ef9363b5ddf36f4e73d1ad63a1a0af69f2a9f745

A tutor @FastCampus online lecture platform

Talks  


Welcome to Apache Zeppelin Community

Shared "Off-the-record tips to become a popular Apache project's committer" @ Zeppelin User Seminar

Apache Zeppelin Training

"Apache Zeppelin Training" hands-on session @ ApacheCon, Europe 2016 

What's in Apache Zeppelin 0.7.0 ? "Helium"

Introduced remarkable new feature "Helium" which is newly added in Apache Zeppelin 0.7.0 @ Fly Zeppelin, Fly


Helium makes Zeppelin Fly

Gave a talk @ ApacheCon 2017 May, Miami Florida about "How we could build Helium online package registry" 

9XD Regular Seminar

"How could I become a PMC member in Apache top-level project" @ 9XD (90's developer community) (FB Posting)

Powered by CakeResumePowered by CakeResume
Powered by CakeResumePowered by CakeResume