Team leads at Treasure Data prioritize solving people and communication challenges before technical problems, but are still active technical contributors. They are eager to build effective and dynamic teams that iteratively and rapidly deliver resilient systems. This will require working across both product and engineering teams on complex problems where solutions require in-depth analysis and evaluation of multiple competing factors, identifying the best trade-offs for successful delivery.
Success in this role requires a passion for helping others and making their lives better. You do this by working with people to make team collaboration more effective, and by helping them simplify complex systems to make them understandable. You are able to effectively communicate decisions, ideas, designs, and operation of systems and services in a clear and concise manner but more importantly, derive a lot of satisfaction from teaching and enabling others to do this as well.
As a Team Lead within the Backend team you will be reporting to an Engineering Manager.
About Core Services
We design, build, and operate a distributed and dynamically programmable orchestration system that controls everything from SQL queries against our multi-tenant data lake to customer-specified code (Python and more) in serverless environments. Fronted by Ruby on Rails APIs, backed by priority queues and process supervisors, this layer is responsible for managing all customer data operations.
To power these operations, we self-host and operate distributed SQL engines (Trino, Hive) similarly in a multitenant environment to process both customer- and machine-generated queries. We self-host these engines in order to uniquely and deeply integrate data governance features for everything from basic access control through sophisticated PII and GDPR requirements.
The data lake at the foundation of all of this is built with first-class governance facilities, and adaptively schedules and performs continuous optimization of all data in its care. It is fed by streaming and microbatch ingestion layers (100k+/sec event counts), that also provide in-stream custom processing specified in a sandboxed environment. Constructed from a dynamically-typed (schema-on-read) block store, we have unique indexing and optimization challenges to solve.
Your duties will include:
- Manage 2 to 3 team members, setting clear expectations, providing constructive feedback, and handling difficult management situations.
- Hire, train, and coach new team members to grow our delivery capabilities.
- Work with Product and other engineering teams to focus the team on high customer value projects.
- Actively coach the people you work with to grow each member’s communication, collaboration, and self-management capabilities.
- Establish and encourage networks of communication. A Team Lead should always look for opportunities for engineers to directly communicate and self-organize, within and across teams.
- Work with technical leads and engineers directly to break down the roadmap and product requirements for delivery.
- Spend approximately 50% of your time as an individual contributor: writing high quality, testable code for our storage and ingest subsystems, and assisting with production operations as part of our full team on-call rotation.
- Pairing with other engineers to help overcome challenges.
- Assisting with system design activities, bringing an experienced perspective to discussions to make the right tradeoffs.
- Help surface challenges and areas for improvement, assisting in driving our product roadmap.
- A minimum of 5 years relevant working experience, operating systems in production.
- Strong Software Engineering experience, with an ability to work in multiple programming languages (we use JVM languages including Kotlin and Java, as well as Ruby.)
- Experience with Distributed Systems and operating them as they scale.
- Experience operating services running in the cloud (AWS primarily) or virtualized API-driven platforms.
- Articulate and personable with strong spoken and written English language abilities.
- Demonstrate the ability to work independently and collaboratively as part of a specialized team.
- Ability to slow down and communicate clearly and effectively across language barriers.
Nice to haves
These aren’t required, but be sure to mention them in your application if you have them.
- Are a student of complex systems theory and how to build resilient and adaptive systems and teams.
- Have experience working in highly distributed teams, across large time zone differences.
- Have a deep understanding of the common failure modes in distributed systems.
- Have read and enjoyed books like “The Manager’s Path”, “Nonviolent Communication”, “High Output Management”, “A Philosophy of Software Design”, and “Systems Performance.”
- Very competitive compensation package
- Provision of RSU
- 20+ days of paid leave