个人信息


工作经历

一土(北京)网络科技有限公司(在职)

【一土时空】是一土学校内部老师及家长使用的一款APP,用来记录学生的每一条成长及教学记录,同时也包含学生管理等功能。

Python 开发

2017.07 — 至今
主要工作内容及经历

晨犀老师版及家长版相关后台微服务API接口开发

晨犀(原一土时空)是一款基于线下学校的家校沟通 App

主要包含【行为记录】【课程表】【试听课】【测评】【报告】【请假处理】【班组管理】等功能

  1. 基于 Django 及 Django REST framework 框架和 Flask 框架及 SQLAlchemy 开发了【请假】【收藏】【评论】【点赞】【测评】【报告中心】【题库】等微服务的 RESTful 风格的接口。
  2. 在从 Django框架 (Python2)迁移到 Flask框架(Python3)时,解决了 supervisor 及 mysql-python 无法在 Python3 下运行的问题,重新定制了 Dockerfile 和相关配置文件。
  3. 实现基于 celery 框架以及 RabbitMQ 的异步操作以及 celery beat 的定时任务操作。
  4. 基于 Redis 数据库实现了数据库对象的缓存以优化耗时的数据库对象查询。
  5. 基于 pyspider 框架实现了豆瓣电影以及票牛网相关的活动抓取。
  6. 日常项目优化
    1. 对接口性能进行优化,减少不必要的字段返回。
    2. 优化代码逻辑,减少数据库查询。
    3. 数据库优化表结构,增加索引。
    4. 增加缓存。
技术栈

Flask | SQLAlchemy | Django | Django REST framework | MySQL


北京科浪扑科技发展有限公司(实习)

Python 开发

2016.11 — 2017.04
工作内容
  1. 负责内部使用的 API 数据录入功能,将机械化的工作代码化
  2. 负责 ES 搜索接口的 RESTful 风格的 API 的封装
  3. 实现基本增删改查接口,数据验证,数据下载功能
  4. 完成基本的单元测试及多线程并发的性能测试
  5. 编写 docker-compose
  6. 服务器环境部署(uWSGI,Nginx)
技术栈

Docker | Falcon | Cassandra | uWsgi | Nginx | pytest


个人项目

免费Shadowsocks账号分享

通过爬虫,获取网络上公开的SS,SSR账号,使用 Flask 配合一个 JS 的二维码渲染库的将二维码展示出来,以供公开使用

技术栈

Flask | Redis | MySQL | Docker | uWSGI | Nginx

实现功能

  • 多爬虫多线程同时爬取不同的网站
  • 将爬取到的账号信息按 SS 协议的规则进行编码
  • 使用MySQL记录爬取的日志
  • 使用Redis记录爬取到的账号,实时更新
  • 测试爬取到的账号速度,质量,并进行评分

鳄鱼词典

User Story:女朋友俄语系,日常有很大的查单词需求,可是一个非常好用的查单词的 APP 只在 Android 系统有 APP,没有 iOS 端,所以写了一个小 iOS APP 来给她查单词用

实现:通过 Charles 抓包,找到了安卓端 APP 请求的 API,顺藤摸瓜找到了 web 页面,找到了请求地址。接口实现了自动判断是句子还是单词,句子的话调用 Google 的翻译接口,单词的话调用了之前抓到的请求接口。并且句子的话会把每个词切割处理啊,同时多线程发请求来调用单词接口,再将每个词的翻译查出来

结果:🤦‍然而最后并没有使用我自己写的 API,而是直接将接口的返回值嵌入了 webview。


个人评价

工作态度:

  1. 不用百度,自带梯子
  2. 技术服务业务
  3. 代码规范
  4. 注重性能
  5. 尽量在工作效率和代码效率上达到平衡
  6. 重视 Code Review,对于同事提出的问题虚心接受,同时也能认真负责的 Review 他人代码。

个人定位:主攻后端开发,不局限于语言,愿意了解各种后端组件及数据库等,乐于折腾各种架构环境

我的优势:有良好的沟通能力以更好地了解业务需求,热爱技术,乐于学习和了解各种语言和框架,例如当下比较火的Golang,遇到问题不过分依赖其他人,能够主动独立的解决,哪怕查穿 Google 翻遍官方文档和 Stack Overflow 或者到 GitHub 上提 issue。除了国内的一些技术大牛,每天也通过 Twitter,Github Trending,Reddit 等主动了解最新的技术,保持视野开阔。

我的劣势:算法相关不是很熟练,目前是通过经常刷 leetcode,仔细理解优质回答来进行提高。


技能清单

以下技能中的子项按熟练程度排列

  • Python Web
    • Flask
    • Django,Django REST framework
    • SQLAlchemy
    • Falcon
  • Python 爬虫
    • requests + lxml
    • Selenium + PhantomJS + lxml
  • DB
    • MySQL
    • MongoDB
    • Redis
  • 单元测试
    • pytest
  • 服务器
    • uWSGI
    • Nginx
  • 其他
    • Docker
    • kubernetes

开发环境及工具

  • Mac
  • VScode or PyCharm
  • iTerm2 + zsh
  • Postman or Paw
  • DB Browser
  • SourceTree