Build the next generation of ArcGIS Enterprise, a suite of products delivering state-of-the-art mapping and analytics capability to thousands of customers and millions of users worldwide. Our team builds cutting-edge, highly-scalable and reliable distributed software for on-premises and the cloud to make maps, geographic information, and analyses available on any device, anywhere, at any time. Our software engineers provide a strong technical voice in the product development process and use the best tools available to design, develop, and deliver a high-quality distributed systems platform. As a senior software engineer, you will lead and work with our cross-functional global team of software engineers, product engineers, designers, product managers, and release engineers. You will be actively involved in enhancing the capability of the ArcGIS Enterprise platform from feature inception to delivery, using bleeding edge technology. If you are passionate about leading teams and building great distributed systems, micro-services architecture, and spatial data analytics, join us!
Responsibilities:
- Build server-side Java components and web services to power user experience and geospatial workflows
- Prototype, design, develop, and deliver complete software features and products that can scale, are fault tolerant, and handle concurrent workloads
- Design, architect, and lead a team to build complete software features/products to meet customer requirements
- Find, analyze, and fix bugs/performance problems whenever and wherever they occur
- Work collaboratively with other teams to understand requirements and incorporate them into the software
- Mentor and groom junior engineers through design and code reviews, technology presentations, and insights
Requirements:
- 5+ years of experience developing middleware software components using core Java, Servlets (JavaEE), JSP
- Good understanding of cloud computing platforms (AWS and Azure) and services such as Amazon S3, SQS, EC2 and Azure services such as Blob Service, Table Service, etc.
- Good understanding of Java design patterns
- Knowledge of relational databases such as SQL Server, Oracle, PostgreSQL, or DB2
- Experience working with large code bases
- Fundamental understanding of web services including REST and SOAP
- Proficient in debugging and profiling tools (Eclipse/IntelliJ Debugger, JProfiler, etc.)
- Knowledge of working with a source control system, preferably GIT
- Excellent problem-solving, design, development, and debugging skills
- Excellent written and verbal communication and time management skills
- Bachelor’s, master’s, or Ph.D. in math, computer science, physics, or related field, depending on position level
Recommended Qualifications:
- Familiarity with JSON and XML
- Knowledge of and familiarity with Java build systems, i.e. Maven and ANT
- Experience with HTTP monitoring tools (Fiddler) and JDK debugging tools (JProfiler, jmap)
- Knowledge of Docker containers and orchestrators such as Kubernetes
Questions about our interview process? We have answers .