We are seeking a talented full stack developer with strong C++ skills that enjoys coding powerful and intuitive desktop software.
Key Responsibilities
Build the next generation workflow-based diagramming interface and user experiences for ArcGIS Pro that allows simple or complex sequences of tools to run efficiently
Follow design patterns, development methodologies, and deployment techniques using C++, C#, .NET, MVVM, and WPF
Find, analyze, and fix bugs and performance problems whenever they occur in the software
Build and ship quality software by working effectively in an agile, highly interactive, and creative team environment
Work closely with product specialists and software designers to create innovative new ModelBuilder capabilities
Become an expert in interaction patterns and use of the third-party diagramming library and supporting backend APIs and framework used by ModelBuilder
Contribute to and run unit tests to ensure high quality development free of regressions
Requirements
2+ years of experience in C++ with strong understanding of memory management, smart pointers, multithreading and concurrency, performance optimization and profiling and more
Strong proficiency in C# (.NET) including object-oriented design principles, asynchronous programming (async/await), parallel processing methods, dependency injection and application lifecycle management and more
Strong understanding of API design, component based and layered architectures, interoperability between native (C++) and managed (.NET) code and more
Ability to make informed tradeoffs between performance, maintainability, and extensibility
Proven experience diagnosing and resolving memory leaks, race conditions, deadlocks, bottlenecks in CPU and memory intensive applications and familiarity with profiling and diagnostics tools for both C++ and .NET and more
Experience designing modular, scalable, and maintainable systems
Ability to clearly analyze and describe problems, and propose solutions
Ability to collaborate in a team environment and work closely with software developers, product engineers, and others to build quality software in a constantly evolving agile environment
Bachelor's degree in computer science or a related field
GitHub link showcasing your projects and work
Master’s or PhD in computer science or a related field
Familiarity with Esri products or similar GIS or spatial software
Experience in areas of data analysis
Experience with development and release of commercial software products
Experience with Agile software development using Scrum
Esri’s competitive total rewards strategy includes industry-leading health and welfare benefits: medical, dental, vision, basic and supplemental life insurance for employees (and their families), 401(k) and profit-sharing programs, minimum accrual of 80 hours of vacation leave, twelve paid holidays throughout the calendar year, and opportunities for personal and professional growth. Base salary is one component of our total rewards strategy. Compensation decisions and the base range for this role take into account many factors including but not limited to skill sets; experience and training; licensure and certifications; and other business and organizational needs.