Huawei Russian research center is looking for qualified candidates to join their IT algorithm Lab in Moscow or in Saint Petersubrg. The main responsibility of this Lab is to conduct research and development on distributed computing framework/engine (such as Apache Spark and Tensorflow) , NoSQL and Cloud storage, and algorithms (such as machine learning, storage compression and deduplication) for big data (such as relationship graph 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, file system or key value storage system, domain specific algorithm library for application algorithm and solution developers. On lower level, we are aimed to optimize existing or design new powerful distributed computing/storage 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/storage 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/storage framework for big data and deep learning applications.
- Optimize and improve existing distributed computing/storage 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/storage framework and algorithm as a service on Huawei cloud.
- Leading edge research on big data and cognitive computing algorithms, distributed and cloud computing/storage engine, and other related software technologies.
- Patent and publication.
- Ability to do scientific/engineering research both as a team member and as a single player, and quick self-leaning ability.
- Bachelor degree with rich work experience in related areas, OR successful participation at international/local competition in particular for math, programming, good scores from leading university. Publications, patents, PhD degree will be considered as an advantage.
- Skilled in at least one of the programming languages: Java, Scala, Python, C++/C etc.
Absolutely necessary skills (at least one item):
- At least one class of the following algorithms: machine learning, deep learning, graph algorithms (like community detection), or other artificial intelligence algorithms.
- At least one class of the following storage data structure and algorithms: compression and deduplication, QoS algorithms, cache algorithms, data distribution and consistency, erasure coding, distributed resource scheduling algorithm etc.
- Multicore and distributed parallel programming.
- Thorough understanding of Operating systems such as Linux, BSD Unix.
- Thorough understanding Good knowledge(delete this) of X86 or ARM architecture.
- Abilities to analyze competing products, business cases and technologies, market trends in one of the areas of Distributed computing, Storage, Cloud, Big Data, Artificial intelligence.
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.
- Experience in Linux Kernel/OS/Virtualization and related areas.
- Experience in File system/NoSQL/Ceph and storage related areas.
- Experience in working with ARM related software or hardware.
- Good knowledge of compilation optimization.
- Good knowledge of PaaS, AaaS, Openstack, Docker and other cloud computing technologies;
- Leading edge distributed and parallel computing, NoSQL,cloud computing, cognitive computing research background.
- Experience in production or open-source software development.
- Strong mathematical background, algorithm skills.
- Good verbal and written communication abilities in English.