C++ Software Engineer - Graph Algorithms

Esri   •  

Redlands, CA

Industry: Technology

  •  

Not Specified years

Posted 41 days ago

OVERVIEW

Do you ever wonder what's the best way to get to a taco stand, how many are within 10 minutes of your current location, or how you can optimize traveling to all of them to savor the ultimate taco? If you love tacos and love graph algorithms and optimization, we’ve got the ideal job for you! Join the ArcGIS Network Analyst team and build state-of-the-art routing algorithms used by companies all over the world to optimize their delivery fleet, provide driving directions, identify locations to site stores based on travel patterns, and much more. Our work touches millions of users and has far-reaching impact. You will work on a team focused on designing and implementing high-performance graph algorithms exposed in mobile, desktop, server, and cloud-based APIs and solutions within ArcGIS. This is a challenging and gratifying opportunity to apply your coding talent and passion for excellence to craft solutions for real-world transportation problems.

RESPONSIBILITIES

  • Design and implement algorithms and solvers in C++ for transportation routing problems
  • Optimize existing and new C++ code to reduce memory consumption and to increase performance and scalability
  • Analyze computational complexity of algorithms
  • Work with product engineers to diagnose root causes for incorrect software behavior and failures
  • Fix bugs in the existing C++ codebase
  • Write comprehensive technical specifications and design documents
  • Participate throughout the software development life cycle

REQUIREMENTS

  • Experience designing, analyzing, and implementing graph algorithms
  • Broad knowledge of C++ with a good understanding of object-oriented techniques and class design and familiarity with the standard library
  • Familiarity with basic data structures
  • Ability to clearly describe and analyze a problem and to articulate a solution
  • Excellent written and verbal communication skills
  • Strong time management, prioritization, teamwork, and interpersonal skills
  • Bachelor’s, master’s, or Ph.D. in computer science, mathematics, engineering, or a related field, depending on position level

RECOMMENDED QUALIFICATIONS

  • 2+ years of experience in commercial software engineering
  • Experience with C++11 and modern C++ style and idioms
  • Experience in code profiling and performance optimization
  • Knowledge of GIS, logistics, and transportation networks