Regarding the HN to sqlite part, I'm writing a "syncer" that continuously updates data from HN to a local sqlite database. Its goal is to enable anyone to have a local copy of the HN dataset to build various projects (like yours) on top of it. I'm about to release it as an open-source project and would love to collaborate to make sure it supports your use case. I couldn't find an email address in your profile, so please reach out if you're interested.
Same! You may enjoy "Everyday Engineering: Understanding the Marvels of Daily Life" from The Great Courses [0]. It's free on Kanopy through many libraries.
After this, do a bit of research on goal programming or other approaches to multiobjective optimization. It could really help and depending on the approach, it's not that hard. It usually just adds a bunch of constraints or some precompuations to an already existing set of in/equalities for your model.
ALLOCATING CONFERENCE DELEGATES TO WORKSHOPS: A SPECIAL TIMETABLING PROBLEM --
"The problem of assigning delegates to workshops at a conference can be formulated as a timetabling problem. Such an assignment must take into account the preferences of the delegates, as well as the number of participants each workshop can accommodate. This paper will report on a heuristic solution technique for a special case of such a problem."