软件开发工程师/算法工程师 (职位编号:02)
智动时代(北京)科技有限公司
- 公司规模:少于50人
- 公司性质:民营公司
- 公司行业:机械/设备/重工
职位信息
- 发布日期:2020-12-29
- 工作地点:北京-大兴区
- 招聘人数:2人
- 工作经验:3-4年经验
- 学历要求:本科
- 职位月薪:1-2万/月
- 职位类别:高级软件工程师 算法工程师
职位描述
一、 基本技能
1、 编程基本功扎实
掌握C/C++/JAVA等开发语言、常用算法和数据结构、熟悉TCP/UDP网络协议及相关编程、进程间通讯编程。
2、 专业基础知识
全面、扎实的软件知识结构,掌握操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全等专业知识。
3、 岗位要求
(1) 了解MYSQL及SQL语言、编程,了解NoSQL, key-value存储原理;
(2) 了解Python/Shell/Perl等脚本语言;
(3) 熟练掌握Git/SVN代码管理工具和敏捷开发流程;
(4) 熟悉常用的设计模式;
4、 机器人嵌入式系统软件开发人员要求:
(5) 精通C/C++/Python。
(6) 精通Linux程序架构设计;精通Linux高级编程。熟练掌握网络协议编程,精通多线程/多进程编程。
(7) 熟悉ROS机器人系统技术体系,熟练掌握ROS开发工具。熟悉ROS系统架构和模块开发,熟悉ROS仿真环境,ROS系统移植。
(8) 熟悉硬件模块:camera、GPS、串口,熟悉各种通信接口,如CAN、UART、SPI、I2C、Ethernet。能够融合移植基于ROS系统的激光、视觉、红外等传感模块。
(9) 了解机器人运动控制、定位、导航、语音等算法。
二、基本素质
1、 团队精神和协作能力
协作能力作为是程序员应该具备的最基本的,也是最重要的安身立命之本。在进入商业化和产品化的开发任务,缺乏这种素质的人就完全不合格了。
2、 文档习惯
良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。
3、 规范化
标准化的代码编写习惯作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。
4、 需求理解能力
可以快速理解项目需求,以及自身要做的内容处于项目的位置,要有全局的掌握能力。性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。
5、 复用性
复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作。
6、 测试习惯
测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常调用下完成基本功能,这是最基本的测试职责;第二方面就是异常调用的测试,比如高压力负荷下的稳定性测试,用户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频发的异常请求阻塞资源时的模块稳定测试等等。
7、 学习和总结的能力
善于学习,对于任何职业而言,都是前进所必需的动力。善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足。
8.精通Windows和Android操作系统下QT开发(C++)
公司介绍
公司使命:让天下没有危险繁重的工作!
联系方式
- 公司地址:北京市大兴区金苑路32号2幢1层102室中小企业创业基地