We're looking for hands-on engineers with expertise and passion in solving difficult problems in distributed systems and highly available services. If this is you, at Oracle you can design and build innovative new systems from the ground up. These are exciting times in our space - we are growing fast, still at an early stage, and working on ambitious new initiatives. An engineer at any level can have significant technical and business impact.
As a Principal Member of Technical Staff you will own the software design and development for major components of Oracle's Cloud Infrastructure. You should be both a rock solid coder and a distributed systems generalist, able to dive deep into any part of the stack and low level systems, as well as design broad distributed system interactions. You should value simplicity and scale, work comfortably in a collaborative, agile environment, and be excited to learn.
You work backward, starting from the user. You care about creating usable, useful software that solves real problems and brings delight to users.
You have solid communication skills. You can clearly explain complex technical concepts.
You work well with non-engineers. You can lead a conversation in a room with designers, engineers, and product managers.
You are comfortable with ambiguity. You have a strong sense of ownership, and are able to drive development of new projects and features to completion.
You are comfortable working at all levels of the stack.
BS in Computer Science, or equivalent experience
5+ years of experience shipping services software
Strong knowledge of data structures, algorithms, operating systems, and distributed systems fundamentals. Working familiarity with networking protocols (TCP/IP, HTTP) and standard network architectures.
Strong understanding of databases, NoSQL systems, storage and distributed persistence technologies.
Strong troubleshooting and performance tuning skills.
MS in Computer Science
Experience in a start-up environment
Experience delivering and operating large scale, highly available distributed systems.
Strong grasp of Unix-like operating systems
Experience building multi-tenant, virtualized infrastructure a strong plus.
Detailed Description and Job Requirements
Design, develop, troubleshoot and debug software programs for databases, applications, tools, networks etc.
As a member of the software engineering division, you will take an active role in the definition and evolution of standard practices and procedures. You will be responsible for defining and developing software for tasks associated with the developing, designing and debugging of software applications or operating systems.
Work is non-routine and very complex, involving the application of advanced technical/business skills in area of specialization. Leading contributor individually and as a team member, providing direction and mentoring to others. BS or MS degree or equivalent experience relevant to functional area. 7 years of software engineering or related experience.