Principal Software Engineer - Ad Experiences
Role details
Job location
Tech stack
Job description
- Writing some and reviewing a lot of code and tests.
- Reviewing code and test implementations for best practices and algorithmic complexity.
- Available to support engineers on an On-Call shift, when needed.
- Reading requirements documentation from Product, providing a perspective on feasibility and translating into implementation tasks, and partnering with teams' leads through execution as needed.
- Exploring, researching, implementing proofs-of-concept, and proposing solutions that will improve Ad Serving systems (reduce cost and overhead, improve maintainability, minimize the time features take to be in production, etc).
- Defining, reviewing, and documenting software and system designs in a high throughput, low latency microservices environment.
- Enhancing systems' observability with proper metrics, monitors, and alerts.
- Foster open communication during architectural discussions, confidently defending decisions while welcoming feedback.
- Bridge the gap between diverse team requirements and technical capabilities to deliver cohesive, scalable solutions.
- Mentoring and inspiring others in all aspects of professional software development.
Requirements
- A willingness and desire to effectively communicate and collaborate across teams and organizations.
- Demonstrated ownership and expertise in the projects delivered by our teams.
- Proficiency in designing and implementing robust, scalable, tolerant distributed systems, as well as in advocating best practices to fellow engineers.
- A passion for mentoring, learning, and adapting to a very dynamic and fast-paced environment.
- A proven ability to work with product teams to influence and translate requirements into well-defined technical implementations, as well as the ability to define technical and operational metrics to measure system health.
- Possess knowledge of relevant technologies and their potential applications within our systems, and be able to articulate their pros and cons.
- A keen eye for potential optimizations and enhancements to our services using dedicated research time.
- Kindness and pragmatic optimism.
- Your unique view and experience., * BS or MS in Computer Science/Engineering or relevant work experience
- 10+ years of software engineering experience
- Advanced proficiency with Java, such as understanding heap, multi-threading, garbage collection, profiling
- Demonstrable analytical / problem-solving / design skills in a highly distributed and highly available services ecosystem
- Excellent communication, collaboration skills, and a strong teamwork ethic with both technical and non-technical audiences
Comprehensive experience with:
- SpringBoot and related Spring projects
- Non-relational database technologies e.g. DynamoDB
- Redis and/or MemCache
- Apache Kafka and/or Kinesis
- AWS or any other cloud platform
- Observability tooling (logs, metrics, etc)
Preferred Qualifications:
- Comprehensive experience with Terraform, Docker, and Kubernetes
- Ad Tech Industry knowledge.
Benefits & conditions
The hiring range for this position in New York, NY is between $197,400 - $264,700, Los Angeles, CA is between $188,400 - $252,600, Seattle, WA is between $197,400 - $264,700 and San Francisco, CA is between $206,400 - $276,700. The base pay actually offered will take into account internal equity and also may vary depending on the candidate's geographic region, job-related knowledge, skills, and experience among other factors. A bonus and/or long-term incentive units may be provided as part of the compensation package, in addition to the full range of medical, financial, and/or other benefits, dependent on the level and position offered.