dan_manges

Joined 18 years ago

Karma
566
Submissions
141
Member since
Sep 23
Co-founder of https://rwx.com – building a new CI/CD platform

Email me at [email protected]

View on Hacker News

Recent submissions

Comment · 1 month ago
Comment · 9 months ago
I've been working on this problem for the past couple of years. State of the art:

- 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]

Comment · 11 months ago
Hey! I'm one of the RWX cofounders. We don't have a self-hosted option yet, but we're interested in opening it up in the future. Our infrastructure is more complex to run than normal self-hosted runners infrastructure, due to extensive caching and provisioning optimizations.
Comment · 1 year ago
Comment · 1 year ago
There's a difference between small scale CI and large scale CI.

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

Comment · 1 year ago
RWX | Software Engineer | REMOTE (US) | Full-time | 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]

Comment · 1 year ago
GitHub Actions should use a lockfile for dependencies. Without it, compromised Actions propagate instantly. While it'd still be an issue even with locking, it would slow down the rollout and reduce the impact.

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.

Comment · 1 year ago
Checksums are a good use case, where you’re not worried about any sort of forged collisions and you want to calculate the checksum as fast as possible. Although cryptographic hashes are fast enough that there likely aren’t too many use cases where the difference in speed is meaningful.
Comment · 2 years ago
We're solving a lot of these problems with Mint: https://rwx.com/mint

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

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton