Oversee design, development, test of complex, multi-tier software applications running in a distributed environment, and be able to make good tech decisions.
Working with other engineers, managers, designers, product managers to develop innovative solutions that meet needs with respect to functionality, performance, scalability, and reliability while meeting realistic implementation schedules and adhering to development goals and principles
Estimating engineering efforts, planning implementations and system changes.
Define the process of release management and on-call responsibilities to ensure the high product quality.
Developing industry and product technical expertise.
Proactively participating in maintaining team standards and best practices
Understanding the broader business context around their area and providing intelligent solutions.
Capable of building up a full suite of tech teams, including hiring good talent, ramping up teams quickly, building good team culture, etc.
What you will bring:
BS, MS, or PhD in Computer Science or related technical discipline (or equivalent).
15+ years’ work experience in software development area with at least 10+ years’ experience in Java programming, web development, big data or machine learning.
At least 10+ years’ management experience
Excellent computer science fundamentals, data structures, and algorithms.
Excellent problem-solving skills and capable of triaging and resolving critical tech issues without supervision.
Expertise in object-oriented design methodology and application development in Java and J2EE, including Spring
Expertise in large scale distributed system design or big data processing applications design. Knowledge of Docker/Kubernetes and Hadoop/HBase/Spark/Cassandra is a BIG plus
Experience with the Customer Service and Marketing Technology domain is a BIG plus.