Real world functional programming in Ads serving

location_city Bengaluru schedule Oct 15th 12:30 - 01:15 PM place Grand Ball Room 1 people 5 Interested

This talk will be about how we applied Typed functional programming and object-functional concepts inspired from languages like Scala, Haskell in building an Ads serving engine using Java 8 and made the stack extensible for multiple Ads serving usecases like App, Desktop, Exchange and ML model execution for CTR prediction, Guaranteed delivery etc.

This talk will focus on how we solved problems in an Ads serving engine using functional programming constructs for:

  • Relevance and Ranking
  • CTR prediction
  • Bidding models
  • Guaranteed delivery (Convex Optimization)
  • Explore / Exploit (Multi-armed bandit)
  • Attribution, Deduplication etc

From a language level, it will focus on how we applied our learnings from other functional languages like Scala, Clojure, Haskell in Java 8 to write elegant code for:

  • Composing Ad selection workflows from reusable components
  • Reasoning about code through immutability
  • Defining interfaces like function types. Functions as first class objects to express behaviour.
  • Using Builders and Filter predicates for adding new features
  • Transforming collections using streams, lambdas, map, reduce, flatMap, groupBy
  • Optional for writing null safe code and handling defaults using map, flatMap, orElse
  • Functional operations like partition, zip for simplifying code
  • Pattern matching and other features from libraries
  • Caching and memoization

Outline/Structure of the Experience Report

  1. Problem statement for Ads serving engine
  2. Domain and Functional modeling for different components
  3. Application and advantages of functional programming concepts for different components
  4. Code demo + comparison with Scala/Haskell

Learning Outcome

Audience can learn about how to apply functional programming concepts in a real world application without working in a purely functional language in the context of an Ads serving engine.

Target Audience

Beginner and Experienced functional programmers

schedule Submitted 3 years ago

Public Feedback

comment Suggest improvements to the Speaker
  • Sathish Kumar
    By Sathish Kumar  ~  3 years ago
    reply Reply

    Hi Naresh, Glad you found it interesting. I've presented at JSFoo 2012 and Rubyconf 2013 before. Links:

    • Mushtaq Ahmed
      By Mushtaq Ahmed  ~  3 years ago
      reply Reply
      The talk indeed looks very good.
  • Naresh Jain
    By Naresh Jain  ~  3 years ago
    reply Reply

    Thanks Sathish for your proposal. It looks very interesting. Would you have a link to any previous videos where you are presenting? This will help the program committee understand your presentation skills.

  • Liked Vagmi Mudumbai

    Vagmi Mudumbai - Reactive Programming with RxSwift

    Vagmi Mudumbai
    Vagmi Mudumbai
    schedule 3 years ago
    Sold Out!
    45 Mins

    We have been rewriting our CoreData and NSOperationQueue based sync system with RxSwift. This talks presents our benefits with moving with RxSwift and some of the challenges we faced while we implemented a persistent job queue with RxSwift.