Real world functional programming in Ads serving
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
- Problem statement for Ads serving engine
- Domain and Functional modeling for different components
- Application and advantages of functional programming concepts for different components
- Code demo + comparison with Scala/Haskell
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.
Beginner and Experienced functional programmers
schedule Submitted 3 years ago
People who liked this proposal, also liked:
Vagmi Mudumbai - Reactive Programming with RxSwiftVagmi MudumbaiCTOTarkaLabs
schedule 3 years agoSold Out!
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.