Hacker News new | past | comments | ask | show | jobs | submit login

We (balena) are a remote company who have to do a lot of these kind of things - one of my colleagues wrote a nice post about it -

https://www.balena.io/blog/the-unreasonable-effectiveness-of...




This is fascinating!

I've been struggling with an issue myself where I have a non-24 hour sleeping pattern. Does your system handle changing of timezones gracefully? It's almost like my timezone changes by 1.5-2hrs every day, and sometimes stressful days will completely throw it off.

Figuring out how to stay in sync with a 24-hour world has been a thorn in my side for ages and I think planning like you're doing would help me tremendously. (I actually clicked to read the comments on optiplanner to do something very similar to what you've been doing!)


OptaPlanner supports continuous planning (see my latest video), which is the ability to use a "sliding planning window".

It also supports the use of java.time, which means it supports LocalDateTime, OffsetDateTime, ZonedDateTime, and all other time related functionality that deals with implementing the insane intricacies of time for you. For example: if a shift runs from you 2:00 UTC to 10:00 UTC and employees from different timezones can furfil it and Daylight Saving Time changes for one of those employee's regions, you can write a constraint to detect that and avoid assigning the DST-affected employee that night.


I also work at balena and often have a drifting non-24 hour sleep pattern, the schedule is generated once a week for the following week. You are free to change your working hours when ever you like and when the scheduler next runs it will take your preference into account.

So if go nocturnal you can shift your work hours to the night and the scheduler will try its best. But there is another constraint which is your colleagues work hours, your hours should have some overlap with theirs so that the schedule is "solvable"




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: