ESSENTIAL:- C++, java & python; Linux & Windows OS environments; software development methodologies; application & system environment issue debugging. Key focus areas: service infrastructures, databases, parallel programming, security. Other skills: User interfaces, data access & management, performance optimization. Experience with NodeJS, Angular, C# & other languages would also be an advantage.
The Software Engineer implements & maintains new or improved software products & services used by the geophysical teams. Provides innovative & cost-effective engineering solutions according to the project technical objectives & within the project timeline & other constraints. Keeps up to date on software technology & process. Will progressively, with increasing experience & seniority supervise & mentor younger engineers, & participate in activities to define & implement frameworks & design practices, as well as knowledge sharing activities in the local & global community.
Participates in all phases of the software development lifecycle. Assist in identifying & organizing requirements & producing specifications This role covers development of the Infrastructure & non-geophysical applications for Omega, a large system that utilizes 1000s of CPUs & GPUs to process petabytes of Seismic data using complex geophysical algorithms, using both Linux & Windows operating systems, on premise & in the cloud. In particular concentrating building, deployment & maintenance of the software suite & its services including development of end user applications to visualize data, perform project & data management.
Full Stack Software Engineer Key Responsibilities:
Analyse, design, develop, maintain products & assist in their commercialization – in agreement with project technical & timing objectives
Work with field users &/or customers, to identify & resolve production issues, identify & refine requirements & opportunities for automation & efficiency improvements
Full Stack Software Engineer Associated Responsibilities & Duties:
- Ensure that product code & artifacts are managed & safeguarded in a configuration management system in accordance with relevant procedures & guidelines
- Assist in identifying & organizing requirements & producing user stories
- Apply usability procedures & principles as defined at the project or product-line level or through customer input
- Evaluate alternative implementations & selects the one that maximizes the value of the product & minimizes the risk & technical debt
- Build prototypes, products & systems suitable for testing & may be required to set up & run lab simulations
- Design testing procedures & coordinate with others to implement & automate tests.
- Conduct tests, document test results & develop client presentation. May present solutions to clients
- Key skills: C++, java & python; Linux & Windows OS environments; software development methodologies; application & system environment issue debugging. Key focus areas: service infrastructures, databases, parallel programming, security. Other skills: User interfaces, data access & management, performance optimization.
- Experience with NodeJS, Angular, C# & other languages would also be an advantage.