Senior Software Engineer/Senior Member of Technical Staff
Oracle
Bengaluru, Karnataka, India
Job Description Design, develop, troubleshoot and debug software programs for databases, applications, tools, networks etc. As a member of the software engineering division, you will assist in defining and developing software for tasks associated with the developing, debugging or designing of software applications or operating systems. Provide technical leadership to other software developers. Specify, design and implement modest changes to existing software architecture to meet changing needs. Duties and tasks are varied and complex needing independent judgment. Fully competent in own area of expertise. May have project lead role and or supervise lower level personnel. BS or MS degree or equivalent experience relevant to functional area. 4 years of software engineering or related experience. Responsibilities The Oracle Cloud Infrastructure (OCI) team can provide you the opportunity to build and operate a suite of massive scale, integrated cloud services in a broadly distributed, multi-tenant cloud environment. OCI is committed to providing the best in cloud products that meet the needs of our customers who are tackling some of the world’s biggest challenges. Oracle’s Cloud Infrastructure (OCI) team is a new ground-up effort to build Infrastructure-as-a-Service that operates at a high scale in a broadly distributed multi-tenant cloud environment. Our customers run their businesses on our cloud, and our mission is to provide them with best-in-class compute, storage, networking, database, security, and an ever-expanding set of foundational cloud-based services. These are exciting times in our space - we are growing fast, still at a relatively early stage, and working on ambitious new initiatives. We are building a new Software Assurance Gateway team at OCI. Our mission is to build and operate a set of gateway services to perform comprehensive software assurance of the applications running within a tenancy . Software assurance includes measures to prevent the deployment of malware or vulnerable, malicious, or unauthorized code into the application’s tenancy. It also includes monitoring the flow of data in and out of the application’s tenancy to prevent unauthorized exfiltration of data. The software gateway services will intercept web traffic, operator actions, and CI/CD pipelines to perform a set of assurance functions such as vulnerability scanning, signature validation, rules checking, policy compliance and anomaly detection. These functions will generate logs, audit trails, metrics, and alerts to enable automated and manual assurance of code as well as ingress/egress traffic. The team will develop and maintain the gateway code as well as operate the gateway infrastructure for the application. The team will be responsible for the performance, scalability, and reliability of the gateways. In particular, they will be responsible for ensuring that the performance of the application, as well as the developer velocity of the application teams, are not negatively impacted by the assurance gateways. They will optimize the gateway code to ensure low overhead and they will scale the gateways to handle increases in traffic and in the frequencies of application updates. As Senior Software Engineer, you will work with a team of software engineers responsible for the software design, development, and operations for our new and existing products. You should be able to architect broad systems interactions, be hands-on, be able to dive deep into any part of the stack, and have a good sense of cloud infrastructure and networking knowledge. You should value simplicity and impact, work comfortably in a collaborative, agile environment, and be excited to learn. Our senior engineers are also the people who can work independently and provide technical leadership to the organization. You should have experience developing and operating high-scale services, and an understanding of how to make these cloud-scale services resilient. The ideal candidate will be technically strong and productive; someone who knows how to balance speed and quality with iterative and incremental improvements. You understand operational excellence and know-how to infuse a culture of being proactive within your team. You recommend and justify major changes to new and existing products and establish consensus with data-driven approaches. Basic Qualifications: BS degree in Computer Science or related technical field involving coding or equivalent practical experience. 4+ years of total experience with software development with 2+ years on the cloud back-end. Proficient at high level programming languages, preferably GO and Java. Good knowledge of scripting language such as Python. Ability to deliver products from the ground up going through a product life cycle Good Knowledge of Computer Networking (OSI layers, HTTP, DNS, TCP/IP, DHCP, Routers, Gateways, Subnets, etc) Knowledge of Linux internals, Linux/Unix troubleshooting skills Experience with devising, managing, and extending monitoring solutions for large scale environments. Systematic problem-solving approach, strong communication skills, a sense of ownership and drive Familiarity with host virtualization technologies (KVM, Containers, Docker, etc.) Preferred Qualifications: Masters/Ph.D. degree in Computer Science. Prior Hands-on experience developing cloud services and tools on Oracle Cloud/AWS/GCP/Azure. Experienced with microservice design patterns and service-to-service communication protocols along with developing highly reliable services. Experience working on large scale, highly distributed services infrastructure. Experience working on Kubernetes. Understanding of service metrics and alarms through the development of dashboards, service KPIs, alarming systems. Experience working in an operational environment with mission critical tier one services with associated pager duty Familiarity with Infrastructure as Code (IAC) languages, preferrably Terraform. Familiarity with databases (SQL and noSQL)