dan_manges
Now Available: Depot CI
Work in Progress Commits Are a Thing of the Past
What would GitHub Actions look like if you designed it today?
- local CLI instead of git push to run
- graph-based task definitions with automatic distributed execution, instead of the job/step abstraction
- automatic content-based caching to skip unnecessary executions (happens a lot in CI pipelines)
- container-based runtime (instead of proprietary base images) without using docker directly (too slow)
There are a lot of other ways to improve the developer experience. Happy to chat with anybody interested, I'm [email protected]
aliases:
common-env: &common-env
key1: value1
key2: value2
tasks:
- key: some-task
run: ...
env:
<<: *common-env
https://www.rwx.com/docs/mint/aliasesUsing an MCP Server to Fix Tests That Failed on CI
Proposal for a New Way to Build Container Images
Small scale: a project is almost small enough to run the build and tests locally, but you still want to have a consistent environment and avoid "works on my machine" problems.
Large scale: a project is so large that you need to leverage remote, distributed computing to run everything with a reasonable feedback loop, ideally under 10 minutes.
The opposite ends of the spectrum warrant different solutions. For small scale, actually being able to run the whole CI stack locally is ideal. For large scale, it's not feasible.
> A CI system that’s a joy to use, that sounds like a fantasy. What would it even be like? What would make using a CI system joyful to you?
I spent the past few years building RWX[1] to make a CI system joyful to use for large scale projects.
- Local CLI to read the workflow definitions locally and then run remotely. That way can you test changes to workflow definitions without having to commit and push.
- Remote breakpoints to pause execution at any point and connect via ssh, which is necessary when running on remote infrastructure.
- Automatic content-based caching with sandboxed executions, so that you can skip all of the duplicative steps that large scale CI otherwise would. Sandboxing ensures that the cache never produces false positives.
- Graph-based task definitions, rather than the 1 job : 1 VM model. This results in automatic and maximum parallelization, with no redundancy in setup for each job.
- The graph based model also provides an improved retry experience, and more flexibility in resource allocation. For example, one task in the DAG can crank up the CPU and memory without having to run more resources for downstream tasks (steps in other platforms).
We've made dozens of other improvements to the UX for projects with large build and test workflows. Big engineering teams love the experience.
[1] https://rwx.com
$175K – $250K + equity
We're a CI/CD platform with an entirely differentiated execution model. Rather than parallelizing jobs on VMs, we provide a serverless interface using a graph of tasks. We then have automatic, content-based caching, which eliminates the large amount of redundant executions that CI platforms have today. You can test changes from a local CLI so that you don't have to commit and push to run. We've made substantial improvements to every aspect of the developer experience.
We're looking for backend-focused engineers who excel at building developer tools. Our engineers are effectively product managers as well and work highly autonomously.
How to apply: email me at [email protected]
Semver notation rather than branches or tags is a great solution to this problem. Specify the version that want, let the package manager resolve it, and then periodically update all of your packages. It would also improve build stability.
Key differentiators:
* Content-based caching eliminates duplicate execution – only run what's relevant based on the changes being made
* Filters are applied before execution, ensuring that cache keys are reliable
* Steps are defined as a DAG, with machines abstracted away, for better performance, efficiency, and composition/reuse
Designing a Software Supply Chain for Security and Reliability
Git Push to Run CI/CD Is a Terrible Developer Experience
The Paradigm Shift of CI/CD as a DAG of Tasks
Underrated Reasons to Be Thankful
Separating Data and Code in Rails Architecture
The Modular Monolith: Rails Architecture
Root is an auto insurance carrier, like GEICO and Progressive. We use data science to identify and insure good drivers, reducing insurance premiums for good drivers significantly as a result.
We're a startup — we're 60 people who have been working on this since March 2015. We've built an iOS and Android app that gathers data on how well people drive. We use that to set insurance prices. To build the best possible product and user experience, we went through the arduous process of starting an insurance carrier from scratch.
We're focused on becoming a national insurance carrier and are now live in eight states.
We raised a $7M Series A from Drive Capital in 2015 and we're looking to bring on a couple more talented engineers.
Tech stack involves Ruby / Rails and Javascript / React Native.
Email us at [email protected] to apply and we'll respond to you promptly.
Our iOS app: https://itunes.apple.com/us/app/root-car-insurance/id1021256...
Our Android app: https://play.google.com/store/apps/details?id=com.joinroot.r...
Mounting React Native Components with Enzyme and JSDom
Root Engineering: We Built an Insurance Company – From Scratch
Root is an auto insurance company, like GEICO and Progressive.
We use data science to identify and insure good drivers, reducing insurance premiums for good drivers significantly as a result.
We're a startup — we're 14 people who have been working on this for a little over a year. We've built an iOS app that gathers data on how well people drive. We use that to set insurance prices. To build the best possible product and user experience, we went through the arduous process of starting an insurance carrier from scratch.
We've raised $7M, and we're looking to bring on a couple more talented engineers. Tech stack involves Ruby / Rails, iOS / Swift, and Javascript / React Native. Email me at [email protected]