Senior Principal Software Engineer Job Description

Senior Principal Software Engineer Job Description Template

Our company is looking for a Senior Principal Software Engineer to join our team.

Responsibilities:

  • Identify learning opportunities for the development community and influence education programs across the organization;
  • Coordination with internal and external teams;
  • Experience with HDFS and Spark;
  • Software engineering in Java and optionally Scala;
  • BS/MS in CS, Electrical Engineering or foreign equivalent;
  • Additional language skills for scripting and rapid application development;
  • Decompose complex problems into simple, straight-forward solutions;
  • Fully and completely understand system interdependencies, constraints and limitations;
  • Act as external ambassador for Bayer by contributing to and influencing technical discussions outside the company;
  • Contributing to algorithm design, research and scalability;
  • Building high performance systems for personalization, optimization, and targeting;
  • Help to define and evangelize, internally and externally, how technology trends can be implemented to provide organizational value;
  • Support the agile teams to document system flows and sequence diagrams;
  • Demonstrate flexibility and resilience in the face of changing technologies, priorities, and requirements;
  • Investigate, analyze and give recommendations on the root causes of complex software and system defects.

Requirements:

  • Design and build of software platforms, products and features using a wide range of technologies, programming languages and systems;
  • Enterprise level technical design, architecture and implementation;
  • Knowledge of numerical programming, data science, machine learning and/or statistics a strong plus;
  • High performance and scalable system design;
  • Cloud architecture, continuous delivery, and environment management (at least one of: AWS, Azure, GCP, etc.);
  • Familiarity with UNIX (systems skills a plus);
  • At least 10 years of relevant technical experience, including;
  • Working in a distributed environment and has dealt with challenges around scaling and performance;
  • Quality engineering and security best practices and patterns;
  • Practical experience and deep understanding of industry practices, engineering principles, concepts, and standards;
  • Experience with Microservices architecture, domain-driven design, and enterprise system integration;
  • Extensive .NET development experience- C#, .NET Framework/Core;
  • In depth knowledge and working experience developing REST based APIs and implementing microservice principles and architectures;
  • Proficiency in object-oriented design and hands-on working experience with various architectural and design patterns;
  • Experience developing cloud-native solutions in Azure including proficiency in containerization (Docker), orchestration, health-check and monitoring.