Huawei Russian research center is looking for qualified candidates to join their distributed and cloud computing Lab. The main responsibility of this Lab is to conduct research and development on distributed computing framework/engine (such as Apache Spark and Tensorflow) and algorithms (such as machine learning and graph algorithms) for big data applications (such as social network analytics) and artificial intelligence applications (such as speech/image recognition and natural language processing for robotics and automated driving). On upper level, we are aimed to optimize existing or design new highly efficient distributed parallel programming model/framework, domain specific algorithm library and API for application algorithm and solution developers. On lower level, we are aimed to optimize existing or design new powerful distributed computing engine that can fully utilize hardware resources (commodity X86, or ARM, or GPU, or heterogeneous server clusters). We are also interested in cloud computing related technologies that can enable us to provide our distributed computing framework and algorithms as a service very efficiently on cloud platform (such as Huawei cloud).
- Architecture design/key technologies research/prototype development of new distributed computing framework for big data and deep learning applications.
- Optimize and improve existing distributed computing framework/engine.
- Design and develop new big data or artificial intelligence algorithms to solve real problems.
- Design and develop domain specific algorithm library and API for some specific application domains.
- Deploy our computing engine and algorithm library on cloud platform, and enable the efficient distributed computing framework and algorithm as a service on Huawei cloud.
- Leading edge research on big data and cognitive computing algorithms, distributed and cloud computing engine, and other related software technologies.
- Patent and publication.
Qualifications required and absolutely necessary skills:
- Ability to do scientific/engineering research both as a team member and as a single player, and quick self-leaning ability.
- Preference will be given to candidates with scientific degrees (Ph.D., Dr.Sc.) with publications in relevant areas such as Computer Science, Software Engineering, Mathematics, Statistics, Physics, Cybernetics etc.. OR, M.S. degree with rich work experience in related areas.
- Skilled in at least one of the programming languages: Java, Scala, Python, C++/C. OR, skilled in, from mathematical or computer algorithm point of view, at least one class of the following algorithms: machine learning, deep learning, graph algorithms (like community detection), or other artificial intelligence algorithms.
Important skills that will be considered as a plus:
- Experience in distributed computing framework, such as Apache Spark, MapReduce, MPI etc.
- Experience in deep learning framework, such as Tensorflow, Theano, Caffe, or other deep learning platform;
- Experience in graph computing engine, such as Pregel, Giraph, GraphLab, GraphX, Giraph++, Pregel+;
- Experience in algorithm development for one of the domain: data mining, social network analysis, speech recognition, image recognition, natural language processing, robotics, automated driving etc.
- Good knowledge of distributed networking and communication technologies, such as RPC, Netty, TCP/IP stack etc.
- Experience in CUDA, OpenCL, OpenMP;
- Experience in hardware acceleration technologies, such as FPGA acceleration, Intel MKL acceleration etc.
- Good knowledge of compilation optimization.
- Good knowledge of PaaS, AaaS, Openstack, Docker and other cloud computing technologies;
- Leading edge distributed and parallel computing, cloud computing, cognitive computing research background.
- Strong mathematical background, algorithm skills.
- Good verbal and written communication abilities in English.