107 karma · joined February 19, 2013
We get the benefits of a well used library, which means making certain changes is easy. For example, swapping our vector database was a one line change, as was swapping our cache provider. When OpenAI released GPT-4, we were able to change one parameter, and everything still just worked.
Sure, it's moving fast, and could use a lot better documentation. At this point, I've probably read the entire source code several times over. But when we start testing performance of different models, or decide that we need to add persistent replayability to chains of LLM calls, it should be pretty easy. These things matter to production applications.
The biggest benefit is that you get a fairly well thought out API to work with. In the case of Tailwind, this a pretty flexible and good set of defaults that works for 95% of use cases. You can focus more on building classes for cases specific to your site, and not spend time rebuilding undifferentiated layout utilities.
Beyond that, there are a couple of things that I don't believe bors has.
A big one that I built for myself was the idea of supporting "working hours", i.e. only merge code during this timeframe.
For example, one company I worked for had some pretty flaky tests. Unfortunately, what would happen is we would have several PRs get reviewed and then use a tool like bors to enqueue them. Inevitably, some queued PR would have a failed check for this flaky test.
Fast forward to the weekend and a completely different developer would merge a hotfix into master. Unfortunately, a side effect would be that a tool like bors would try to merge the head commit into the PR with the flaky test, and now it passes! So it gets deployed at a random unexpected time, which isn't what we wanted.
Basically, you can add a label to a PR in github and it will then queue it up to be merged once all the required checks pass, and it keeps queued PRs "up-to-date".
It's made a little money, but not much.
Github recently rolled out a feature at Github Universe that has overlap, so I'm guessing it won't get much more traction.
A few lessons I learned: - Especially when building on a platform, make sure you have the right niche. In this case, it probably has a wide enough audience that Github decided it was worth it to build as part of the platform. - Like any engineer, I spent too long building and let scope creep delay me from launching.
All in all, it's pretty cheap (read: basically free) to run, but I probably committed somewhere over 120 hours on it.
Chewse is weird little family who works with offices to run their meal programs.
We're looking for individuals who want to work as part of a small team, and have a lot of responsibility for what they produce. Humble confidence strictly required. Previous experience with Python and JS nice, but not required.
Process: Initial phone screen, technical phone screen and take home question, video chat, full day onsite
Come bring your heart to work!
All I can say, is that almost everything that was said here was the exact experience we had. Even down to the choice of Angular 1.X and rewriting all of the IIFEs in our codebase to use ES6 imports with babel.
I also need to acknowledge that PM is something that you do fine with 2 people, but your processes will fall apart, probably as soon as you even hit 4 or 5 people.
_.chain(values)
.map(() => {})
.flatten()
.compact()
.uniq()
.value()
vs Python where doing the same thing becomes either a nested mess of function calls or comprehensions or a for loop.There is a small number of ways I could imagine Django being MORE modular.
> Sometimes, that just doesn’t work for people who aren’t men.
I also found this to be confusing....