于航

于航(曜彤)

Jason Yu

Personal Profile

生日:1993 - 09

简介:于航,曾在阿里巴巴本地生活、Tapatalk 等国内外企业工作,现在 PayPal 上海负责 GRC 相关的技术研发工作;FCC (FreeCodeCamp China) 上海技术社区负责人;多次 QCon、GMTC 大会讲师、出品人;WebAssembly 技术布道者;2018 年出版名为《深入浅出 WebAssembly》的国内第一本 Wasm 技术书籍;2019 年开发名为 TWVM 的轻量级 Wasm 虚拟机。主要研究领域为:前端基础技术架构、 Serverless、WebAssembly、LLVM 及编译器等相关方向。擅长美妆、演讲及小型(3-7人)团队管理。

Work Experience

PayPal Holdings, inc. (贝宝)全职

Senior Software Engineer

July 2019 - Present

在 PayPal 上海总部负责 GRC (Governance Risk Compliance) 相关的 Web 软件设计和研发工作。主要内容包括内部中台的 Web 前端研发,创新项目的 POC 实现、数据可视化、代码及项目质量管理等。除此之外还包括与印度 Vendor 团队及圣何塞同事的日常管理与协作。

Work Experience

阿里巴巴 / 饿了么全职

大前端 / 资深前端工程师(P6)

April 2017 - June 2019

一、曾在 “饿了么π” 带领前端团队负责维护多个前端项目。在工作中主要使用诸如 Vuejs、Electron 及微信小程序等前端技术作为产品实现方案。该部门作为核心部门主要负责饿了么在配送技术和未来物流方案上的创新,通过技术和业务创新来改善现有的配送流程和效率。

二、曾在 “饿了么大前端 — 物流组”负责内部物流中台的前端研发工作,主要负责饿了么基础物流业务的前端建设,及与手淘等其他集团 BU 进行对接的相关业务。这部分业务常使用如 React、Rax 以及 Weex 等开源和集团内部的技术及解决方案。

Work Experience

Tapatalk Co., Ltd.全职

全栈工程师

March 2015 - March 2017

负责公司网站前后端基础业务功能的建设。如从 CakePHP 到 Laravel 的 PHP 框架迁移、基于两个框架的后端业务接口开发、定时 / 常驻脚本的开发与维护、网站页面的代码与性能优化、SEO 优化、移动 H5 网站的整体工程化设计与开发等。这部分工作主要使用 CakePHP 和 Laravel 这两个 PHP 框架,以及 Knockout.js、Gulp、Babel、ESLint 以及 Less 等前端框架和技术。

Work Experience

FreeCodeCamp China 上海社区兼职

负责人

April 2017 - Present

兼任 FCC 中国 - 上海社区负责人,主要负责参与上海社区的未来发展规划,以及线下技术交流会的计划和筹办工作。自接手社区以来已经策划举办过4场线下技术活动,与会人数从 20 至 80 人不等。

Key Skills

  • Web 前端技术
  • C/C++
  • Node.js
  • Unix 系统编程
  • PHP
  • Shell
  • Python
  • 常用算法

Key Frameworks

  • Vuejs
  • Reactjs
  • React Native
  • LLVM
  • 其他常用框架

Education

上海交通大学

2016.03 - 2020.12

软件工程 - 工程硕士

在上海交通大学进行在职工程硕士教育,专业为“软件工程”方向,主要学习软件架构模式与方法、高级软件工程、算法设计与分析、信息系统建模、大数据基础与大数据处理系统架构、数据挖掘等相关内容的课程。毕业设计主要围绕 WebAssembly 在 Serverless 领域的应用与实践展开研究。

华东理工大学

2011.08 - 2015.07

信息工程 - 学士

在上海华东理工大学进行全日制本科教育,专业为“信息工程”方向,主要学习信号与系统、电路原理、基于51单片机的微机原理与设计等电路与信号方面的相关课程;Java 基础程序开发、算法与数据结构等软件开发方面的相关课程;复变函数、线性代数、高等数学等基础数学方面的相关课程。

Key Prizes

2014 年全国青年科普创新实验暨作品大赛

2014.08 - 2014.11

数据传输项目 - 全国第三名

代表母校华东理工大学的一支队伍参加了由中国科协科普部、共青团中央学校部主办的 “2014年全国青年科普创新实验暨作品大赛”,通过初赛和上海市复赛的选拔,在全国决赛中带领团队取得了 “数据传输” 项目全国第三名的成绩。我在团队中担任队长及主程序的角色。

生物工程学院院徽设计大赛

2014.07

院徽设计 - 二等奖

参加由华东理工大学生物工程学院举办的学院院徽设计大赛,获大赛二等奖。

Speech (Partial)

FCC 上海前端技术线下沙龙 #1#2

2017.04

主题:《造轮子-简单的 MVVM 框架核心》

主要介绍 MVVM 框架双向绑定的基本原理,如何用50行代码实现一个简单的基于“脏检查”的数据双向绑定核心。

2017.08

主题:《函数柯里化在前端开发中的应用》

主要介绍函数柯里化在前端开发中的应用,包括“延迟计算”等特性在内的多种场景下的应用。

QCon 上海 2017

2017.10

主题:《WebAssembly 核心原理、应用与未来展望》

