Senior Software Engineer, Ad Platforms
Austin, Texas, United States
Software and Services
At Apple, we work every day to create products that enrich people’s lives. Our Advertising Platform group makes it possible for people around the world to easily access informative and imaginative content on their devices while helping publishers and developers promote and monetize their work. Today, our technology and services power advertising in Search Ads in App Store and Apple News. Our platforms are highly performant, deployed at scale, and setting new standards for enabling effective advertising while protecting user privacy. The Finance & Billing Platform team designs and builds systems handling our complex and ever-growing monetization platform that processes credit card payments, invoice generation, and reporting for our advertisers and publishers across the world.
- 5+ years of professional software development experience
- 5+ years of experience in Java & related technologies such as Spring, REST, Git, Python, JUnit, TestNG, MyBatis, Jersey, jetty, JMX, etc.
- Knowledge and experience in production server-side development in Java.
- Python experience is a plus
- Deep knowledge of web services standards and related technologies such as HTTP, JSON, XML, SOAP, REST
- Experience with relational databases (SQL Server, Oracle, Mysql, etc.).
- Experience in crafting and implementing resilient and scalable RESTful APIs.
- Experience in object-oriented software development with a deep understanding of scalable distributed systems like Cassandra, Solr, Kafka, spark and/or Hadoop.
- Knowledge of large-scale enterprise software such as SAP or similar products.
- Knowledge of Financial software systems including budgeting, forecasting, and ERP integrations.
- Strong software development skills (configuration management, issue tracking, estimation, Agile/Scrum).
- Experience building and scaling systems both on-premise and the cloud. Experience architecting for a hybrid cloud environment is highly desired.
- Excellent verbal and written communication skills.
- Prior experience in the advertising industry is a huge plus.
- Knowledge of PCI (Payment Card Industry) process is a plus.
The Finance & Billing team is the backbone of Apple’s Ad Platform Revenue & Payout function for our partners. As a key contributor to this team, you will design and develop a scalable back-end system that will handle payments, payouts and deliver key business data to our cross-functional stakeholders. You will build and maintain interfaces used by both internal systems and thousands of developers and advertisers worldwide. You are self-motivated, have excellent design instincts, and enjoy working with cross-functional teams. You will build high-performing, elegant systems from the ground up, in close partnerships with various teams around you. You will also possess keen judgment in selecting technologies and building the right solution for the interesting challenges we get to tackle here. OUR IDEAL CANDIDATE WILL: - Be a passionate software engineer, who wants to craft quality software products & systems. - Have a desire to work in a fast-paced and challenging work environment. - Be a results-oriented, deadline-driven, self-managed individual who can deliver with minimal oversight. - Own new features from design to production release. - Build applications and micro-services from concept to completion. - Develop scalable, tested and reliable applications for a distributed SOA environment. - Improve the systems with innovative solutions. - Commit to ruthlessly rewriting, refactoring and perfecting code. - Find creative solutions to challenging problems. - Develop quality software using industry best practices in all aspects of the software development process. - Conduct peer code reviews. - Be able to work with QA, product management and operations in an agile environment. - Participate in resolution of production issues and lead efforts toward solutions, both internally and across the organization. - Maintain and grow a performant production environment in a way that makes the system increasingly maintainable, reliable and monitored. - Build and maintain quality software using the best of breed tools. - Communicate effectively, both written and verbal, with technical and non-technical multi-functional teams.
Education & Experience
Bachelor’s degree or equivalent experience required. Master Degree in Computer Science or other Engineering field strongly desired.