Director of Software Architecture
Core Digital Media is seeking a Director of Software Architecture to join their technology team. This role entails working across platforms and applications and act as a consultant and mentor to other developers in the technology teams. This is a hands on role involving technical analysis, design, development of systems, researching/implementing technical solutions and making the applications ready for future. This person will work closely with the other technical team leads for ideation, exploration and implementation of new technologies. We are looking for a high-octane, pro-active, self-motivated, well-rounded and hands-on individual who likes to work in a fun and collaborative environment.
About our Technology Department:
Our technology team is responsible for the development and operations of all the consumer-facing web applications as well as internal applications. We constantly optimize our web sites, especially focusing on mobile devices. The majority of the applications that enable our marketing team to be a leader in online advertising are built in-house.
We leverage the power of Java and popular frameworks such as Hibernate, Spring Boot, Zuul, Eureka, Zookeeper, Angular, React, Express, Node etc. for building enterprise-class scalable applications using REST/Microservices architecture. We have taken advantage of several new initiatives to introduce Kafka, MongoDB, Spark etc. in our technology stack.
Our technology platform runs on a highly scalable virtual infrastructure which extends to the cloud for disaster recovery.
Responsibilities
- Set technical/architectural direction and evaluate emerging technologies to meet long and short-term business objectives.
- Work with technology peers to define and implement technology roadmap.
- Create prototypes and mentor engineers/technology team members for newer implementations/concepts.
- Responsible for architectural review of all application development.
- Responsible for planning, architecting, designing and implementing technology projects and product features.
- Propose and implement new projects or recommend system improvements.
- Conduct research, develop/assist with proof-of-concepts and provide recommendations for vendor/product selection.
- Help with troubleshooting and debugging application issues.
- Coach and mentor individuals in architecture team to build a strong cross-functional team with well-defined measurable goals.
- Manage schedules and work queues for architecture team.
- Responsible for performance management of the architecture team.
- Provide effort estimations and project implementation strategies, track progress and deadlines of projects in architecture team queue.
- Conduct technology workshops/sessions/presentations for introducing new concepts and bring awareness in the team.
Skills
- Strong experience in Java, JEE, design patterns.
- Strong experience in Spring and Hibernate.
- Strong experience in design and implementing architectural styles such as REST, Micro services, Event driven.
- Experience with application servers (Tomcat/JBoss) and web servers (Apache/Nginx).
- Hands on experience in relational (preferably Oracle) and NoSQL databases (preferably MongoDB).
- Experience in managing technical team.
- Strong experience with testing frameworks (Cucumber, Mockito, JUnit etc.) and TDD/Agile development methodologies.
- Experience with cloud based application development/deployment.
- Experience with clustered and distributed system architecture and design.
- Experience with containerized environment is a plus.
- Experience with modern JavaScript frameworks as React, Node etc. is a big plus.
- Exposure to a variety of production monitoring tools – commercial and open-source.
Requirements
- BS/MS/PhD in CS or equivalent experience.
- 10+ years of experience in Java based data driven web application development
- Ability to comprehend detailed project specifications as well as the ability to adapt to various technologies and frameworks.
- Ability to work in fast paced environment and manage a technical team.
- Strong experience with multithreaded and highly scalable server side development.
- Excellent verbal and written communication skills and the ability to interact professionally with a diverse group of people.
- Excellent problem solving and analytical skills.
- Excellent designing, programming, code debugging, testing and troubleshooting skills.
- Demonstrated ability to exercise good judgment, prioritize multiple tasks, and problem solve under pressure of deadlines and resource constraints.