You will be a senior contributor in a dedicated core platform team tasked with expanding the core system that BAM's data analysts, data scientists, quantitative investors, and researchers depend on for measuring and detecting issues in our thousands of datasets.
The platform simplifies the day-to-day activities of analysts, researchers, and data engineers by supporting core data quality metrics and evaluation systems, allowing users to concentrate solely on working with data. The system exists at the epicenter of a cloud-native ecosystem heavily leveraging Kubernetes, Kafka, Timeseries databases, Apache Airflow, and several cloud data warehouse technologies - and is trying to cater to all internal teams.
Role Overview
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 passionate about crafting high-quality software, thrives on working with data in all its forms, focuses relentlessly on rigorous design and architecture, and possesses the drive to advance initiatives and achieve results. The ideal candidate has both deep experience as a backend software engineer and experience building upon the open-source and cloud data platform ecosystem. 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. Your work will directly influence all users in the company by ensuring that data is a first-class citizen.
Key Responsibilities
- Devising and developing solutions that capitalize on cloud-based data and distributed computing technologies to create BAM's next-gen data platform.
- Brainstorm, Design, write, test and manage production-grade backend application APIs, data event streaming services, and analytical aggregation pipelines
- Contributing 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 platform 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.
- Participate in on-call rotations to support our products and investors, embodying our "own what we build" philosophy.
Minimum Qualifications:
- 7+ years of professional software development experience.
- Experience in building complex distributed software systems; Python/Golang experience is a plus but not required.
- Knowledge or relevant experience developing service-oriented architectures (Rest/RPC APIs), real time streaming systems (Kafka, Apache Flink, etc.) and analytical database.
- Experience working with both SQL and NOSQL database systems. Time series database familiarity a plus.
- Experience in highly available distributed systems is a plus but not required.
- A fervent desire to build robust and scalable systems and a deep knowledge of software engineering best practices and familiarity with CI/CD and infrastructure as code.
- 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
Preferred Qualifications
- Proficiency in containerizing workloads with Docker (Kubernetes experience is a plus).
- Experience with build automation tools (Jenkins, Github Actions, etc).
- Experience in at least one cloud environment, with a preference for those familiar with AWS (but not required).