Senior Software Engineer
Company: The MathWorks, Inc.
Location: Natick, MA
Posted on: May 4, 2020
Job Description:
Working under the direction of the Engineer - Senior Team Lead
4, will be responsible for designing, developing and testing
sophisticated software systems; supporting compiler technology that
enables code generated for deep learning and computer vision
algorithms from MATLAB and Simulink to run on high-performance
computing platforms -- multi-core CPUs, GPUs and vision DSPs;
participating in planning, developing, and testing of the compiler
technology; designing, architecting, implementing and testing
parallel compilation technologies to enable algorithms written in
Simulink and MATLAB to efficiently execute on parallel computing
platforms; participating in all phases of product development;
developing partitioning, scheduling and memory optimization
algorithms; prototyping execution on SoC boards and hardware
platforms; designing software architecture; programming in C++ and
MATLAB; and testing and integrating features in Simulink and code
generation products. Education and Experience: Masters degree (or foreign education equivalent) in Engineering
or Computer Science and two (2) years of experience in job offered
or two (2) years of experience developing CUDA code for deployment
to GPU architectures. OR Ph.D. degree (or foreign education equivalent) in Engineering or
Computer Science and no experience. OR Bachelors degree (or foreign education equivalent) in
Engineering or Computer Science and six (6) years of experience in
job offered or six (6) years of experience developing CUDA code for
deployment to GPU architectures. Special Requirements: Demonstrated expertise developing MATLAB algorithms and Simulink
models, including developing object oriented MATLAB algorithms,
developing MATLAB and Simulink algorithms for code generation using
coder language constructs, and designing MATLAB test for software
feature verification and code coverage; and performing performance
optimization for deployment to GPU hardware platforms. Demonstrated expertise writing algorithms in CUDA C/C++;
debugging deployed code using CUDA GDB; applying computer
architecture, GPU architecture and GPGPU computing in performance
optimization; and performing software development for deployment on
high performance heterogeneous parallel computing environments
(CPU/GPU) using NVIDIA GPU architecture and CUDA development
technologies. Demonstrated expertise in compiler workflow optimization and
code generation optimization using Intermediate Representation (IR)
construction; and performing IR optimization using data flow
analysis, register allocation, instruction scheduling, cache
locality optimization, loop optimization and dependence
analysis. Demonstrated expertise deploying C, C++ and MATLAB algorithms on
CPU to embedded GPU high-performance computing platform; and
performing hardware system setup and configuration. [Experience and/or expertise may be gained during Doctoral
program.] For the position listed above, interested candidates may search
by job code 23701 for specific job details and requirements and
apply online on the Careers Page at
http://www.mathworks.com/company/jobs
Keywords: The MathWorks, Inc., Leominster , Senior Software Engineer, Engineering , Natick, MA, Massachusetts