loading...

How does dev.to choose which post should be on the top?

mayankjoshi profile image mayank joshi Updated on ・1 min read

How do Dev choose which post should be visible to it's user, except the preference based on following?

Also does Dev use machine learning?

Discussion

pic
Editor guide
Collapse
ben profile image
Ben Halpern

Currently we are split testing a bunch of different scenarios...

  def ab_test_user_signed_in_feed(feed)
    test_variant = field_test(:user_home_feed, participant: current_user)
    Honeycomb.add_field("field_test_user_home_feed", test_variant) # Monitoring different variants
    case test_variant
    when "base"
      feed.default_home_feed(user_signed_in: true)
    when "more_random_experiment"
      feed.default_home_feed_with_more_randomness_experiment
    when "mix_base_more_random_experiment"
      feed.mix_default_and_more_random_experiment
    when "more_tag_weight_experiment"
      feed.more_tag_weight_experiment
    when "more_tag_weight_more_random_experiment"
      feed.more_tag_weight_more_random_experiment
    when "more_comments_experiment"
      feed.more_comments_experiment
    when "more_experience_level_weight_experiment"
      feed.more_experience_level_weight_experiment
    when "more_tag_weight_randomized_at_end_experiment"
      feed.more_tag_weight_randomized_at_end_experiment
    when "more_experience_level_weight_randomized_at_end_experiment"
      feed.more_experience_level_weight_randomized_at_end_experiment
    when "more_comments_randomized_at_end_experiment"
      feed.more_comments_randomized_at_end_experiment
    when "mix_of_everything_experiment" # mix of all experiments. New experiments also added. This is the "index fund" version.
      feed.mix_of_everything_experiment
    else
      feed.default_home_feed(user_signed_in: true)
    end
  end

Each of these maps to a different type of algorithm...

github.com/thepracticaldev/dev.to/...

We don't actively use ML but it could get introduced into a future algorithm.

If anyone wants to introduce it via a PR, they are free to do so. Of course, getting the right ML in place is a fairly system-wide commitment which is why we haven't gotten there yet.

But if anyone is curious, I'd check out these gems as utilities they could lean on.

ankane.org/new-ml-gems

Collapse
ac37s profile image
e1cb4 ac37s

I'll take an opportunity to thank for endless productivity and self help posts, self taught stories and "should I attend a bootcamp" thoughts in my feed, endless tutorials on how to use array.map and let vs const vs var articles and etc. Thank you again. But I don't need them. At least not in like 40%+ of the feed. I know, there maybe not so much content to fill that feed, but mb i'll see them when I scroll to bottom? I mean, it may look salty from me, but I am REALLY scrolling more than actually read, and here ARE a lot of posts interrsting for me, but i have to scroll for them a lot avoiding those described above.

Collapse
ben profile image
Ben Halpern

Results may not yet be entirely visible, but we're putting in a lot of work to address this specific concern.

One thing that helps if you haven't yet done it: Adjust your "experience level" in /settings/ux as one indication to help get a more relevant feed. Plenty more work to go in this regard from our team.

Collapse
andrzejwp profile image
andrzejwp

Apparently - these posts are still useful to many people. Or maybe it's just what the authors think :)