427 karma · joined November 24, 2021
But the thing that really made the differences: 1) having a small github action that checks the size of a PR and leave a warning comment if it's large. Obviously some PR have to be large but then the developer has to justify 2) much better: getting early access to Github Stacked PR. we all like the experience and it solves a number of problems. without it even if you are disciplined and break down your work on several PRs, you end up having to deal with rebasing them one by one when the base moves. We modified Claude.md so that it tries to use it when it makes sense and now even AI generated changes result in stack of small PRs
I think it's worth investing in this as there are studies showing that review time is exponential with the size of PRs (or worse you are more likely to let defect go through on a large PRs). And AI agents are also better are reviewing smaller chunks.
I had personally several experiences of asking someone to break down a super large PR into smaller ones and found a defect in PR#2 which wasn't caught in the original AI driven PR review
It started with a naive "I know the tricks, let put them in an app" based on my own travel experience and quickly turned into a pretty nasty constrained optimization problem to optimize a cost function while keeping the schedule realist. So far I have been slowly releasing with friends and family, but I am pretty happy with the results as it can handle pretty complex combination of flights and layovers, compared to other similar apps.
If anyone wants to poke at it, I'd love to have some feedback! https://www.jetlagcoach.com
At core it turned out to be a complex optimization problem and a real challenge to tackle. I also put a lot of care in the UI/UX, while I usually focus more on backend work. It's working well, I am just finalizing the handling of some of the nastier edge cases
A basic example: a company using ChatGPT or Claude, and wanting to connect their business tools (ex: marketing, sales, project management...). in that case MCP is perfect from an enterprise point of view, and the integration can be managed at the company level.
All of this is http based and could be implemented on a bespoke API but the challenge is cross-API standardization so that agents can be trained on representative data. The value of MCP is that it creates a common behavioral contract, not just a transport or schema.
"We’re investigating an issue impacting Azure Front Door services. Customers may experience intermittent request failures or latency. Updates will be provided shortly."
This doesn't mean the human reviewer will need to spend less time reviewing, but potentially this PR will be merged faster with on average a lower number of iterations and improved code quality.
I do have in my team some senior developers that are excellent, and it's very very rare I catch an issue in their PRs (maybe 1 out of 50). But I also have greener developers for who the ratio is way higher (like 8 or 9 out of 10) and this means repeated context switching for the reviewers.
Granted, the price of services is higher than on other platforms, but you would be mistaken to thing that's the price you are paying at scale, on a multi-year deals with reservations.
If I were to start a B2B startup I'll definitely go with Azure. For B2C or e-commerce, I'll probably look at others
I am French & Canadian, so I don't have a stake in this, but it's crazy to see what's happening in the US right now, in the name of "Freedom of Speech".
I just reviewed uv for my team and there is one more reason against it, which isn't negligible for production-grade projects: Github Dependabot doesn't handle (yet) uv lock file. Supply chain management and vulnerability detection is such an important thing that it prevents the use of uv until this is resolved (the open github issue mentions the first quarter of 2025!)
I wrote an overview of the challenges of handling static assets with Docker, and how using versioned static files can help streamline deployments, improve rollback efficiency, and avoid overwriting critical assets.
If you're managing static files in a Dockerized Django setup, this post covers: - Common issues with running collectstatic during deployment. - The pros and cons of running collectstatic during Docker build. - A solution for versioning static assets using semantic versioning to ensure consistency and simplify rollbacks.
Inspired by this experience, I wrote a simple, practical tutorial using a Django app as an example.
This is a new exercise for me since I’m often too busy to write public-facing content (seriously, how do people find the time for blog posts??), but I hope it helps others avoid the same headaches!"
"In order to provide value, the Increment must be usable."
So this conflicts with the fact that business value can be generated (or protected, in the case of maintenance/upgrade of a system) without generating immediately "usable" changes. Or said otherwise, a high value change may requires a succession of non-usable changes over many "sprints", and Scrum doesn't account for that.
The main benefit of scrum is that it forces stakeholders to discuss goals and priorities.
But the framework itself has flaws in its philosophy. The Scrum book is adamant that the results of a sprint should be a user facing change, which doesn't always aligned with the "path of most value generated" that an organization should follow. For instance my team is working right now on transitioning our data storage system to a different offering in Azure as the type of PostgreSQL service we use is being retired. That's a non user facing but imperative change. Similarly, as our products are getting mature we work on both incremental improvements and longer term (6-12 months) ML/AI projects which are discussed with our clients. Our product manager has to be involved with those too and sometimes prioritize engineering work related to them. Scrum simply ignore this reality of operational tasks, and medium/long term value generation