Principal Software Engineer

at  TGS

Fredrikstad, Østfold, Norway -

Start DateExpiry DateSalaryPosted OnExperienceSkillsTelecommuteSponsor Visa
Immediate17 Sep, 2024Not Specified18 Jun, 2024N/AKubernetes,Computer Science,Azure,Software Development,Programming Languages,Graphql,Norwegian,Python,C++,Architecture,English,Design,Solid Principles,RustNoNo
Add to Wishlist Apply All Jobs
Required Visa Status:
CitizenGC
US CitizenStudent Visa
H1BCPT
OPTH4 Spouse of H1B
GC Green Card
Employment Type:
Full TimePart Time
PermanentIndependent - 1099
Contract – W2C2H Independent
C2H W2Contract – Corp 2 Corp
Contract to Hire – Corp 2 Corp

Description:

TGS provides scientific data and intelligence to companies active in the energy sector. In addition to a global, extensive and diverse energy data library, TGS offers specialized services such as advanced processing and analytics alongside cloud-based data applications and solutions.
Join us as a Principal Software Engineer and play a pivotal role in launching and enhancing our SaaS solutions.
As a Principal Software Engineer, you’ll be responsible for building complex systems that are efficient, scalable, secure, and maintainable. You’ll lead the development and refinement of major new features at the heart of our backend. This includes reconciling new features with existing functionality, working closely with cross-functional teams to shape the desired product goals into feasible and viable back-end services, and last but not least, identifying underlying patterns and abstractions to help increase developer velocity, while maintaining technical quality on critical surfaces of our backend.
At the principal level, our software engineers are responsible for establishing a technical vision and then delivering a solution that is always available, reliable, secure, and meets the needs of the business. Each individual brings their own unique skill set, experiences, thought leadership and expertise to solve these technical challenges.

Key responsibilities

  • Lead discussions to evolve the strategic direction of the product, collaborate on and architect solutions by testing and refining design hypotheses.
  • Collaborate with stakeholders across multiple organizations to determine requirements, co-ordinate, and ship products. Leverage a variety of feedback channels to incorporate experimental development and insights into future designs and solutions.
  • Create, implement, optimize, debug, refactor and reuse code to achieve high quality, performance, reliability, and security.
  • Independently create a clear and articulated plan for testing and assuring quality of solutions. Identify the need for a broad versus selected approach in testing mechanisms and make informed decisions to implement the most effective tests.
  • Leverage performance and profiling tools to identify hot spots and bottlenecks across hardware and software boundaries.
  • Proactively seek new knowledge and adapt to new trends, technical solutions and patterns that will improve the availability, reliability, efficiency, observability, security, and performance of products, while also driving consistency in monitoring and operating at scale.

Required competence and skills

  • BSc/MSc in Computer Science or equivalent.
  • 8 years of experience with software development in one or more programming languages C++, C#, C, python, Rust, Go lang. Experience with .NET is a plus.
  • Fluency in English, both written and spoken. Knowledge of Norwegian is a plus.
  • Knowledge of the SOLID principles, design and architecture patterns, and industry best practices.
  • Strong knowledge of designing and writing APIs (e.g., REST, graphQL, (g)RPC).
  • Strong knowledge of at least one of the major cloud providers, such AWS, GCP, or Azure and containers and Kubernetes.
  • Knowledge of and experience with efficient and well-functioning CI/CD pipelines.
  • Knowledge of and/or experience with OPC-UA, or other IoT protocols, is a plus.

Responsibilities:

  • Lead discussions to evolve the strategic direction of the product, collaborate on and architect solutions by testing and refining design hypotheses.
  • Collaborate with stakeholders across multiple organizations to determine requirements, co-ordinate, and ship products. Leverage a variety of feedback channels to incorporate experimental development and insights into future designs and solutions.
  • Create, implement, optimize, debug, refactor and reuse code to achieve high quality, performance, reliability, and security.
  • Independently create a clear and articulated plan for testing and assuring quality of solutions. Identify the need for a broad versus selected approach in testing mechanisms and make informed decisions to implement the most effective tests.
  • Leverage performance and profiling tools to identify hot spots and bottlenecks across hardware and software boundaries.
  • Proactively seek new knowledge and adapt to new trends, technical solutions and patterns that will improve the availability, reliability, efficiency, observability, security, and performance of products, while also driving consistency in monitoring and operating at scale


REQUIREMENT SUMMARY

Min:N/AMax:5.0 year(s)

Computer Software/Engineering

IT Software - Application Programming / Maintenance

Software Engineering

Graduate

Proficient

1

Fredrikstad, Norway