Resume#
Education#
Monash University | Dec 2021 |
---|
Bachelor of Computer Science | Clayton, VIC, AUS |
Coursework: Advanced Data Structure and Algorithm; Databases; Modelling for Data Analysis; Big Data
Management and Processing; Theory of Computation; Artificial Intelligence; Parallel Computing; Deep
Learning.
Monash College | OCT 2019 |
---|
Diploma of Engineering (Information Technology) | Clayton, VIC, AUS |
Coursework: Introduction to Algorithm and Programming; Introduction to Computer System, Networks and
Security; Computing for Engineers; Foundations of 3D; Fundamentals of C++.
Work Experience#
Shopee | Mar 2022 - Nov 2022 |
---|
Android Developer/Engineering | Shenzhen |
- Developed and maintained special features of 9.9 and 11.11 shopping day events.
- Reduced the time performance of the local file Logger from over 100ms to 20ms-2µs on
average by optimizing the structure and implementation.
- Restructured the popping bubble UI (custom view) to separate the display logic and business
logic into different inheritance layers for more customizable and extendibility.
Personal Project Experience#
- Allow user to save contents in another app/website as several format.
- 8k+ downloads on CoolApk in total: WebSaver+ & WebSaver.
- Fully used Jetpack Compose to build the UI without xml layouts that allows reuse the UI components to reduce the redundancy by 25%.
- Rebuild by Kotlin with usage of coroutine, Jetpack and MVVM structure which optimized the processing flow by 20% compares to previous work, WebSaver(CoolApk), WebSaver (Google Play).
- Utilized: Kotlin, SQLite, MVVM, Jetpack: Compose, Room, LiveData, DataStore.
- As a self-implemented and simplified EventBus with abilities of event subscribe and distribution, with supports of multiprocessing distribution.
- Uses KSP (Kotlin Symbolic Processing) for the annotation processor, which allowed of use annotation to register the event subscriber, for function/method.
- Supported custom subscription channel, that provides the feasibility of adding general business logic around the trigger of subscriber. e.g. using a custom channel to add performance tracing for some specific subscribers.
- Supported async subscription. Uses thread pool to distribute the event to subscribers who registered as async, other than get the event in the same thread (serial).
- Supported multiprocessing (Apps) event distribution, that uses AIDL and Binder to communicate. The App side can choose a specific strategy for the implementation. p.s. The current impl is similar to Mesh Architecture in WebRTC.
教育经历#
Monash University | Dec 2021 |
---|
Bachelor of Computer Science 计算机科学学士 | 墨尔本,澳大利亚 |
相关课程: 算法与数据结构; 数据库; 数据分析建模; 大数据管理及处理; 计算机论; 人工智能; 并
行开发; 深度学习; 编程范式
Monash College | OCT 2019 |
---|
Diploma of Engineering (Information Technology) | 墨尔本,澳大利亚 |
相关课程: 编程及算法基础; 计算机系统、网络、安全基础; 工程计算; 3D 建模基础; C++基础
工作经验#
Shopee | Mar 2022 - Nov 2022 |
---|
安卓开发工程师 | 深圳 |
- 对双九和双十一大促活动相关需求的开发与维护。
- 优化日志打印库的结构和实现,并应用双队列使本地日志平均格式化写入耗时从 100+ms 降低到
20ms-2µs。
- 通过重构和 OO 继承层级的运用使气泡 UI(自定义 View)的展示与业务逻辑分离,提升其可定
制性和拓展性。
个人项目经验#
- 允许用户将网页内容另存为多个离线格式。
- 双版本累计下载量 8k+(酷安:WebSaver+ / WebSaver)。
- UI 部分完全由 Jetpack Compose 编写取代传统 XML 布局写法,与重构前相比减少了 25% 的 UI 组件重复。
- 通过 Kotlin 对老版 app(WebSaver (酷安) / WebSaver (Google Play))进行重构,以及运用协程、Jetpack 相关库和 MVVM 结构,使开发、处理流程有了 20% 的优化。
- 技术运用: Kotlin; SQLite; MVVM; Jetpack 相关: Compose, Room, LiveData, DataStore。
- 类似于 EventBus 的简版事件订阅及分发库,并支持跨 App 分发。
- 使用 KSP 实现注解处理器,以实现通过注解来实现相关函数对事件的订阅。
- 支持自定义订阅通道,可以在相关订阅者被触发前后做相关操作,如:使用通道添加性能监控。
- 支持基于线程池的异步订阅,使用线程池对异步订阅者进行事件分发,非异步订阅者会在同线程接收事件。
- 支持跨进程(App)分发,使用 AIDL 和 Binder 进行通信,可指定具体策略,目前实现策略类似 WebRTC 中的 Mesh。