关于我

我是龚海兵,常用 id 为 dylanninin,在网络上通过 dylanninin 一般都可以找到我。有几年工作经验,对编程语言、数据库、操作系统、网络、Web 开发与架构等略有一些经验和研究,目前专注于 Web 应用开发,关注 Web 性能、架构与安全;对机器学习亦有兴趣。

非常乐意与大家一起探讨技术、分享创意、交换想法等等,大家若有兴趣可以随时联系我:-D

本博客托管在 GitHub Pages (具体见 Free Blog with Github Pages)。虽然名之为博客,但是万年不更新,产出和坚持不足;偶尔会以 issue 的形式来记录日常、思考,欢迎大家阅读、点评、交流。


技能专长

  • 英 语:CET-6;听说读写良好;坚持背单词;坚持英文原文阅读
  • 语 言:3年 Java;3年 Python;2年 Ruby;1年 Golang
  • 数 据 库:3年 PostgreSQL、MongoDB、Redis、ElasticSearch;擅长数据库设计、性能调优
  • 网 络:3年办公网络管理;熟悉 TCP/IP、OpenVPN;熟悉 HTTP/HTTPS
  • 平 台:6年 Unix/Linux,擅长系统问题诊断、性能优化;熟悉 Vagrant、Docker
  • 架 构:3年 Tech Lead,负责业务、技术、架构方案;熟悉 Web 应用常见架构
  • 管 理:3年团队、项目管理经验;熟悉 Scrum、Agile 等敏捷方法与实践
  • 方 向:目前专注于 Web 应用开发,关注 Web 性能、架构与安全;对机器学习亦有兴趣
  • 工 具:熟悉 Mac/Vim/Tmux

技术分享

整理了工作中的一些分享,偏向于基础知识,内容深度有限,若有错误还请及时指出。放在 SlideShare ,列表如下


主要经历

  • 2007/09 - 2011/06,软件工程 @ 武汉大学
    • 主修操作系统,计算机网络,编译原理,数据库系统,数据结构与算法等
    • 主要编程语言 Java,技术栈 Struts/Spring/Hibernate/Tomcat/Ubuntu
  • 2011/07 - 2014/02,IT 工程师 @ TP-LINK
    • 2011/07 - 2012/09,Java Web 开发SSH 技术栈,前端先后使用过 FlexExtJS;之前整理的 Java Resource
    • 2012/10 - 2014/02,DBA,主要维护 Oracle Database,MySQL;之前整理的 Oracle DBA
    • 2012/10 - 2014/02,Oracle ERP DBA,主要维护 Oracle EBS 及周边系统;之前整理的 Oracle ERP DBA
    • 2012/10 - 2014/02,Linux SA,主要维护 AIX/RedHat/CentOS 系统及各类 Java 应用部署等;之前整理的 Linux Administrator
    • 2012/11 - 2014/02,朋友介绍推荐,自学 Python,并解决工作中的一些小问题;之前整理的 Python Resource
    • 2013/10 - 2014/02,朋友介绍推荐,自学 Ruby/Rails,此时已经决定离职,希望接下来找一份 Ruby/Rails 相关开发的工作;之前整理的 Learn Rails
  • 2014/02 - 2014/03,找工作,About Me For A New Job
    • Ruby/Rails 无项目经验 ~~
    • Python 好一些,有一个简单的 Blog
  • 2014/03 - 2017/04,高级开发工程师 @ SPONIA
    • 2014/03 - 2017/04,引入和维护 Phabricator,作为产品研发办公平台,按需定制功能,集成 ElasticSearch 改进搜索,优化邮件通知等
    • 2014/05 - 2014-07,开发 PM 2.5 App,数据源 PM25.in;技术栈:Python/Tornado/rq/MongoDB/Supervisor/Nginx
    • 2014/05 - 2017-04,引入和维护 Jenkins-CI,对接 Bitbucket/GitHub,搭建 iOS/Android/Web/Backend 自动化构建平台
    • 2014/07 - 2015-03,接手洋葱圈赛事数据,对接 soccerway 服务,为 App 提供定制化的赛事服务;技术栈:Python/Tornado/rq/MongoDB/Supervisor/Nginx
    • 2014/10 - 2015-06,接手洋葱圈 UGC 部分服务,一边开发新功能,一边尝试重构;技术栈:Python/Tornado/rq/MongoDB/MySQL/Redis/Supervisor/Nginx
    • 2015/01,代码版本管理工具从 HG 迁移到 Git,工具 HG Fast Export
    • 2015/07 - 2016-08,接手洋葱圈管理后台,主要解决运营需求;技术栈:Python/Django/MySQL/Redis/Supervisor/Nginx
    • 2015/07 – 2016/05,开发业余赛事统计服务 OpenPlay;技术栈:Python/Tornado/rq/pytest/MongoDB/Redis/ElasticSearch/Supervisor/Nginx
    • 2016/05 – 2016/07,开发青训服务开玩青训;技术栈:Ruby/Rails/RSpec/PostgreSQL/Supervisor/Nginx
    • 2016/08 - 2016/11,学习 Golang,探索开发游戏相关 App;技术栈:Golang/Gin/PostgreSQL/Supervisor/Nginx
    • 2016/11 - 2017/04,开发 Fatu;技术栈:Ruby/Rails/Sidekiq/RSpec/PostgreSQL/Redis/ffmpeg/giflossy/Docker/Nginx
    • 2017/02 - 2017/03,引入和维护 Ansible,自动化服务器维护、DNS/TLS/Nginx 配置、应用初始化及进程管理等
  • 2017-05 - 至今,休息,希望能开启远程工作、自由职业之旅

