自我评价

  • 平时喜欢阅读优秀的源码项目,阅读过Nginx中的线程池代码,了解基本原理;
  • 善于尝试使用多种手段解决问题,在C++项目开发过程中遇到的问题时,学习使用python分析数据,定位问题;
  • 平时会阅读一些经典书目,如《C++ STL源码剖析》、《C++ Primer中文版》等。

求职意向

C/C++ 软件研发

毕业院校

西安航空学院

专业

计算机科学与技术

工作经验年限

三年

出生日期

1998/01/22

工作经历

北京博华信智科技有限公司

软件研发工程师

十一月 2021 - 现在

  • 完成新业务代码的开发、编译和自测等流程;
  • 对部分已完成的代码功能进行功能和性能的优化,根据现有和将来所需要的功能进行模块化划分,实现高内聚低耦合的标准;
  • 配合软测部门解决软件测试阶段出现的Bug,对一些关键代码使用测试用例进行检查;
  • 与用户配合,进行交付产品的试验,解决试验中出现的问题。

西安中星伟业通信科技有限公司

C++开发工程师

七月 2020 - 十月 2021

  • 解决项目中存在的bug;
  • 优化界面响应速度和设备开机启动时间;
  • 编写软件使用说明和软著文档。

项目经验

【公司:北京博华信智科技有限公司】【项目:发动机健康管理系统】

十一月 2021 - 十一月 2023

担任角色:

软件研发工程师

项目内容:

该项目是基于国产sylixos操作系统实现的一款监管告警软件。由数据采集、数据处理和数据保存三个主要模块构成的嵌入式软件系统。支持获取飞机飞行过程中的多种状态数据,能够通过获取到的飞行数据判断当前飞机飞行状态是否正常,当存在异常状态时,进行预警。同时对飞机历程数据进行了保存,目的是为了飞行结束后,地面站能分析整个飞行过程的飞机状态。

项目职责:

  • 使用zmq的push-pull模式实现不同模块之间的网络通信;
  • 设计并实现了一个环形队列,用于缓存数据,避免了频繁进行内存分配和释放的开销;
  • 在数据采集模块中使用pthread多线程分别进行数据的接收和发送,进行并行化处理,提升了整体性能;
  • 使用Poco库中的Json模块,处理Json数据,实现读取配置文件加载配置信息;
  • 使用std::string和Poco库中的Path、DateTime模块生成数据保存时的文件名;
  • 使用statvfs系统调用,获取保存目录下的文件系统信息,通过f_bavail和f_bsize计算出当前文件系统可利用空间,当可利用空间小于500MB时,调用删除历史文件的函数,删除时间最早的历史文件;
  • 使用python的matplotlib库,读取数据保存模块保存的文件,分别读取每包数据的关键数据,绘制关键数据的变化趋势图。

【公司:北京博华信智科技有限公司】【项目:飞机故障分析系统】

十二月 2023 - 现在

担任角色:

软件研发工程师

项目内容:

该系统通过RS422总线获取来自电子控制器的发动局状态参数信息,根据内置的状态分析软件进行运算,实现起飞推力检测与告警、振动信号故障诊断等功能。并生成相应信息并通过RS422总线发送给电子控制器。产品数据可保存在内置存储器,并能通过接口保存在外置数据记录仪。

项目职责:

  • 实现一个zmqTransfer程序,实现将网络通信的zmq消息转化为串口消息,并通过串口进行发送;
  • 实现一个comTransfer程序,采用多线程的方式从多个串口读取不同的数据,将读取到的串口数据转化为zmq消息,再使用zmq的pub方式,将数据消息进行广播;

【公司:西安中星伟业通信科技有限公司】【项目:北斗导航定位系统】

七月 2020 - 十月 2021

担任角色:

软件开发工程师

项目内容:

该项目是在QT平台下开发的一款导航定位系统,使用北斗、GPS、GLONASS 三种卫星导航方式,可以单独使用其中一种,也可以多种结合使用,接收卫星的定位、授时等信息。该系统的主要功能有:导航定位、历史航线记录、危险区域提醒、航速测算等。可实现海面航行时的实时定位和其他辅助功能。

项目职责:

  • 进行软件 Bug 修复和软件自测,和团队成员在短期内修复近百条 Bug;
  • 使用 Qt 开发串口通讯小工具,方便软件串口通讯部分的调试;
  • 优化UI界面;
  • 完成项目总结文档和计算机软著的编写。

技能

  • 专业技能

    1. 熟悉C/C++开发,熟悉面向对象编程思想,熟悉STL,C++特性,三年研发经验;

    2. 具备两年Linux环境开发经验,熟悉常用的Linux命令,了解Makefile、CMake、GDB调试器等工具,熟悉Linux多线程编程,了解Linux I/O复用select、poll、epoll高并发模型;

    3. 掌握ZeroMQ、Poco等网络开源库的使用,熟悉网络编程;

    4. 熟悉Git、svn等版本管理工具的使用;

    5. 熟练阅读和编写英文技术文档和代码注释,已通过CET6