Staff Software Engineer
Overview:
Alteryx is revolutionizing data analytics by providing a complete end to end, self-service platform that allows users to get from business questions to business answers at incredible speeds. Why work for just any analytics company? At Alteryx, we are explorers, dreamers and innovators. We’re on a journey to build the best analytics platform in the world, but we can’t do it without people like you, leading the way. Forget the stereotypical tech companies of the past. Embrace the unconventional, exercise your imagination and help alter the future with Alteryx!
We are looking for a Staff Software Engineer to help us enhance our core IP; specifically, our Alteryx Engine, a fundamental piece of the Alteryx product suite. You will be a technical leader, taking on the most complex design and implementation work while mentoring/supporting other members of your team. You are someone who loves learning new programming languages and understanding the intimate details of your software, with a penchant for software design.
Responsibilities:
- Assume ownership of the design and implementation of several domains, including our next generation user-facing compute platform
- Your impact will span larger parts of the organization. You will be the go-to person for parts of our solutions and in demand as a sounding board for new ideas
- Collaborate across design, product management, and engineering to implement the best user experience possible
- Engage in prioritization and planning activities as a technical thought leader
- Drive cross-cutting technical initiatives that improve the way we build, test, and ship software
- Design multiple domain areas and/or system level design and set technology direction for multiple teams
- Help establish standards and best practices across the organization
- Mentor others to help them develop their technical and leadership skills
- Actively communicate and document proposed strategies and standards across teams
Qualifications:
- 10+ years of systems design and development experience preferably leveraging open source and open standards. Significant experience in creating complex technical products ideally in compiled languages
- Experience on distributed pipelines (C++/Java) and/or spark infrastructure (Scala) and/or Kubernetes’s core services like etcd (Go)
- Demonstrable experience and interest in architecting complex software products/solutions; deep familiarity with modern technologies, design principles, and patterns
- Expertise and experience working on high-performance distributed systems
- Strong skills in critical thinking, decision making, problem solving, and attention to detail
- Strong knowledge of and experience with object oriented and functional design patterns
- Experience using Git and Git-based pipelines
- Experience mentoring and developing others
- Familiarity with software engineering principles/processes (e.g. Agile, DevOps, TDD, XP) and continuous improvement through measurement