查看原文
其他

华为面向全球招募首席软件架构师

500强校园招聘

60万优质大学生

求职优选平台


我们正在寻找具有深厚软件工程经验、战略格局和宏观思维的高端专家,他将有机会引领极具挑战性的项目,带领团队挑战前沿技术。


//首席软件架构师//


工作地点:华为全国研究所(北京、深圳、上海、杭州、南京、西安、武汉、成都、苏州、东莞


岗位描述


  • 参与软件开发全生命周期 (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,安全和隐私是未来软件的主要挑战;

    领域相关:结合领域知识和经验,成为相关领域的软件工程能力的带头人。

简历投递渠道:

charles.chenxin@huawei.com


We are looking for candidates with solid and extensive working experiences in software engineering to join highly talented teams here at Huawei. Successful candidates will have opportunity to work on a wide range of extremely challenging projects and to expose to cutting-edge technologies. You are expected to be creative and fast-learning to keep up with technology advances. We have strong focuses on software life-cycle management, trustworthiness, quality assurance, and architecture design. You will find that this is an exciting and rewarding career path.




//Chief Software Architect//


Work Place:Huawei Research Center



Qualifications


  • Work on all stages of Software Development Life Cycle (SDLC) and trustworthy computing including tool and programming languages development;

  • Provide or apply the best practices for software development in industry to real product lines including telecom equipment, cloud services and consumer products, to improve the development process, including compilation/building/release processes;

  • Develop advanced program analysis tools to support software develop for secure and trustworthy software;

  • Work with engineers on different products to refactor legacy code, from coding style to software architecture;

  • Machine learning, deep learning experience, especially for networking system, such as networking optimization, planning, and automation;

  • Collaborate with academia to study advanced technologies in software engineering domain;

  • Be always creative in problem solving, keep learning and stay connected with the state-of-the-art technologies/processes/tools.


Technical Requirements (meet 3 or more)


  • BS degree and above in Computer Science, EE or related area,  with extensive working experiences in one of the areas: DevOps tool, software engineering, compilers, networking, database, operating system,  embedded system;

  • Familiar with software life cycle, development tools, building process, version control, product verification;

  • Master C/C++/Java/Python, experience with CICD, DevOps, CMake, Git, Gitlab, Github, or Jenkins;

  • Proficient in software design patterns;

  • Working knowledge in architecture design, virtualization, parallel and distributed computing;

  • In depth understanding of networking technologies and experience with major routing/switching protocols and SDN;

  • Experiences in network architecture/management design using NETCONF and YANG model;

  • Experiences in object oriented analysis and design in networking with UML and/or DSL;

  • Experience using existing RDBMS/NoSQL systems, with a working understanding of SQL and database internals;

  • Hands on experience of database engine development or in memory DB;

  • Experience with PyTorch, TensorFlow and other related tools.


Nice to have


  • Working experiences in secure programming, software refactoring;

  • In depth knowledge in compilation process and compiler technology, such as LLVM or GCC;

  • Experiences on system modelling, system analysis and verification;

  • Strong experiences in building large and complex system and software management

  • A plus in Software analysis;

  • Actively evolved in open source community, such as CMake, Bazel project;

  • Hands-on experience of database engine development;

  • Large network architecture design, with excellent network analysis and troubleshooting skills;

  • Strong experiences in parallel runtime or middleware design and implementation;

  • Linux kernel programming experience (memory management, uni-kernel, networking, RDMA, virtualization, containers, device drivers);

  • ML/DL experience in networking, cloud or mobile systems;

  • ARM tool chain development.


Right now, the coach positions focus on basic code quality, legacy code and software architecture refactoring, and software engineering process efficiency improvement. In the future, there are 4 areas to develop:

  • tools related: code analysis tools, building framework and tools;

  • programming related: automatic error correction, automatic code generation;

  • security related: DevSecOps, security and privacy will be major concern for future software;

  • domain related: combining with domain knowledge and expertise, coach could become a software engineering lead in specific domain.


If you are interested in this position, please post your resume tocharles.chenxin@huawei.com 



 你还可能感兴趣的内容 (点击文章题目即可)

●  曝光HR简历筛选逻辑——关键词

●  在500强公司工作,除了钱多还意味着什么?这是我听过最好的答案


 -END- 



点击左下角 “阅读原文” 查找更多岗位

据说点在看的人都拿到了OFFER!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存