Required Skills
- A minimum of five years working on the development mission critical large scale systems.
- Experience with complex distributed systems and parallel distributed algorithms.
- Strong knowledge of Java, C++, or C language development.
- Strong knowledge of concurrent programming in distributed environments
- Strong troubleshooting skills
- Experience working in large scale cloud environments
- BS, MS, or PHD in computer science
Highly Desirable Skills
- Knowledge of database internals (concurrent B-tree access, transactions, recovery, query processing)
- Knowledge of log structured storage systems
- Knowledge of performance tuning and analysis in large scale distributed systems
Key Responsibilities
Data Systems Software Development:
- Deliver end-to-end features spanning application services and Oracle Database data models (including star/snowflake patterns).
- Diagnose and improve query and API performance affecting user experience and service-level agreements.
- Introduce controlled experiments (A/B tests) with clear success metrics and data collection plans.
- Designs existing and new services.
Software Development and Coding – Design, Testing, and Optimization:
- Designs software solutions and analyzes and helps identify requirements to achieve business and operational goals, independently.
- Adheres to and suggests improvements to all phases of the software development lifecycle.
- Utilizes working knowledge to develop new software features and enhancements following design specifications and develops documents to clarify software design and code.
- Leads code reviews in designated areas to help drive improvements.
- Conducts debugging and troubleshooting to identify and fix moderately complex software issues. Develops fixes for identified issues.
- Implements software testing (e.g., functional and non-functional testing), quality assurance processes, software error logging, monitoring, and observability for effective debugging, ensuring review by manager and/or lead throughout the process.
- Exercises judgment and discretion to conduct performance profiling and optimization of coding.
- Troubleshoots and resolves moderately complex issues related to application programming interface (API) functionality and integration.
- Implements moderately complex API versioning, lifecycle, and interoperability strategies.
Software Architecture – Software System Structural Design:
- Designs and develops software, systems, and services aligned to pre-defined system architecture.
- Develops working knowledge of software architecture decisions and best practices.
- Collaborates with team leads to review work to ensure alignment with software architecture.
- Implements moderately complex performance optimization and scalability strategies in software design.
Issue/Defect Collaboration – Software Products Support:
- Collaborates within and beyond immediate team to understand customer issues and align solutions.
- May provide technical guidance and support to customers regarding customer-reported issues, independently.
- Coaches, mentors, and guides others to advocate for customers' interests and suggests product enhancements based on feedback.
- Influences team to ensure customer satisfaction through timely resolution of issues and effective communication.
- Implements customer issue and/or defect handling and training processes, independently.
- Investigates and troubleshoots complex product maintenance issues to ensure customer agreement on short- and long-term solutions (e.g., future enhancements).
Practices and Standards Compliance – Security and Compliance:
- Collaborates with the team to establish and follow development practices and coding standards.
- Exercises judgment and discretion to ensure code quality and adherence to broad acceptance criteria during development.
- Keeps up-to-date with industry best practices and applies them to software development processes.
- Implements secure coding practices to prevent security vulnerabilities.
Development Operations – System Maintenance:
- Performs periodic maintenance and testing operations for systems that require upgrading or patching (e.g., for critical vulnerabilities).
- Exercises judgment and discretion to drive improvements, ensure automation, testing, and debugging of systems to ensure service/product availability, health, support, and reliability.
Core Responsibilities
Planning & Execution:
- Independently manages work, monitoring timelines and deliverables to ensure projects or initiatives stay on track and meet requirements.
- Proactively prioritizes work and adapts to resource or timeline shifts, suggesting adjustments to maintain project efficiency.
Collaboration & Partnership:
- Collaborates across teams to align on expectations and achieve shared objectives.
- Builds and maintains a comprehensive understanding of business, stakeholder, and/or customer needs to build and support effective partnerships.
- Actively listens to diverse perspectives and asks questions to ensure understanding of others.
Problem Solving:
- Independently identifies and addresses standard and non-standard issues in accordance with standard practices, escalating more complex issues as appropriate.
- Analyzes data and/or information from multiple sources to troubleshoot standard and non-standard errors.
- Contributes to knowledge sharing and best practices.
Continuous Learning:
- Embraces continuous learning by actively seeking to build knowledge and new skills and/or tools and staying current with industry trends and best practices.
- Seeks out and leverages feedback and training to improve skills.
- Contributes to a culture of continuous learning and knowledge sharing with team members.
Continuous Improvement:
- Develops ideas and recommends updates to increase the efficiency and effectiveness of processes, protocols, and workflows within a team.
- Seeks input from team members on alternative approaches and methods for improving work.
Career Level - IC3