Work with product managers and engineering leadership to understand technical requirements and success metrics to design system architectures and implementation paths.
Maintain and advance deep technical skills and knowledge, keeping up to date with market trends and competitive insights.
Participate in mentoring a diverse team of high-performing, junior to mid-level engineers through peer reviews, pair programming and other practices.
Cultivate an environment where team members are empowered and demonstrate a strong sense of ownership, sharing and belonging.
Design, code, debug, and problem-solve with internal and external team members on a wide array of services and tools.
Create a track record of driving decisions collaboratively, resolving conflicts and blockers, and ensuring follow through with exceptional verbal and written communication skills.
Bachelor's in Software Engineering or related field with 5+ years practical experience, or a minimum of 7+ years of real-world, practical experience.
Demonstrated ability to adapt to new technologies and migrating or transforming legacy systems to modern microservice architectures.
Professional knowledge and experience in at least two of the following areas: Web Frontend, Database Architecture, CI/CD, Network Design, Container Orchestration.
Track record of designing and developing resilient, highly available systems.
Ability to communicate clearly and effectively with product owners and stakeholders.
2+ years experience designing and developing modern application architectures (i.e. containerized microservices or micro-stacks).
2+ years practical experience with NodeJS applications (TypeScript experience a plus).
Practical experience running applications using Container Orchestration technologies (e.g. Docker Swarm and/or Kubernetes).
Practical experience with database systems such as PostgreSQL, Elasticsearch, Redis.
Familiarity with load-balancers, reverse proxies and routing rules.