阅读思考

阅读,无论是优秀经典的图书,还是富有启发性的源码,对我们来说都非常重要。

陈天在《为什么我们要阅读源码?》 中拿阅读源码与读书类比,总结出三大功用:

  • 『积累素材(information)』
  • 『开拓思路(knowledge)』
  • 『通过了解,吸收别人的思想,去芜存菁,最终形成自己的思想,或者说智慧(wisdom)』

关于阅读源代码。说来惭愧,有过完整阅读、深入思考的源代码并不多,列举几个:

  • rq:Simple job queues for Python。节假日时间阅读完,学习作者如何从一个启发式的 idea 逐步迭代成为一个生产级别的任务队列,简单、轻量、够用。
  • requests:Python HTTP Requests for Humans™。涉及 HTTP 网络请求时,经常会用到。主要学习设计,整理过一个简单的流程图 Understanding Requests
  • tornado:Python web framework and asynchronous networking library。这是之前做 Python Web 开发的主要框架,主要学习它的设计,比如 IOLoop, HTTPServer, Web Application, WSGI,WebSocket 以及 Coroutines/Concurrency 等,见整理 Understanding Tornado
  • shadowsocks:你懂的,主要学习网络相关知识。
  • Activity Streams:包括 timeline, news feed, activity streams and notification systems 等,在互联网应用中会经常看到。最近做笔试题时碰到,后来看过一些同类源代码,主要学习其设计、实现。
    • public_activity:Rails, Easy activity tracking for models - similar to Github’s Public Activity。
    • tschellenbach/Stream-Framework:Python + Cassandra/Redis,同时提供 cloud service。其中提到的一些背景文章,如 Twitter/Etst/Quora 等如何设计可扩展的 feed 信息流也值得一读。

关于读书。主要根据需求、兴趣、推荐等,时不时会看一些书籍,近来看过的列在 GitHub 上,见 Readings。有些书没吃透,得多啃啃;另外有机会也会把笔记、心得整理上去。

『information -> knowledge -> wisdom 是个长期的累积,并非一朝一夕之功。』道理自然都懂,只是实践不易,共勉!


一些链接


联系方式

  • gmail dylanninin (at) gmail.com

blog comments powered by Disqus