Full Job Description
Changing the world through digital experiences is what Adobe’s all about. We give everyone—from emerging artists to global brands—everything they need to design and deliver exceptional digital experiences! We’re passionate about empowering people to create beautiful and powerful images, videos, and apps, and transform how companies interact with customers across every screen.
We’re on a mission to hire the very best and are committed to creating exceptional employee experiences where everyone is respected and has access to equal opportunity. We realize that new ideas can come from everywhere in the organization, and we know the next big idea could be yours!
As a Computer Scientist (SRE), you’ll be involved in ensuring reliable, highly available, scalable, maintainable and highly secure systems. Candidates who fit these roles come from both systems and software development background. Your development background will help you in designing large scale, highly distributed and fault tolerant applications. It will also help you in troubleshooting and resolving the production issues which impact the customer experience and our revenues. Your systems background will help you in ensuring the uptime and reliability through monitoring deep system parameters and remediating issues at the systems level. Your responsibility set will include:
Getting involved in application development from the inception stage and be part of it through design, development, deployment and operation stage.
Conceptualizing and defining the infrastructural part by evaluating multiple cloud offerings, looking at open source tools and technologies and taking build vs use decisions.
Determining where to use Infrastructure as a Service (IaaS) and where to go for Platform as a Service (PaaS) for the large-scale needs of Adobe solutions and services
Investigate and resolve complex and multi-faceted issues, spanning the entire technology stack, which require effective collaboration across team and technology boundaries
Proactively improve key application metrics, such as up-time, application performance, time to issue resolution, time spent resolving incidents and other key operational SLAs
Drive continuous improvement to supported applications, in areas such as monitoring, operational task automation, continuous integration, deployments and performance tuning
What you need to succeed
This position requires strong technical communication and problem-solving skills and the ability to engage and interact with numerous external teams. The ideal candidate would be developer with passion in systems, networking & application development. If you possess a strong aptitude for troubleshooting and a passion for changing the way systems are managed at scale, then this is the position for you. Candidates should be able to demonstrate deep competency in the requirements listed below:
Strong development background in any programming language e.g. Java, Python, C++ etc.
Experience in designing, developing, deploying, running, managing and troubleshooting distributed large-scale internet hosted applications.
Understanding of how internet functions, related networking concepts
Deep understanding of Linux based platforms
Experience with AWS/Azure/Google Compute Cloud
Having worked with container technology like Docker & orchestration engines like Kubernetes.
Experience with monitoring solutions like Splunk, Nagios, Pingdom, Prometheus.
Experience creating and maintaining automated server deployment scripts using tools such as Saltstack, Ansible, Chef or Puppet
Excellent written and verbal communication skills, demonstrating the ability to effectively convey technical information to both technical and non-technical audiences
The following requirements are not strictly required, but are preferred:
BE/B.Tech in Computer Science Engineering
Ability to work independently with minimal supervision