于航

于航(曜彤)

Jason Yu

Personal Profile

生日:1993 - 09

简介:主要研究方向:前端技术与基础设施架构、WebAssembly 及 LLVM 等与编译器设计相关的技术。擅于中小型(3-12人)团队管理、演讲、钢琴、美妆和魔方。

Work Experience

阿里巴巴 / 饿了么全职

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

April 2017 - Present

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

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

Work Experience

Tapatalk Co., Ltd.全职

全栈工程师

March 2015 - March 2017

负责公司网站前后端的基础业务建设。后端业务建设主要包括:主站框架从 CakePHP 到 Laravel 的迁移,基于两个框架的后端业务接口开发,定时 / 常驻脚本的开发与维护。前端业务建设包括:对网站页面的代码与性能优化、SEO 优化、移动版 H5 网站的整体工程化设计与开发,项目基于 Knockout.js 开发,使用了 Gulp、Babel 自动化集成、ESLint 代码质量管理、Less 预处理器等前端库和技术。

Work Experience

FreeCodeCamp China 上海社区兼职

负责人

April 2017 - Present

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

Key Skills

  • Web 前端技术
  • C/C++11
  • Node.js
  • Lua
  • PHP
  • Shell
  • Python
  • 常用算法

Key Frameworks

  • Vuejs
  • Reactjs / Rax
  • React Native / Weex
  • 其他常用前端框架

Auxiliary Skills

  • Electron
  • MySQL / MariaDB
  • Nginx / Apache 基本配置
  • Redis
  • 简单安卓应用开发
  • VBScript

Education

上海交通大学

2016.03 - Present

软件工程 - 工程硕士

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

华东理工大学

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 等等。

Publication

技术图书《深入浅出 WebAssembly》(第一版)

2018.11

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

主要内容: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

Sharpen

C++ / JS

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 属性” 的两套解决方案,带来了极高的兼容性。同时其手势识别率高,动画效果连续、流畅,集成十分简单,支持 “构建工具 / Standalone” 两种使用方式。

Hyperion

JS

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

Ballpen.js (Obsolete)

ES6

Ballpen.js 是一个简单易用的、基于插件的 MVVM 前端开发框架。其核心功能包括:指令系统、数据双向绑定、数据观察器、生命周期 Hook 等。

SwiftSlide.js

JavaScript

SwiftSlide.js 是一个基于 HTML5 特性开发的 DOM 滑动引擎,该引擎使用事务队列和绑定机制来处理 DOM 元素的滑动效果,使用该库我们可以支持对 DOM 元素的高性能滑动效果,适用于 SPA 应用或者需要高性能滑动特效动画的场景。

Essl

PHP

Essl 是一个用于分析基于 X.509 协议的 HTTPS 网站 SSL 证书的 PHP 库。使用该库可以获得 SSL 证书的完整签名、使用者可选名称等多种属性,并可以快速的进行基于“有效时间”和“使用者可选名称”的证书有效性验证。

LSB-Based-PixelWatermark-QRCode

Java

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

QRDataTransfer-Android

Java

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