V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
anying
V2EX  ›  求职

上海求职, Golang 开发岗,麻烦各位大佬指导一下简历,求内推合适岗位。

  •  
  •   anying · 2020-10-20 09:43:36 +08:00 · 4617 次点击
    这是一个创建于 1497 天前的主题,其中的信息可能已经有所发展或是发生改变。

    联系方式 (base64)

    • 微信:a3ZzaGloCg==
    • 邮箱:aUBrc2hpaC5jb20K

    个人信息


    工作经历

    上海 xxx 信息科技有限公司 [2016 年 08 月 ~ 至今]

    作为机器人项目后端负责人,负责后台管理的设计与开发,带领 5 人团队,实现的巡检任务调度系统稳定性达到 99%。
    负责物联网卡项目运营商物联网 HTTP 与 RPC 接口的封装与整合,用 Go 语言实现了电信接口的加解密,优化后对比初版性能提升 5 倍。
    学习接受能力强,平时会主动研究新技术,热衷于优化提升性能,不盲目使用复杂的库,信条是 K.I.S.S (Keep It Simple Stupid)。

    • 智能巡检机器人

      • 使用技术: Python, Rust, Docker, WebRTC, SSE, PostgreSQL
      • 使用 Python 开发管理页面,Rust 开发任务调度系统,WebRTC 开发语音对话功能。此项目的难点在于机器人意外断电重启的异常处理、后台系统的长期运行稳定性以及摄像头实时画面的展示,并且在快速迭代的同时维护好代码的可读性及复用性。考虑到机器人后续的批量生产,初始化系统会是个很大的工作量,提出使用 Docker 镜像来部署系统。这样量产时导入准备好的镜像即可,极大的降低了量产时的复杂度。
      • 后台管理由于快速迭代,需求会经常变动,所以选用了 Python 的 Django 框架,进行快速开发。由于页面需要获取 ROS 的数据,但是 ROS 自身提供的 WebSocket 不稳定,考虑到 SSE 的单工就可以满足需求,因此使用 SSE 替代 WebSocket 简单化调用与降低占用。页面上还需要进行实时画面展示与音视频通话,但浏览器不直接支持 RTSP 协议,Flash 也即将淘汰,权衡之后选择 WebRTC 协议,通过 FFMPEG 将 RTSP 流转换成 WebRTC 流,从而支持主流大部分浏览器。
      • 任务调度部分需要很高的稳定性和完善的异常处理机制,但是后期需求改动并不大。考虑之后选用了 Rust 来进行开发,并且直接使用 SQL,并未使用 ORM 库。以开发时间来换取极高的稳定性和健壮性。在验证了这一点后,后续把后台管理和 ROS 之间的调用接口也迁移至 Rust,使后台管理专注于页面及数据库处理方面,不需要再连接 ROS,避免了后台管理部分连接断开造成的异常。
    • 物联网卡管理平台

      • 使用技术: Go, gRPC, Redis, PostgreSQL
      • 使用 Go 语言对国内三大运营商物联网 HTTP 接口进行统一的封装,同时搭建了 CI 系统,使测试部署过程自动化,减少人工干预。此项目的难点是接口的整理简化与处理,以及中国电信接口的任务回调处理。考虑到接口的实时可用性,在重启时也不能中断程序,因此在开发时就考虑了平滑重启。
      • 运营商接口过于杂乱,特别是中国移动,每个省份都是提供单独的接口。考虑到开发体验和用户体验,及高实时性和稳定性,兼顾快速开发,选用 Go 进行开发,未使用 ORM,直接使用 SQL 语法。各个运营商接口的格式和加解密方式都不同,需要使用单独的方法,但又要考虑代码的复用性,而 Go 缺少泛型的支持,因此在性能不是特别苛刻的地方使用了反射,虽然造成了一点性能的损耗,但是代码复用性提升很多。电信的处理接口是非实时的,而且同一张卡必须等前面任务处理完才能提交下一个任务,否则电信端会抛出异常。这里我采取的解决方案是接收到用户任务后统一写入 Redis 进行排队,并且定时主动查询运营商当前任务的完成情况。

    南京 xxxx 科技有限公司 [2015 年 6 月 ~ 2016 年 8 月]

    • 音视频分屏转码推流聚合平台

      • 使用技术: Go, FFMPEG, H264, H265
      • 使用 Go 语言开发音视频流的转发直播录制程序。此项目的难点是对 H265 视频流的处理,H265 算是比较先进的视频技术,网络上的资料很少,对 H265 头部处理花费了较长时间。查看了相关英文资料,并且请教专业人士,了解了 H265 头部结构及处理原理后,实现了 H265 的头部处理。
      • 项目是对 H264 及 H265 视频的 RTP 流进行解析处理并同时通过 Socket 传输与 FIFO 文件写入,使用 FFMPEG 将 FIFO 数据定时保存为 MP4 视频文件。这个项目让我了解到了音视频格式的区别与细节,对 H265 视频格式有了一定程度的了解。项目对传输速度及音视频流队列有相应要求。音视频流必须按顺序进行队列处理,否则会出现花屏现象,为解决花屏问题,使用了 Go 语言的 channel 来对数据进行先进先出队列处理。

    参与的开源项目

    • pgcli: 优化项目配置文件的路径。
    • django-sspanel: 修复项目未登录时跳转的问题。

    技能清单

    以下均为我熟练使用的技能

    • 编程语言:Go / Python / Rust
    • Web 框架:Chi / Gin / gRPC / Django / FastAPI / Warp
    • 数据库、缓存相关:PostgresSQL / MySQL / SQLite / Redis / MongoDB
    • 版本管理、文档生成和自动化部署工具:Git / Docker / GitHub / Gogs / Slate / Drone
    • 操作系统、编辑器:Linux / Windows / VSCode / Vim

    致谢

    感谢您花时间阅读我的简历,期待能有机会和您共事。

    8 条回复    2020-10-25 14:08:31 +08:00
    ai277014717
        1
    ai277014717  
       2020-10-20 09:49:46 +08:00 via Android
    字节跳动考虑不?
    hbolive
        2
    hbolive  
       2020-10-20 09:54:14 +08:00
    可以,正是当打之年。。
    wilsonWei
        3
    wilsonWei  
       2020-10-20 10:15:34 +08:00
    小伙子好好干,我看好你
    ricky0603
        4
    ricky0603  
       2020-10-20 11:39:38 +08:00
    考虑杭州的机会么
    anying
        5
    anying  
    OP
       2020-10-20 12:02:37 +08:00
    @ricky0603 不好意思了,杭州暂时不考虑
    gh0007
        6
    gh0007  
       2020-10-20 13:11:40 +08:00
    当打之年
    OneMan
        7
    OneMan  
       2020-10-24 10:56:55 +08:00
    广州考虑不
    onecold126
        8
    onecold126  
       2020-10-25 14:08:31 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1009 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:56 · PVG 05:56 · LAX 13:56 · JFK 16:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.