主要介绍 WebAssembly 的基本核心原理,介绍已经过实践或正在被人们尝试实践的应用场景,以及 WebAssembly 的未来发展路线。

GMTC 全球大前端技术大会 2019

2019.04

主题:《WebAssembly — 技术变革,未来已来》

主要介绍 WebAssembly 的出现背景、一个简单的实践、国内外大公司已投入生产的项目、Post-MVP 标准中的相关特性和实现细节,以及 WASI 等。

2019.12

出品人 — “前端前沿技术”专场

邀请了来自 TC39 的 Daniel 为我们介绍名为 WeakRefs 的 JavaScript 标准提案。其他分享主要有 WebAssembly 在音视频及加密领域的实践、Deno 现状与发展,以及腾讯多端一体化框架 Hippy。

Publication

实体图书《深入浅出 WebAssembly》(第一版)

2018.11

基本介绍:本书力求从简单的实践入手,深入理论,再到复杂的具有实际业务价值的综合实践,深入浅出地介绍 WebAssembly 技术发展至今,其背后涉及的各种底层技术设计原理与实现、相关工具链及未来的发展方向等多方面内容。整体写作时间花费9个月。

主要内容:WebAssembly 技术的发展历程,从 PNaCl 到 ASM.js 再到 Wasm,这些技术的基本应用方法与性能对比;Wasm 的标准上层 API、底层堆栈机的设计原理,以及对 MVP 标准的深入解读;与 Wasm 标准相关的进阶内容,如单指令多数据流(SIMD)、动态链接(DL)等;LLVM 工具链与 WAT 可读文本格式的相关内容;基于 Emscripten 工具链开发 Wasm 应用的基本流程,以及工具链的基本常用功能和特性;基于 Emscripten 工具链实现 C/C++ 语言动态关系绑定技术;Emscripten 工具链提供的如 WebGL 支持、虚拟文件系统、应用优化以及 HTML5 事件系统等高级应用特性;如何构建具有实际业务价值的 Wasm 应用,现阶段 Wasm 生态的发展情况,以及在 Post-MVP 标准中准备加入的未来 Wasm 特性。

Open Source Project

TWVM

C++

TWVM 是一个小巧、高效且具有高可移植性的 WebAssembly 虚拟机。它力求在 Interpreter 模式下就具备足够高的性能,并同时支持可选的 JIT 优化。它支持完整的 Wasm MVP 标准特性、部分 Post-MVP 特性以及完整的 Wasi 标准核心(Core)接口。

Sharpen

C++ / JavaScript

Sharpen 是一个基于 WebAssembly 构建的 Diff 差异计算引擎,旨在尝试为前端 MVVM 框架提供高性能的 VDOM 差异计算能力。借助 Wasm 在其 Post-MVP 标准中加入的 “Reference Type” 以及 “Host-Binding” 等特性,我们有希望通过 Wasm 以极低的性能损耗来处理和计算 JavaScript 资源。

Zero (Demo)

C / C++

Zero 是一个基于 WebAssembly 进行前端代码(JavaScript)加密的实验性 Demo。通过将 ASCII 明文代码转译为 VM 内部依赖的 ByteCode,再到可见字符的 Base64,加壳过程大大降低了前端明文代码的可读性,同时也提高了反编译的难度。

Cinderalla (Demo)

C++

Cinderalla 是一个基于 LLVM 构建的实验性语言编译器。前端基于“递归下降”算法来进行语法分析,后端直接对接到 LLVM IR,可将源代码译到本地 ISA 或 WebAssembly 虚拟机的 V-ISA。

SHDB

Shell

SHDB 是一个专门为 Shell 脚本提供数据存储功能的 NoSQL 数据库,类似 GDBM。它的配置和使用十分简单,空闲时不占用内存和 CPU 资源,数据库资源完全静态化地保存在本地。

Zoomage.js

JavaScript

Zoomage.js 是一个基于 HTML5 开发的图片手势缩放库。基于它我们可以在 Web 页面上使用类似原生 Gallery 所提供的、可以对图片进行基于手势的拖拽、旋转以及缩放等变换特效。Zoomage.js 集成了基于 “canvas 对象” 和 “transform 属性” 两套解决方案,最大程度上保证了其可用性。

Hyperion

JavaScript

Hyperion 是我的个人博客系统,基于 Hexo 深度定制。使用 Expressjs 提供 Web 服务,GraphQL 作为 API 层的描述语言,通过 Workbox 提供 SW 离线缓存功能,并同时集成了 PWA 特性。数据跟踪方面整合了 GA,在本地的静态构建阶段也整合了众多的网页性能优化策略。博客现已发布文章 160 余篇。

LSB-Based-PixelWatermark-QRCode

Java

LSB-Based-PixelWatermark-QRCode 是一个基于 LSB 算法实现的水印隐写与提取程序。该算法的隐写容量基于图片本身的像素密度,缺点是其鲁棒性较低。

QRDataTransfer-Android

Java

QRDataTransfer-Android 是一个基于二维码进行数据无线传输的 Android 应用。该应用使用了半屏传输(一个屏幕传输两个二维码)和响度反馈(利用适当分贝的声音反馈来响应当前传输是否完成)两种机制来提高传输的精度和速度。一个大小为 500KB 的二进制文件可以在大约一分半时间内传输完毕。