The primary responsibility of the team is to optimize camera creation delay, video smoothness, quality and reliability.
Chairing team meetings, tracking project progress, discussing technical designs and details, and overseeing code reviews within the team.
Responsible for external communication on behalf of the team.
Conducting interviews at the Shenzhen office and providing mentorship to newly hired employees.
Camera Creation Delay Optimization:
MediaCodec management: Lease-based MediaCodec resource management; optimization of MediaCodec's thread model; preloading Recorder and Player; unified management of MediaCodec's lifecycle and resource reuse for the creation flow.
Capture Intent Model: Analyzing user's data, building a predictive model for user's capture intention, predicting user's behavior for each capture session, and adjusting the video capture delay accordingly.
Composite Capture Flow: Rewriting the entire creation flow of the application to support both finger up and finger down capture simultaneously.
SurfaceView Management: Unified management of the SurfaceView lifecycle of the creation flow, and implementing resource reuse.
Video Smoothness Optimization:
Double Camera Stream: Utilizing dual-stream technology for camera, separating video recording and video preview streams, transforming from serial to parallel rendering.
Buffer Video Recording: Using techniques like FBO and ImageReader to implement video frame buffering between the camera data source and ViewFinder/Recorder, ensuring smoother camera preview and recording.
Recorder Pre-encode: Pre-encoding the encoder of the recorder to reduce the stickiness in the initial frames of the video.
Capture Animation Optimization: Optimizing the capture animation based on device performance and battery life, using OpenGL for rendering of the capture animation directly.
Video Quality Optimization:
HEVC: Collaborated with the server team to drive the implementation of HEVC recording and HEVC transcoding.
Video Quality Test Framework: Participating in the construction of the video quality testing framework.
Adaptive Transcoding: Calculating video complexity and employing different bit rates for adaptive transcoding based on the complexity of the video.
Video Reliability Optimization:
ExoExtractor: Integrating ExoExtractor into our video playback and transcoding process to address the Android 9 issues and improve overall performance and reliability of the streaming process.
Recording Retry Strategy: Implementing a more flexible failure retry mechanism at the Media Level in the video recording and transcoding process.
AV Sync: Identifying the cause of audio-video synchronization issues in video shooting and implementing PCM buffer solutions.
Capture Relative Functionalities:
Mushroom: Participating in the rewrite of the Snapchat Android client, introducing technologies such as Dagger, Kotlin, and RxJava.
Catalina: Implemented Snapchat's guest mode and collaborated with Google to enable a feature where double-tapping the back of a Pixel 7 series phone in the locked screen state would launch Snapchat in guest mode, allowing users to capture content in this mode.
Hermosa: Participating in the development of Snapchat smart glasses, mainly responsible for implementing the capture module.
Recovery: Restoring the capture content from the previous session if the user accidentally exits the application during the creation flow when reopening the application.
Android Technical Lead
Shenzhen Qianhai Yunhan Financial Technology Co.
09.2015 - 09.2017
Micro Options (Startup Project):
An app that provides over-the-counter derivative pricing, order placement, and news.
Responsible for requirement gathering, technical design, development, and maintenance of the Android client for Micro Options for institutions such as Huatai, Xinhua, and Nanhua.
Responsible for project scheduling and progress tracking for the mobile side (iOS and Android).
Utilized technologies such as Retrofit, RxJava, JNI (for market data push), EventBus, and ButterKnife.
Software Engineer
Tencent Technology
07.2014 - 08.2015
Mobile QQ:
Analyzed user behavior data and optimized the strategy for pre-downloading images.
Maintained and optimized basic components such as image preview, album, and image editing for Android QQ.
Maintained the GIF shared object library (.so library) and participated in performance improvements.
Developed with accessibility in mind to ensure the inclusive user experience.
Participated in the development of short video features for Android QQ.