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.