The role
From Oracle's own posting.
Oracle Cloud Infrastructure (OCI) builds and operates cloud services that help customers solve complex technical and business challenges. OCI Queue provides managed, durable messaging that enables applications to communicate asynchronously, absorb traffic spikes, and process work reliably.
We are seeking a Principal Software Engineer who enjoys building distributed systems and solving challenging problems in messaging, storage, concurrency, and production reliability. You will help shape OCI Queue’s architecture and develop capabilities that balance durability, correctness, performance, scalability, and operational simplicity.
You will work across customer-facing APIs, queue management workflows, request routing, and replicated storage. This is a hands-on technical leadership role with ownership from design and implementation through testing, deployment, and production operations.
In this role, you will:
Lead the design and implementation of distributed messaging capabilities, including ordered delivery, deduplication, message lifecycle management, and workload isolation.
Improve service performance, capacity utilization, availability, and recovery under failures.
Design reliable APIs and durable workflows, maintaining compatibility across service components and deployments.
Drive automated testing, failure injection, performance qualification, and safe production rollouts.
Investigate complex production issues, contribute to on-call operations, and deliver lasting reliability improvements.
Partner with product management and engineering teams to evaluate tradeoffs, establish technical direction, and mentor engineers through design and code reviews
Required Qualifications
Bachelor’s or master’s degree in computer science or a related technical discipline, or comparable professional experience.
At least six years developing production software, with substantial experience delivering distributed systems or cloud services.
Proficiency in Java or Go, including concurrent programming, debugging, and performance analysis.
Solid understanding of algorithms, data structures, operating systems, networking, and storage fundamentals.
Practical knowledge of distributed-system behavior, including consistency, replication, retries, idempotency, partial failures, and recovery.
Experience designing service APIs and evolving interfaces without disrupting existing consumers.
Experience establishing automated unit, integration, and performance tests, supported by CI/CD practices.
Experience operating production services: monitoring, troubleshooting, incident response, and participation in on-call rotations.
Demonstrated ability to lead complex engineering work, communicate architectural decisions, and collaborate across teams.
Sound engineering judgment when using AI-assisted development tools, including independent verification of correctness, security, and maintainability.
Preferred Qualifications
Experience building messaging systems, distributed storage, event-processing platforms, or similar infrastructure services.
Familiarity with technologies such as Apache Kafka, RabbitMQ, Amazon SQS, Azure Service Bus, or OCI Queue.
Experience with consensus protocols such as Paxos or Raft, replicated state machines, durable logs, checkpoints, and crash recovery.
Understanding of ordering guarantees, producer deduplication, delivery acknowledgements, visibility timeouts, and dead-letter handling.
Experience with partitioning, load balancing, backpressure, resource quotas, capacity planning, and online workload migration.
Experience with gRPC, Protocol Buffers, metadata caching, and asynchronous control-plane workflows.
Experience profiling JVM or Go applications and diagnosing Linux networking, CPU, memory, and storage bottlenecks.
Familiarity with containers, infrastructure automation, Terraform, and staged deployment practices.
Experience designing secure multi-tenant services, including authorization, encryption, tenant isolation, and operational safeguards.
A record of influencing architecture across teams and improving engineering practices through mentoring, reviews, and clear technical documentation.
Key Responsibilities
Software Development and Coding:
Designs software solutions and analyzes and identifies requirements to achieve business and operational goals, sharing results with manager upon completion.
Adheres to and improves execution of all phases of the software development lifecycle; provides guidance and coaching to engineers to drive improvements.
Utilizes advanced knowledge to develop and guide new software features and enhancements leading design specifications, ensuring accessibility, and develops documents to clarify software design and code.
Leads code reviews in multiple areas to help drive improvements.
Conducts debugging and troubleshooting to identify and fix complex software issues.
Develops fixes for identified issues.
Implements comprehensive software testing (e.g., functional and non-functional testing), quality assurance processes, software error logging, monitoring, and observability for effective debugging, sharing work with manager and/or lead upon completion.
Conducts performance profiling and optimization of coding, building scalable solutions, and anticipating and resolving potential outcomes.
Troubleshoots and resolves complex issues related to application programming interface (API) functionality and integration. Implements complex API versioning, lifecycle, and interoperability strategies.
Software Architecture - Software System Structural Design:
Implements and contributes to developing software, systems, and services, ensuring review by manager and/or senior technical leaders upon completion. Recommends project or design scope.
Provides technical guidance and coaching to less experienced developers in existing software architecture.
Contributes to periodic reviews and ensures adherence to architectural standards.
Collaborates with stakeholders and networks externally to ensure work aligns with software architecture.
Implements complex performance optimization and scalability strategies in software design.
Occasionally conducts technology research and evaluation for potential architectural changes that may have an impact on results for the team.
Issue/Defect Collaboration - Software Products Support:
Collaborates with stakeholders to understand customer issues and align solutions.
May provide advanced technical guidance and support to customers regarding customer-reported issues.
Advocates for customers' interests and suggests product enhancements based on feedback.
Provides input to ensure customer satisfaction through timely resolution of issues and effective communication.
Identifies and implements customer issue and/or defect handling and training processes.
Investigates and troubleshoots complex and broad reaching/scoped 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 and externally to follow development practices and coding standards, providing coaching to less experienced team members.
Participates in peer review processes, provides technical leadership, and ensures code quality and adherence to broad acceptance criteria during development, independently.
Demonstrates and shares advanced knowledge of industry best practices and applies them to software development processes.
Implements complex 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), sharing results with manager upon completion.
Drives improvements, ensures automation, testing, and debugging of systems to ensure service/product availability, health, support, and reliability.
Core Responsibilities
Planning & Execution:
Manages a