Senior Back-end Engineer (Java + SQL and system design)
Our client is transforming how brands and users interact across digital platforms. Their mobile marketing and deep linking solutions are trusted to deliver seamless experiences that increase ROI, decrease wasted spend, and eliminate siloed attribution. The team consists of smart, humble, and collaborative people who value ownership over all we do to create a product, team, and company that lives and breathes a motto: Build Together, Grow Together, Win Together.
- Lead the design and implementation of complex distributed systems – be it a new service to power new functionality or data pipelines to ingest large volumes of data or implementing state of the art complex algorithms.
- Build APIs to complex backend data systems across a range of technologies to support new and improved product functionality.
- Partner with data scientists, data analysts, fraud specialists, infrastructure engineers and product managers to design, build and deliver big data projects and new data platform capabilities.
- Debug hard problems – that’s a given! When things break — and they will — you will find yourself debugging those challenging bugs and will be eager to fix things.
- Continuously learn something new, whether it’s a new technology or a quirk of a language we otherwise didn’t know. On occasion, you may find yourself picking up a new language or working with an unfamiliar platform.
- 5+ years of experience working with systems created in service-oriented architecture.
- Strong hands-on coding experience in Java/Kotlin, SQL and comfortable diving into any new language or technology.
- Experience with or willingness to learn data engineering tools/technologies like Spark, Flink, Airflow, Hive, Druid, Presto, PostgreSQL, DBT, ETL and familiarity with key/value databases, Kafka and S3.
- Experience working with modern cloud based microservice architectures.
- Experience with Linux, AWS and containers using Docker and Kubernetes is a big plus.
- Ability to display a significant ownership of features and systems and pursue results driven development approaches consistent with pragmatism.
- Ability to build systems that balance scalability, availability, and latency.
- Strong ability to advocate for improving engineering efficiency, continuous deployment and automation tooling, monitoring solutions, and self-healing systems that enhance developer experience.
- Good communication skills, mentoring, and a force-multiplying track record.
- A desire to learn and grow, push yourself and your team, share lessons with others and provide constructive and continuous feedback, and be receptive to feedback from others.
- Experience of proven track record in building and maintaining big data platforms.
- Good understanding and experience in modern ETL (incremental, one-time) with DAG design patterns, data quality checks etc.
- Solid background in the fundamentals of computer science, distributed systems, concurrency, resiliency, caching, large scale data processing, database schema design and data warehousing.