Staff Software Developer
Summary
Build and lead graphical tools for 3D subsurface imaging using modern C++ and Qt; own rendering pipelines and mentor engineers in a geoscience-focused product team.
Overview
Viridien is an advanced technology, digital and Earth data company that pushes the boundaries of science for a more prosperous and sustainable future. Build your career developing cutting‑edge visualization tools for subsurface imaging. In this role, you’ll help create and improve the graphical applications that enable scientists and engineers to explore complex 3D subsurface data. You’ll gain hands‑on experience developing scalable software, working with modern development practices, and collaborating with a global team in advanced computing environments. Viridien values diverse perspectives and encourages innovation through technology and visualization.
Technical Leadership & Ownership
Lead the design, implementation, and evolution of graphical and visualization software components. Drive architectural decisions for visualization frameworks, rendering pipelines, and user‑facing applications. Identify complex technical issues and determine appropriate corrective actions. Influence technical direction across multiple projects and collaborate with cross‑functional teams. Mentor junior developers and share best practices across the organization.
Software Engineering Responsibilities
- Own the complete lifecycle of graphical software components, from requirements analysis through deployment and long‑term maintenance.
- Lead software design activities and participate in technical reviews.
- Deliver high software quality through continuous improvement of functionality, performance, maintainability and development productivity.
- Define and promote engineering standards, testing strategies and development best practices.
- Resolve complex technical and performance issues involving visualization, graphics rendering and large‑scale scientific datasets.
- Evaluate and recommend new technologies, frameworks and development approaches.
Qualifications
Required- Master’s degree (or higher) in Computer Science or a related field with strong programming experience, or equivalent hands‑on experience.
- Strong proficiency in modern C++ and experience working in large native codebases.
- Familiarity with Qt or comparable desktop GUI frameworks.
- Understanding of object‑oriented design, API design, and maintainable C++ interfaces.
- Experience debugging native applications and investigating crashes, memory issues, or performance bottlenecks.
- Familiarity with CMake/build systems and the software development lifecycle: building, testing, packaging, and releasing applications.
- Strong problem‑solving skills and clear communication in a collaborative engineering team.
- Curious, pragmatic, and eager to learn complex domain software.
- Experience with OpenGL/GLSL or other real‑time visualization/rendering technologies.
- Foundation in 3D math, linear algebra, coordinate transforms, or numerical methods.
- Experience with multi‑threaded or parallel programming (std::thread, Qt threading, or OpenMP).
- Experience working on cross‑platform, large‑scale, or legacy software projects.
- Exposure to scientific, geoscience, seismic, imaging, CAD, simulation, or other data‑heavy visualization domains.
- Familiarity with Python/C++ integration or scripting APIs.
- Working knowledge of Java, or willingness to work across both native C++ and Java codebases.
- Basic understanding of operating systems concepts, file I/O, and performance profiling.
- Basic networking/IPC knowledge, if relevant to integration work.
Viridien is an equal‑opportunity employer committed to diversity, inclusion, and accessibility in all aspects of employment.