Job Description
About the Company:
We are building cloud-based tax compliance solutions to handle every transaction in the world. Imagine every transaction you make - every tank of gas, cup of coffee, or pair of sneakers, every movie ticket, or streamed song, every sensor-to-sensor ping. Nearly every time you make a purchase, physical or digital, there is an accompanying unique and nuanced tax compliance calculation.
About the role:
We are looking for a Technical Lead to help us build and evolve our highly distributed and scalable products. A successful candidate will be a well-rounded software development engineer with a proven track record of delivering software at scale in an Agile environment, have the ability to work under pressure and thrive in a fast paced environment.
Avalara is the worldwide leader in sales and use tax calculation. The work we do is fundamental to electronic commerce. We're the first to admit it - sales tax isn't sexy. But revolutionising fundamental business processes -- that's big time. And that's what we're doing every day, bringing technology to bear on the arcane process of sales tax calculation, reporting and remitting.
We have a start-up culture focused on building great software and having the maximum impact on the world that we can and having fun while doing it.
What you'll do:
- Work closely with Scrum team members to plan, design, develop and test cloud based software applications.
- Participate as a scrum member, estimating and evaluating existing stories, as well as writing new stories.
- Be a key participant in creating a Quality First, Zero Defects culture. Promote Shift Left approach.
- Develop and deliver enhancements to the existing code base by crafting well-documented, modular, and testable code.
- Review design specifications and create a technical design document.
- Perform code review with peers.
- Influence the development team of engineers.
- Display ownership over complex, and large initiatives that include a medium degree of ambiguity.
- Define scopes of work across multiple components and/or technologies.
- Work independently and directly with partner teams and stakeholders to define implementation details for components.
-
Self-directed, lead team in deliverables, drive increases in team velocity.
-
Works on more strategic initiatives often spanning more than 1 quarter of development effort.
-
Effectively lead efforts to sub-divide vague requirements into actionable scopes of work for yourself and others for single and multi-component systems/changes.
-
Scope problems and break down tasks for yourself and other engineers on the team.
-
Demonstrate ownership of specific self-directed tasks, deliverables and issues, setting the tone for your peers and team members.
-
Works alongside senior Engineers from your, and partner teams.
-
Is "Leading the way" on one or more projects, and influencing team direction.
- Owns the end-to-end delivery of one or more features within a single team.
- Recommend changes to policies and establish new procedures related to hiring, interviewing, onboarding etc.
- Actively model our company culture.
-
Sharing knowledge within team in various formats (written, verbal, recordings, trainings).
Who You Are:
- Four years bachelor's degree or higher in computer science or equivalent. (Must have)
- Minimum of 7+ years of experience in a software development role, shipping complex applications to large scale production environments.(Must have)
- Strong experience in front-end development framework e.g. ReactJS. (Must have)
- Experience in C#.NET and REST APIs. (Must have)
- Exposure to Cloud technologies (AWS, Azure, Google Cloud - at least one of them). (Must have)
- Working knowledge to build CI/CD pipeline (GitLab, Terraform). (Must have)
- Experience in working in Agile team. (Must have)
- Good understanding of data structures and algorithm.
- Knowledge of architectural styles and design patterns to provide solutions with simplistic & optimal design.
- Experience in any relational database management system, e.g. SQL, PostgreSQL etc. PostgreSQL is preferred.
- Experience in building scalable and low latency address look up systems.
- Good debugging and troubleshooting skills.
- Someone who loves to write optimized, high-performance code.
- Strong written and verbal English communication skills.
- Strong Analytical and problem-solving skills.
- Self-motivated, persistent and have “Can Do/Never Give Up” attitude.
- Passion for innovation and adaptability to a lean start-up culture.
- Creativity, motivation, enthusiasm, flexibility.
-
Able to maintain momentum and navigate through short-term ambiguity.
- Values the success of the team over your individual progress, and is often taking leadership over delivering outcomes.
-
Able to lead conversations including Senior management and take on key roles independently working with management and cross-teams.
-
Track record of being able to collaborate on solutions, and build consensus.
-
Able to manage priorities, tradeoffs, forecast/manage risk, identify and implement solutions in team deliverables.
-
Sequence deliverables/manage priorities to minimize risk.
You May Also Have:
- Experience building platforms and libraries that are self-contained, extendable and ready for wide scale consumption.
- Familiar with containerization technologies (Docker, Kubernetes, ECS).
- Familiar with Docker containers and Kubernetes (K8s).
- Experience in securing web applications is a plus.
- Experience in highly scalable systems and low latency APIs is a plus.
- Experience in engineering for highly available and fault tolerant systems is a plus.