Python Developer - Custom Football Schedule Generator

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Gig

SALARY

$50

HOURS PER WEEK

TBD

DATE UPDATED

Jun 27, 2025

JOB OVERVIEW

Project Overview:
We are seeking a skilled Python developer to create a program that generates a comprehensive football game schedule for a league of 9 teams. The schedule must adhere to a specific set of rules and constraints to ensure fairness and accommodate pre-determined matchups.

Teams Involved:
The 9 teams are:

Wallkill Valley

Parsippany

Hopatcong

Junior Knights

Ringwood

Kittatinny

Boonton

Hackettstown

Lenape Valley

Scheduling Requirements & Constraints:

League Structure:

The schedule will cover 9 weeks.

Each team must play every other team exactly once.

No team can play more than one game per week.

Each team must have one bye week during the 9-week season.

Home/Away Balance:

Crucially, every single team must have exactly 4 home games and exactly 4 away games over the course of the season (excluding their bye week).

Specific Matchup Constraints (Mandatory):

Wallkill Valley must have its bye week in Week 3.

Hackettstown must play an away game in Week 4.

Wallkill Valley must play Ringwood at home in Week 1.

Deliverables:
The successful candidate will provide:

A completed MCYFL 2025 American Conference Schedule

Generated Schedule: The complete 9-week football schedule in a clear, readable format (e.g., text, Markdown table, or CSV), explicitly stating matchups, home/away designations, and bye teams for each week.

Technical Skills Required:

Proficiency in Python programming.

Experience with constraint satisfaction problems (CSPs), optimization algorithms, or graph theory concepts for scheduling.

Familiarity with relevant Python libraries (e.g., ortools for constraint programming, or custom algorithm implementation).

Ability to structure code for clarity and maintainability.

Ideal Candidate:
We are looking for a detail-oriented problem-solver who can tackle complex combinatorial challenges efficiently. Experience in sports scheduling or similar optimization tasks is a significant plus.

Please submit your proposal detailing your approach and estimated timeline.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0141
Total Execution Time  0.0154
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,493,192 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Python-Developer-Custom-Football-Schedule-Generator-1409638
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0092 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1409638
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 825015
 LIMIT 1 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1409638
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-14',ej.date_added) duration_daysDATEDIFF('2026-04-14',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-04-14',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1409638' 
0.0008   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1409638 
0.0020   UPDATE employer_jobs SET hit_counts '***Jun-27-2025=75***Jun-28-2025=35***Jun-29-2025=21***Jun-30-2025=25***Jul-01-2025=8***Jul-02-2025=11***Jul-03-2025=9***Jul-04-2025=5***Jul-05-2025=1***Jul-06-2025=1***Jul-07-2025=7***Jul-08-2025=1***Jul-09-2025=1***Jul-10-2025=6***Jul-11-2025=4***Jul-12-2025=2***Jul-14-2025=1***Jul-15-2025=1***Jul-16-2025=1***Jul-17-2025=6***Jul-18-2025=6***Jul-19-2025=2***Jul-20-2025=1***Jul-22-2025=1***Jul-23-2025=1***Jul-24-2025=5***Jul-25-2025=2***Jul-29-2025=4***Aug-04-2025=3***Aug-05-2025=1***Aug-09-2025=1***Aug-10-2025=5***Aug-11-2025=1***Aug-15-2025=2***Aug-16-2025=1***Aug-18-2025=1***Aug-19-2025=1***Aug-25-2025=7***Aug-26-2025=1***Aug-27-2025=1***Aug-28-2025=2***Aug-31-2025=2***Sep-01-2025=3***Sep-02-2025=1***Sep-03-2025=1***Sep-04-2025=1***Sep-08-2025=1***Sep-09-2025=2***Sep-11-2025=2***Sep-13-2025=1***Sep-14-2025=1***Sep-16-2025=2***Sep-18-2025=1***Sep-19-2025=2***Sep-20-2025=1***Sep-25-2025=1***Sep-27-2025=1***Sep-28-2025=1***Oct-02-2025=2***Oct-03-2025=2***Oct-04-2025=3***Oct-06-2025=1***Oct-08-2025=2***Oct-09-2025=2***Oct-11-2025=1***Oct-13-2025=1***Oct-14-2025=1***Oct-16-2025=4***Oct-21-2025=3***Oct-22-2025=3***Oct-28-2025=2***Nov-03-2025=2***Nov-04-2025=2***Nov-07-2025=3***Nov-08-2025=1***Nov-13-2025=1***Nov-14-2025=2***Nov-15-2025=1***Nov-17-2025=2***Nov-18-2025=3***Nov-19-2025=2***Nov-21-2025=3***Nov-23-2025=1***Nov-28-2025=1***Dec-03-2025=2***Dec-04-2025=2***Dec-05-2025=2***Dec-06-2025=1***Dec-08-2025=3***Dec-14-2025=1***Dec-17-2025=1***Dec-19-2025=1***Dec-20-2025=3***Dec-21-2025=1***Dec-22-2025=1***Dec-30-2025=1***Dec-31-2025=1***Jan-06-2026=2***Jan-10-2026=1***Jan-12-2026=1***Jan-13-2026=1***Jan-14-2026=1***Jan-15-2026=1***Jan-16-2026=1***Jan-18-2026=1***Jan-19-2026=3***Jan-22-2026=1***Jan-23-2026=1***Jan-26-2026=1***Jan-27-2026=2***Jan-30-2026=1***Jan-31-2026=2***Feb-04-2026=2***Feb-07-2026=2***Feb-09-2026=1***Feb-10-2026=1***Feb-11-2026=1***Feb-17-2026=2***Feb-18-2026=1***Feb-19-2026=1***Feb-21-2026=2***Feb-22-2026=1***Feb-24-2026=3***Feb-27-2026=1***Feb-28-2026=3***Mar-04-2026=1***Mar-05-2026=1***Mar-08-2026=2***Mar-09-2026=1***Mar-10-2026=1***Mar-11-2026=1***Mar-13-2026=1***Mar-14-2026=1***Mar-17-2026=3***Mar-19-2026=1***Mar-22-2026=1***Mar-23-2026=2***Mar-25-2026=1***Mar-26-2026=2***Apr-01-2026=2***Apr-03-2026=2***Apr-04-2026=1***Apr-06-2026=1***Apr-07-2026=2***Apr-14-2026=1' WHERE job_id'1409638'  
0.0007   UPDATE employer_jobs SET monthly_hits '***Jun-2025=156***Jul-2025=87***Aug-2025=29***Sep-2025=22***Oct-2025=27***Nov-2025=24***Dec-2025=20***Jan-2026=20***Feb-2026=21***Mar-2026=19***Apr-2026=9' WHERE job_id'1409638'  
0.0014   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1409638' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1409638 
0.0012   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '825015'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)