Senior Software Developer will report to the Common Data Model Team Lead. The position is responsible for developing and improving the persistence layer for GeoSoftware applications in multiple languages, including C++, C#/.NET, Java, and Python.
- Develop and document schema and associated API for persistance and manipulation of geoscience data for interactive applications and batch computing algorithms, primarily in C++.
- Generate unit tests and sample applications that exercise new and existing interfaces.
- Profile and improve performance characteristics, and demonstrate proper usage, with a focus on performance for parallel access.
- Support integration of new schema by product teams
- Expert C++ software development skills
- Fluent Python development skills
- Experience with crossplatform development on Windows and Linux in a commercial environment.
- Experience with object-oriented analysis and design, including OO development principles, design patterns, multithreaded programming, and algorithmic complexity.
- Familiarity with aspects of the software development cycle (version control, requirements, testing, etc.).
- Experience with schema development for RDBMS
- Capable of working within cross functional teams, sharing best practices and knowledge
- Relational database administration
- Data science / Analytics / Machine learning background
- Geosciences background
- Experience with graphical user interface development in Qt and HTML5
- Experience with Amazon DynamoDB / Azure CosmosDB / Google Cloud Firestore
- Master’s degree or PhD in Computer Science.
- 5+ years of relevant experience in a senior software development role delivering commercial software.