Huawei Canada’s rapid growth has created an excellent opportunity to build and grow your career and make a big impact to everyone’s life.
This position embodies the core customer-centric culture of the Huawei Company, and takes the vision and responsibility to Make IT Simple, Make Business Agile .
The position belongs to the Canada branch of the Programming Technologies Lab of Huawei, whose mission is to innovate and leverage programming technologies (compilers, languages, language VMs, tools) to improve the performance, productivity, and quality of Huawei software.
As a member of a highly talented team, you get to do creative work as well as making real impact by solving real customer problems.
While the current projects include language design, compiler & JVM, and performance optimization, the lab continues to grow and expand into new domains (e.
g., cloud, smart devices, IoT). As such, we are not looking for people w / a fixed set of skills, but rather the growth-mindset people who have a versatile experience in the field and are not daunted by acquiring new skills.
We especially welcome researchers and problem solvers.
Work involves a good amount of core compiler and language VM development, (domain-specific) language design, performance optimization across the system stack, and tools design.
As a Senior Software Engineer, you are expected to proactively engage with customers to identify opportunities for novel programming technology solutions;
bootstrap projects from scratch and turn ideas into prototypes and production; and to explore new areas and keep up w / the latest programming technologies in the external community.
Provide technical leadership and mentorship for a geographically distributed team of engineers.
Last but not least, be creative and keep on learning.
Ph.D or Master in Computer Science or 5+ years of work experience in the relevant areas
Expertise in one or more of the following areas :
Programming language design , with experience in a relevant area such as type systems, memory management, concurrency models, domain-
specific languages, formal methods, or language standard committee; or
Language implementation , with experience in a relevant area such as compiler design & optimization, language VM, runtime and library, software verification, software engineering tools; or
Performance analysis & optimization , via experience in a relevant area, such as performance modeling, parallel software development, or processor or system simulator development.
Fluency in C / C++ / Java programming
Nice to haves :
Because we develop programming technology for a variety of purposes, competence in a breadth of programming paradigms is a plus, such as imperative and functional programming, formal specifications and assembly code.
Experience with runtime system, such as memory management and concurrent task scheduling, and in newer languages like Go, Rust, Scala, and Swift.
Experience with developing programming technologies for the Cloud environment and smart devices (our new areas).
Prior engagement in open-source projects, developers’ community, and / or research community.
We thank all applicants for their interest in career opportunities with Huawei. Only selected candidates will be contacted for an interview.