You will be a senior contributor in a small, dedicated data engineering team tasked with expanding the foundational data systems leveraged by analysts and engineers to power our downstream investment teams' processes. Our data platform simplifies the day-to-day activities of analysts, researchers and engineers by providing stable data tools, serving as a center of excellence, and supporting core data quality metrics, all with a goal of allowing users to concentrate solely on working with data. Our systems exist at the epicenter of a cloud-native ecosystem heavily leveraging Kubernetes, Airflow, Snowflake, Kafka, and a variety of other cloud data warehouse technologies. We're on a journey bringing the platform to the next level, redesigning from the ground up with a blend of open source and internal proprietary approaches. The ideal candidate is experienced with common tools in the data engineering ecosystem, passionate about crafting high-quality software, thrives on working with data in all its forms, and possesses the drive to advance initiatives and achieve results. The ideal candidate has experience building upon the open-source and cloud data platform ecosystem, is familiar with common data platform concerns, and has used some or all of the common data engineering tools (or their predecessors) such as dbt, Iceberg, Kafka, Airflow, Trino, Presto, and more. This team supports dozens of other teams managing thousands of datasets, so a client-obsessed mindset is critical; you don't just build the best tech but go above and beyond in helping users to get the most out of the systems you are building. BAM is continuously working to maintain a modern and easy-to-use data platform. Our current tech stack includes AWS, Terraform, Snowflake, Airflow, Kafka, Avro, K8s, and other best in class tools.Responsibilities of the Senior Software Engineer - Data Platform include:
- Devising and developing solutions that capitalize on cloud-based data and distributed computing technologies to create BAMs next-gen data quality platform.
- Contribute thought-leadership through the full software development lifecycle from requirements gathering, through architecture, prototyping, development rollout and support.
- Partnering with end-users and collaborating with team members to clarify and expand upon requirements, as well as providing first-class support and guidance on best practices.
- Employing creativity and lateral thinking to engineer high-performance solutions for observing, measuring and alerting on data quality issues.
- Working within a globally-distributed yet tightly-knit engineering team, actively contributing to feature brainstorming, technical design discussions, code reviews, and overall team engagement.
- Producing software that is comprehensible, thoroughly commented, rigorously tested, and meticulously documented.
QUALIFICATIONS AND REQUIREMENTS:
- A degree in Computer Science or a closely related field.
- Over 7 years of professional software development experience.
- A fervent desire to build robust systems.
- Strong knowledge of software engineering best practices, and the data engineering technology ecosystem.
- Experience in building complex software systems, Python experience a plus but not required.
- Advanced knowledge of open-source data quality and data observability frameworks
- Intermediate or advanced knowledge of SQL and experience crafting production queries for one or more SQL database management systems.
- Familiarity with fundamental DevOps practices, including continuous integration/continuous deployment (CI/CD) and infrastructure as code.
- Experience in at least one cloud environment, with a preference for those familiar with AWS.
- A self-starter mindset, with a penchant for experimentation, a habit of asking probing questions, and the ability to thrive in a fast-paced, agile setting.
- A continuous learner, eager to gain a comprehensive understanding of large and complex systems at every level, who enjoys delving into nuanced problems, conceiving innovative solutions, and conducting thorough tests to grasp both the positive and negative outcomes