个人简历
最后更新: 2011-07-03
永久链接: http://zhigang.org/resume/chinese/
自我评价
- 熟悉GNU/Linux系统和开源软件的开发。
- 对虚拟化技术(特别是 Xen )有深入了解。
- 熟练掌握C, Python ,Shell脚本等编程语言。
- 熟悉 Django 框架。
- 熟练运用英文进行交流。
工作经历
- 2011-02 - 至今: Oracle America, Inc. | 高级软件工程师 | Nashua, New Hampshire | 全职
- 2011-02 - 至今: Oracle VM 3.0
- 职责:
- Oracle VM Agent优化。
- Assembly和模板管理。
- 关键技能:
- Linux网络和存储管理。
- Open Virtualization Format (OVF)。
- Python编程。
- 2006-06 - 至今: 甲骨文软件研究开发中心(北京)有限公司 | 软件工程师 | 北京 | 全职
- 2009-11 - 2011-01: Oracle VM 3.0
- 职责:
- Xend性能优化。
- 重构Oracle VM Agent以增加网络和存储管理功能。
- 关键技能:
- 2008-10 - 2009-10: Oracle VM 2.2
- Oracle VM 2.2是2.1版本的升级。该版本中增加和提升了诸多企业级客户需要的功能,如高可用,电源管理,模板创建等。
- 职责:
- 修改xend为Oracle VM Agent提供的接口。
- 开发调试器对Linux客户机进行调试。
- 参与Transcendent memory项目,该项目通过优化Xen上面的Linux客户机的内存使用以提高性能。
- 增强存储管理功能。
- 对Linux control domain的网络进行重构。
- 关键技能:
- Linux存储管理:iSCSI,Fiber Channel和Multipath技术。
- Linux网络设置:Bridge,VLAN和Bonding。
- Linux防火墙:iptables实现和配置。
- 2006-11 - 2008-09: Oracle VM 2.1
- Oracle VM是一款高性能的服务器虚拟化软件。它的Hypervisor基于Xen,使用Linux作为Control domain,并且开发了一套基于Web的管理控制界面对虚拟机的生命周期进行管理。
- 职责:
- Linux paravirtualized driver开发。
- 开发在Linux control domain中运行的Oracle VM Agent与Oracle VM Manager通信。
- 虚拟磁盘和网络设备的QoS管理。
- 实现客户机动态迁移时使用安全的TLS/SSL加密传输。
- Linux客户机网络PXE引导实现。
- Linux和Xen串口终端的改善。
- Linux virtual framebuffer的增强。
- Linux客户机VNC终端的改进。
- 实现全局锁一防止同一个虚拟机在不同服务器上同时启动。
- 帮助技术支持团队解决有关Oracle VM的问题。
- 帮助QA团队设计Oracle VM测试计划。
- 关键技能:
- 服务器虚拟化方法。
- Xen hypervisor内部实现。
- Linux paravirtualized driver实现。
- Python编程技术。
- 分布式版本管理系统(DVCS)如Git,Mercurial的用法。
- 英语交流能力。
- 2006-06 - 2006-10: Oracle Validated Configurations
- Oracle Validated Configurations提供对整个架构,包括软件、硬件、存储和网络等组件,的完整测试和认证,并附以详细说明的最佳实践。该程序使用Oracle Linux Test (OLT)对各个组件进行测试。
- 我的职责是开发和改进OLT的测试用例。
- 关键技能:
- 2003-07 - 2006-05: 上海中标软件有限公司 | 软件工程师 | 北京 | 全职
- 2005-01 - 2006-05: NeoShine Linux 2.0
- NeoShine Linux 2.0是1.0的升级。1.0版本主要关注桌面应用,该版本中增加了许多服务器功能。
- 职责:
- NeoShine Linux内核维护,包括新硬件的驱动,USB设备支持的改进(主要是网络摄像头和存储)和电源管理的增强。
- NeoShine Linux安装程序Anaconda的改进和Bug修复。
- 关键技能:
- 为Linux内核打补丁,进行定制以及编译。
- Linux设备驱动模型和驱动程序的改进。
- 更多C编程技术。
- Linux操作系统安装程序的内部实现。
- 团队合作。
- 2004-02 - 2004-12: NeoShine Linux 1.0
- NeoShine Linux是COSIX Linux的后续版本。NeoShine Linux 1.0使用 Gnome 代替 KDE 作为缺省桌面系统。
- 职责:
- 为Gnome桌面应用程序开发新的功能,尤其是文件管理器Nautilus和归档管理器File Roller。
- 为Gnome应用程序修复bug。
- 显卡、声卡配置工具的开发和硬件检测库kudzu的改进。
- 将盘特殊功能键在NeoShine Linux中的支持。
- 关键技能:
- Gnome应用程序开发。
- GNU工具链的使用,包括gcc,gdb,ld,make,autoconf,automake和libtools。
- C编程技术。
- 软件diff/patching。
- 使用subversion进行版本控制。
- 使用Bugzilla进行Bug跟踪。
- 软件质量管理。
- 2003-07 - 2004-01: COSIX Linux OEM
- COSIX Linux是由中标软件创建的Linux分发版本。该OEM版本是为PC厂商定制的COSIX Linux并且会预装到出售的PC中。
- 职责:
- 将PC厂商的商标、Logo嵌入到COSIX Linux中。
- 为PC厂商开发或定制应用。
- 开发脚本实现OEM版本制作过程的自动化。
- 关键技能:
- KDE ,应用程序的开发,尤其是登录管理器kdm和归档管理器ark。
- 使用RPM进行软件包的制作。
- Linux操作系统分发版本的制作方法。
- Shell脚本编程技术。
- Vim编辑器。
教育经历
- 1999-09 - 2003-07: 东北大学秦皇岛分校 | 计算机科学与技术 | 本科 | 秦皇岛 | 全职
- 成绩优秀。
- 从2000年开始研究Linux和开源软件。
- 2000-09 - 2002-07期间在学校网络中心工作,获得了大量网络管理经验。