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!
The Challenge :
Are you passionate about crafting fault-tolerant services that function at scale while working with groundbreaking technologies in a cloud native micro services world?
The Adobe Experience Platform is seeking a Senior Software Engineer to join its Provisioning team. We build scalable, performant services and tools to provision everything needed for onboarding customers when they buy Adobe Experience Platform.
We are looking for innovative and hardworking software engineers with a strong interest in building low latency, high performance quality systems.
You should have practical experience in architecting and implementing fault tolerant micro-services for scale and high availability.
What you will do :
Responsible for the design, development, testing, troubleshooting, measurement, optimization, and improvement of software, new products, and code libraries across platforms.
Partners with multi-functional professionals (Product Management, Design, etc.) to resolve customer focused solutions.
Demonstrates standard methodologies, articulates ideas, & markets them across team and organization. Promotes a culture of continuous learning.
Leads application / framework / service design efforts, optimizing for quality, testability, and scale.
Uses appropriate & relevant programming languages and technologies, writes code, tests & deploys to meet business requirements.
Interacts with customers to define requirements and identify necessary modifications.
Communicates clearly with the team and management to define & achieve goals.
Be a technical leader with the ability and desire to mentor other members of the team.
What you will need to succeed :
B.S. in Computer Science or equivalent engineering degree
5+ years of experience designing and developing web or software applications
Proven expertise in Java, OOP Principals, clean Design and Design Patterns
Proven expertise in designing and developing scalable, maintainable, performant and resilient application
Experience in designing and implementing micro-services and RESTful services
Unending curiosity, thoroughness, tenacity and focus on quickly designing and building complex software systems with great quality to solve customer problems
Have a good sense of organization to set expectations and keep deliverables on a timeline, with the ability to document, communicate and justify all technology decisions and directions.
Deep understanding of modern cloud technologies and design patterns for building "always-up" services
Quick learner and ability to understand complex systems
Strong interpersonal and communication skills
Working Experience with Spring Framework
Experience with Microsoft Azure, specially resources, ARM, Access management, subscription is a big plus
Experience with Kafka, Redis and Zookeeper is a plus
Experience with Git, CI / CD pipeline (Moonbeam, Jenkins) is a plus
Familiarity with monitoring systems like NewRelic, Splunk, Grafana is a plus