Purpose
As a Back-End Engineer in the Data Platform team, you will be building the foundational technical stack on top of which all data analytics workloads run. Key Responsibilities include applying software architecture concepts in order to formulate and implement common patterns in our data pipeline.
The ideal candidate will have
Software development background with experience implementing and operating distributed applications in production.
Strong python skills (preferably python 3)
Experience using Git for version control
Ability to write self-documenting code and produce good and clear documentation for systems you build
Experience using a CI pipeline for automated deployment
Knowledge of type systems and previous experience using a statically typed programming language
Experience building ETL pipelines in a distributed computing paradigm
Good knowledge of Object Oriented and Functional Programming
Strong in unit testing, integration testing, end-to-end testing (preferably some experience with Behaviour-Driven Development
Experience using Docker to build and deploy applications in production
Proven ability to reason about distributed systems and their properties (idempotency, parallelism, concurrency, consensus, etc.)
Some experience with Bash scripting
Experience running software on Linux
Strong knowledge of database concepts (OLAP vs OLTP, columnar vs row, partitioning, reasoning about complexity of queries) with experience using distributed database technologies
Experience implementing and using automated monitoring
Bonus Skills
Experience using Apache Spark in production
Experience using Postgres or Greenplum in production
Experience using an Object Store (S3, Google Cloud Storage, Minio) in production
Experience using Flask in production
Experience using Apache Airflow in production
Experience using Grafana in production
Experience with Kubernetes in production
Experience using Prometheus in production