• Software Architect

    Job Locations US-NY-New York
    Brand
    Viacom
    iCIMS ID
    2018-10861
  • Overview and Responsibilities

    We are seeking a technical leader who is ambitious, driven with an excellent track record. You should be as passionate as we are in the field of applied Machine Learning and Artificial Intelligence. You will work on building a personalization platform using the latest ML & AI technologies aimed at increasing user retention and content consumption. This role will drive with the vision & implementation of ML data pipelines & services for personalization.

    Responsibilities

    • Hands on architecture and software development of data pipelines for ML & other workloads.
    • Hands on architecture and software development of microservices for delivery of recommendations & other API.
    • Write testable, readable code in Scala, Java & Python.
    • Analysis, creation & implementation of different data models & query languages this includes Relational, Columnar, Document & Graph based on use cases.
    • Translate functional specifications into technical and non-functional requirements.
    • Review existing code/components for data processing, services & lead team for continuous improvements.
    • Develop and extend new and existing software frameworks, knowing when to build something new and when to use something already available.
    • Interfaces with product, project managers & other technical groups for interdependent systems/applications, and significant business risk.
    • Analyzes, defines and documents requirements for a system, considering its interfaces and interdependencies with other systems.
    • Develops solutions and/or configuration which meet the requirements by utilizing a variety of procedures and techniques.
    • Helps to refine and implement and end-to-end DevOps approach for personalization systems starting with Continuous Integration, monitoring, deployment, automated testing, incident response, developer tooling, artifact delivery etc.
    • Helps to define and implement automated process for end-to-end testing which includes integration, functional, model validations, recommendation scoring system, etc.
    • Participate in code and design reviews: both reviewing the code of others and having others review his/her code.
    • Implement features with input from brands and platforms.
    • Collaborates across multiple groups throughout the organization for development projects & to resolve system issues.
    • Develop user onboarding and system documentation.
    • Ensure comprehensive unit tests for all code.
    • Mentor and assist more junior developers.
    • Make recommendations for build vs. buy decisions in concert with peers.
    • Follow best practices for ML training & deployment & Microservices development

    Basic Qualifications

    • Experience of 10+ years in software engineering including architecture & development of complex systems.
    • Experience in solution & technical architectures & translating that in efficient technical strategies & code.
    • Fully conversant with OOP & functional programming, software development frameworks, and design patterns.
    • Expert knowledge in any or all of following - Java, Scala, Python, NoSql (MongoDb or CouchDb, Redis etc), relational databases (Postgres or Mysql), Apache solr or ElasticSearch.
    • Experience with Distributed execution platforms like Apache Spark or Apache Hadoop.
    • Experience with microservices using Spring Boot, Spring Cloud, Spring Data etc.
    • Experience with AWS cloud services (or similar) like EMR, ECS, Docker, Lambda, DynamoDB, RDS etc.
    • Capable of working closely with peer-level developers in Agile teams working in Scrum, Kanban, or other methodologies.
    • Excellent communication skills.
    • Commitment to getting results for time-sensitive launches, promotions and events.
    • Able to work in a fast-paced team environment and be adaptable to the demands of all levels and types of production duties.
    • Demonstrates expert understanding of all application development processes and development methods and tools and their appropriate use, serving as a resource to others.
    • Developing an understanding of key architectural issues and how they should be factored into decisions and recommendations.

    Additional Qualifications

    • Post Secondary Degree (BA, BSc, CS ) and or graduate (MA, MFA, MSc) preferred
    • B.S. in Computer Science or Engineering, M.S. preferred

    Options

    Sorry the Share function is not working properly at this moment. Please refresh the page and try again later.
    Share on your newsfeed