根据介绍,成为华为首席软件架构师会参与软件开发全生命周期(SDLC)和代码可信(包括工具和编程语言开发)所有阶段的工作,在电信设备、云服务、消费者产品等实体产品线应用业界软件开发最佳实践,提升开发流程效率,包括编译、构建、发布流程等,需要满足计算机科学、电子信息技术或相关领域的本科及以上学历,在DevOps工具、软件工程、编译器、网络、数据库、操作系统、嵌入式系统等领域有丰富的工作经验;熟悉软件生命周期、开发工具、构建过程、版本控制、产品验证等流程及方法;精通C / C++ / Java / Python,熟悉CICD、DevOps、CMake、Git、GITLAB、GITHUB或Jenkins等工具等技术要求。
下面是具体要求:
首席软件架构师
工作地点:华为全国研究所(北京、深圳、上海、杭州、南京、西安、武汉、成都、苏州、东莞)
岗位描述
参与软件开发全生命周期 (SDLC) 和代码可信(包括工具和编程语言开发)所有阶段的工作;
在电信设备、云服务、消费者产品等实体产品线应用业界软件开发最佳实践,提升开发流程效率,包括编译、构建、发布流程;
开发先进的程序分析工具,支撑软件开发安全和软件可信;
与研发工程师在不同的产品上合作,包括从编码到软件架构重构;
机器学习、深度学习体验,尤其是网络系统,例如网规、网优、自动化等;
与学术界合作研究软件工程领域的先进技术;
在解决问题时,始终要有创造性,持续学习,并与最先进的技术、流程、工具保持联系。
技术要求(需达到三项以上)
计算机科学、电子信息技术或相关领域的本科及以上学历,在DevOps工具、软件工程、编译器、网络、数据库、操作系统、嵌入式系统等领域有丰富的工作经验;
熟悉软件生命周期、开发工具、构建过程、版本控制、产品验证等流程及方法;
精通C / C++ / Java / Python,熟悉CICD 、 DevOps 、CMake、 Git 、 GITLAB 、 GITHUB 或 Jenkins 等工具;
精通软件设计模式;
具备架构设计、虚拟化、并行和分布式计算方面的工作知识;
具有网络技术以及主要路由/交换协议和SDN的深厚经验;
使用NetConf和Yang模型进行网络架构/管理设计的经验;
具有面向对象的分析和设计经验,与UML和/或DSL联网;
具备使用RDBMS/NoSQL系统的经验,对SQL和数据库内部有一定了解;
具有数据库引擎开发或内存数据库的实践经验;
具有PyTorch、TensorFlow和其他相关工具的经验。
具备以下条件更优:
具备安全编程、软件重构方面的工作经验;
深入了解编译过程和编译器技术,如LLVM或GCC;
具备系统建模、系统分析和验证经验;
在构建大型复杂系统和软件管理方面有丰富的经验;
具备软件分析方面的优势;
积极参与开源社区贡献,如CMAKE、Bazel项目。
具有数据库引擎开发实践经验;
具有大型网络架构设计经验,及出色的网络分析和故障排除技能;
在并行运行时或中间件设计和实施方面有丰富的经验。
具备Linux内核编程经验(内存管理、单内核、网络、RDMA、虚拟化、容器、设备驱动程序
具备网络、云或移动系统方面的ML/DL经验;
具备ARM工具链开发经验。
职业发展
目前该岗位聚焦于基础代码质量、存量代码和架构重构、软件工程效率提升三大领域;
未来的发展:
工具相关:代码检查工具、构建环境和工具等等;
编程相关:自动代码纠错、自动代码生成;
安全相关:DevSecOps,安全和隐私是未来软件的主要挑战;
领域相关:结合领域知识和经验,成为相关领域的软件工程能力的带头人。
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。