Edgokkrw63wo7wfcdxy0

陳柏佑 (Owen Chen)

Android software engineer with about 3 years of experience maintaining and developing a large-scale android project. Via this project, I learned how to dig in the complex code architecture, and how to embed a new feature into an existing structure.


Specialized in Java and familiar with Kotlin programming. Emphasize on clear code and excelsior, so that I spend part of my leisure time on self-studying and practicing for new techniques like Kotlin, architecture components.

Senior Android Software Engineer
Taipei, TW
adherencegoo@gmail.com

Skills


Development environment/tools

  • Java (4~5 years)
  • Kotlin (1~2 years)
  • C++ (3~4 years)
  • Batch/Bash (<1 year)
  • Git (2~3 years)
  • Android studio (3~4 years)
  • Windows
  • Linux


Domain knowledge

  • Android architecture components
    • MVC / MVP / MVVM
  • Design pattern
    • Composite pattern, decorator pattern, ...
  • Multithread programming
    • Deadlock, critical section, lock/semaphore, wait/notify/notifyAll, ...
  • Generic class/function
    • Covariance vs contravariance
  • Functional programming
  • Web API
    • Retrofit, Json, Gson

Work Experience

ASUS, Senior Software Engineer, Oct 2016 ~ Currently employed
(Research and Development Substitute Services, it will expire at the end of this November)

Development and maintenance of Asus in-house app: AsusGallery.
  • Develop timeline page with zoomable layout: pure OpenGL, no any Android View (https://youtu.be/WBTgdrz7i4s, as attached below)
  • Integrate SAF(Storage Access Framework) into non-SAF code architecture
    • Including writing utilities classes and sharing with another in-house app
  • Improve and refactor interactions with SQLite
    • Writing large structured data into databases, getting 5 times improvement: 800s --> 140s
  • Improve app performance: cold-start launch time and speed of switching between pages
  • Solve various bugs
    • Removing Thread.sleep() from UI thread
    • ANR related to GLSurfaceView and MediaCodec
    • Deadlock resulting from nested synchronized blocks

Company@2x

Education

National Chiao Tung University, Master Degree, Telecommunications Engineering, 2014 ~ 2016

Although I majored in Telecommunications, my research subject is about Computer Vision and Augmented Reality. The goal is to detect an open palm in real-time video stream.

Thesis: hand tracking in real-time video (https://youtu.be/tCax5fFZlz0, as attached below)

University@2x

National Chiao Tung University, Bachelor Degree, Electrical Engineering, 2010 ~ 2014

Final project of course Java: https://youtu.be/ggFMMHf8PzY (as attached below)

Wjeis9ib3g20rivysqgn
Paragraph image 06 00@2x
Paragraph image 06 01@2x
Department rankings of the 1st year of my Master's program: 2/100, 7/95
Paragraph image 06 02@2x
Class rankings of all semesters in my college: 6, 3, 1, 4, 2, 5, 7, 6



OpenWeather

A demo project for Retrofit using Open Weather Data (implemented with Kotlin).


Used techniques:

  • Retrofit2, Gson
  • Architecture components: MVVM, ViewModel, LiveData
  • DataBinding
  • Activity/Fragment
  • Nested RecyclerView

Paragraph image 04 00@2x
Paragraph image 04 01@2x

XDDLib

My own utilities module (for debugging Android, implemented with Kotlin)

  • Enhanced Log function
    • Clickable log text: click to navigate to the source code where the log command is
    • Unlimited log length
  • XddMenu
    • Simple Menu UI that can easily be embedded into existing project
  • XddPref
    • Preference data integrated with the above XddMenu 

GitHub link

AsusGallery Timeline ZoomInOutAnimation

Zoomable timeline layout with fade-in/out effect (using OpenGL)

Hand tracking in real-time video

  • C++ project with OpenCV library
  • Used algorithms
    • HOG (Histogram of Oriented Gradients)
    • SVM (Support Vector Machine)
    • PF (Particle filter)

Little fighter

Final project of course Java: a homage for a well-known 2D game: Little Fighter (No any 3rd-party lib is used)

Powered by CakeResumePowered by CakeResume
Powered by CakeResumePowered by CakeResume