Support a team of software engineers that design and develop code that consistently adheres to good programming practices.
Participate in architectural sessions and provide solutions to complex problems.
Design, develop, and maintain high volume Java and Scala based data processing jobs using industry standard tools and frameworks in the Hadoop ecosystem, such as Spark, Kafka, Hive, Impala, Avro, Flume, Oozie, and Sqoop.
Design and maintain schemas in our analytics database.
Write efficient SQL for loading and querying data.
Collaborate with product managers and technologists to solve business problems.
Mentor junior engineers with all aspects of software development.
Live by Agile (particularly Scrum) principles and collaborate with team members using Agile techniques including test driven development, code reviews, and retrospectives.
Maintain position as an industry leader by exploring new technologies, languages, and techniques in the rapidly evolving world of high volume data processing.
Degree in Computer Science (or related field) or equivalent experience.
5-8 years of professional application development experience with a proven ability to deliver projects on time.
Strong Java skills, Experience with Scala preferred.
Hands-on experience with designing and implementing on AWS is preferred.
Experience with designing and implementing high volume data processing jobs.
Working knowledge of Map-Reduce in Hadoop.
Strong database development skills, including advanced SQL, relational and NoSQL database technologies.
Strong analytical and problem solving skills with an understanding of common mathematical principles used in statistical analysis.
Proven ability to work independently designing, developing and deploying solutions with minimal direction.
Experience designing and developing platform level components including event architectures, messaging, and caching is a plus.
Excellent verbal and written communication skills.
Passionate technologist with an innovative mindset.
Lead Solution Architect (W2)
Collaborate across business, engineering and product stakeholders to drive holistic technology implementations while maintaining a constant focus on delivering client value.
Lead the application and software/solution architecture practice across engineering scrum teams while exposing project and solution related architectural issues to the wider architecture team.
Lead and participate in the conceptual phases of identifying and solving business problems and initiatives.
Facilitate integration, alignment and excellent communication within the solution group and across the enterprise.
Work with other architects and senior technologists to curate and maintain a technology portfolio for the group that is aligned with the goals of the enterprise.
Provide educational/mentoring resources to architecture and engineering teams.
Define and evangelize design, modeling and continuous delivery methodologies in an Enterprise Agile environment.
Consult with architecture, development, infrastructure and operational teams to address issues relating to application architecture, such as performance or availability, and recommend solutions.
Work across the solution group to evaluate emerging technologies, and drive the evolution of current technologies, defining a roadmap which increases the value of technology to the business, while collaborating with architects across the enterprise to accelerate learning.
Mentor scrum teams with best DevOps practices.
Performs other related duties as assigned.
B.S. degree in Computer Science, Software Engineering, M.S. or equivalent preferred.
10+ years total software development experience required.
5+ years of experience with technical design for enterprise level projects.
3+ years of experience with technologies for large volume data processing.
Experience in the implementation of design and architectural processes in an Enterprise Agile environment spanning multiple geographic locations.
Experience designing and implementing high volume event processing pipelines, using tools such as Spark and Kafka.
Strong Scala or Java skills and functional programming experience.
Experience with Amazon AWS technologies, both IaaS and PaaS, with a focus on highly scalable cloud-native architectural patterns, especially EMR, Kinesis, and Redshift.
Experience with dev-ops tools and culture.
Strong database development skills including a solid understanding of database technologies, as well as logical and physical data modeling.
Experience with massively parallel, distributed analytics database systems a plus.
Willingness to occasionally travel to other client distributed offices (1-2 times per quarter).