The point where experts and best companies meet
Share
Job Area:
Engineering Group, Engineering Group > Software Engineering
As a leading technology innovator, Qualcomm pushes the boundaries of what's possible to enable next-generation experiences and drives digital transformation to help create a smarter, connected future for all. As a Qualcomm Software Engineer, you will design, develop, create, modify, and validate embedded and cloud edge software, applications, and/or specialized utility programs that launch cutting-edge, world class products that meet and exceed customer needs. Qualcomm Software Engineers collaborate with systems, hardware, architecture, test engineers, and other teams to design system-level software solutions and obtain information on performance requirements and interfaces.
Minimum Qualifications:
• Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 2+ years of Software Engineering or related work experience.
Master's degree in Engineering, Information Systems, Computer Science, or related field and 1+ year of Software Engineering or related work experience.
PhD in Engineering, Information Systems, Computer Science, or related field.
• 2+ years of academic or work experience with Programming Language such as C, C++, Java, Python, etc.
Position:Senior Engineer
Focus on ongoing development of an LLVM-based tool chain used to build the code that drives Qualcomm’s high-performance embedded processors. You’ll be working on the tools responsible for generating and interpreting ELF-formatted object and executable files for various targets, so a solid understanding of embedded computer architectures and strong C/C++ skills are what you need to succeed.
Responsibilities:
Work as part of a small team to design, develop, and deliver new features on a proprietary linker and LLVM-based ‘binutils’ equivalents for ARM, Hexagon DSP, and other proprietary architectures.
Work with internal hardware architects, firmware developers, and other tools developers to collect requirements and refine the feature set.
Interface with LLVM open-source community on submitting and pulling patches.
Communicate with internal customers to understand needs and gather requirements .
Coordinate with internal QA team to resolve conflicts with upstream code when applied to our internal LLVM repository, add new tests to the existing test infrastructure, and fix failures in the test suite.
Skills/Experience
2+ years software development experience
Experience with ARM/AArch64 ISA, preferably direct experience with software tools development
Understanding of ELF/DWARF file formats
Understanding of linkers and linker-related concepts: Symbol resolution, Relocations/Fixups, Dynamic loading/linking , String merging, Garbage collection, Linker scripts / scatter load files
Knowledge of embedded systems.
Ability to work independently as well as within a team.
Experience with modern software development practices and methodologies. Agile experience is a plus.
Programming in C/C++ and Python, assembler experience is a plus.
Experience with ARM on-target debug is a plus.
Preference given to candidates with experience working with LLVM and related tools, as well as experience developing software for use on both Windows and Linux.
Educational Requirements:
Bachelor’s in engineering in Computer Science, required.
Masters in computer science, preferred.
Keywords: LLVM, linker, Binutils, software developer
Qualcomm expects its employees to abide by all applicable policies and procedures, including but not limited to security and other requirements regarding protection of Company confidential information and other confidential and/or proprietary information, to the extent those requirements are permissible under applicable law.
These jobs might be a good fit