Senior Software Engineer (Java)
About adMarketplace
With 20 years of search marketing expertise our goal is to add value to every search. On the simplest level we are the largest consumer search technology platform outside of Google and Bing. adMarketplace delivers incremental search traffic across native channels, including mobile apps, consumer sites, and browsers. Our technology enables audiences to skip search results pages and navigate directly to trusted sites in moments of intent. As well as driving incremental reach we are also market leaders in terms of privacy and performance.
The Role
The ideal candidate is motivated designing for massive scale, developing for low latency and has a strong interest in engineering high throughput systems, data streaming, processing, and aggregation solutions.
Our team uses cutting edge software technologies including Java8+, Akka, Scala, Kafka, Spark, NoSQL, AWS, Docker and more.
What You'll Do:
- Hands-on design, development, and maintenance of ad tech related systems and system components using Java
- 24/7 low latency high availability systems
- Clients integration automation components (Google, Amazon, LiveRamp, etc.)
- Data streaming, processing, and aggregation solutions
- Data-driven applications
- Work closely with QA, DevOps, and other engineering teams to integrate, test and release different system components (all stages of SDLC).
- Solve complex technical challenges related to low latency large scale distributed systems.
- Work closely with business stakeholders and other engineers on understanding and translating business requirements into technical solutions.
- Lead the design and technical implementation of different projects.
Qualifications:
- BS in Engineering, Computer Science or related discipline
- Must have 5+ years strong hands-on development experience using Java (Java 8+ preferred)
- Ability to design complete systems by collaborating with multiple teams and understanding testing, hardware and deployment methodologies
- Experience developing, delivering and maintaining low latency, scalable applications, and systems
- Strong knowledge of algorithmic complexity/simplicity tradeoffs, effective use of data structures
- Good understanding of object-oriented design patterns
- Familiarity and hands-on experience with profiling, code efficiency, and testing/release concepts
- Experience working in a Linux environment
- Experience building software in continuous integration and delivery fashion in an automated way
- Ability to initiate and drive projects to completion with minimal guidance
- Excellent documentation, communication, and troubleshooting skills
- Is a plus:
- Experience with Spring or another dependency injection framework
- Experience with Akka or another actor-based framework
- Experience with big data and streaming technologies like Apache Kafka, Spark, Hadoop, and Zookeeper
- Experience with Java8+, AWS, RabbitMQ, MySQL, Vertica, and Aerospike
- Familiarity with Docker, CI/CD, AWS, and Microservices
- Scala and/or Python development experience
- Experience working in an agile software develop