HNHacker News
TopNewBestAskShowJobs

rgarcia

1,350 karma · joined April 7, 2009

Co-founder & CTO at Kernel (S25)

previously the same at Clever (S12)

https://github.com/rgarcia

https://www.raf.xyz

submissionscomments
rgarcia··on How to make firecracker faster to start Chromium in < 20ms
Linux userfaultfd is fascinating and seems like a slam dunk when running a large fleet of mostly homogenous VMs. For a kernel feature that's been around for over a decade it's surprising how little content there is out there about how it's used in practice, so great to see this post.
rgarcia··on WebMCP Proposal
This is great. I'm all for agents calling structured tools on sites instead of poking at DOM/screenshots.

But no MCP server today has tools that appear on page load, change with every SPA route, and die when you close the tab. Client support for this would have to be tightly coupled to whatever is controlling the browser.

What they really built is a browser-native tool API borrowing MCP's shape. If calling it "MCP" is what gets web developers to start exposing structured tools for agents, I'll take it.

rgarcia··on The AI coding trap
The article assumes that AI coding is thoughtless, but prompting is writing, and writing is thinking. If you approach AI coding the same way as regular programming, your thinking phase involves crafting a prompt that describes your thoughts.
rgarcia··on Show HN: We Put Chromium on a Unikernel (OSS Apache 2.0)
It snapshots / pauses the entire unikernel instance after launching chromium, and then resumes the instance in <20ms with exactly the same state.
rgarcia··on Docuseal: Open-source DocuSign alternative
Another method you might consider implementing would be identity verification via SMS code. I've experienced this with docusign: https://support.docusign.com/s/document-item?language=en_US&...

It requires you to know the phone number of the signer, but for important stuff you typically do.

rgarcia··on Amazon Kinesis Firehose – Simple and Scalable Data Ingestion
The closest thing I could compare it to would be services that make it easier to get data into Redshift or S3. E.g. segment.io's redshift product: https://segment.com/redshift.
rgarcia··on Nomad, a cluster manager and scheduler
Also, their messaging seems a little disingenuous. Otto talks about how important it is to support microservice development and deployment, but Nomad lists as a con that Kubernetes has too many separately deployed and composed services.

This is consistent with a (reasonable) belief that microservice architecture is an important design pattern to support, but may not be the best approach for all problems. From reading the docs, my sense is that Nomad takes the position that for a cluster scheduler, fewer moving parts leads to lower operational overhead, which outweighs any benefit that microservices may bring. E.g., it's more difficult to deploy a microservice platform like Nomad if the platform itself is deployed as a set of microservices.

rgarcia··on Wealthfront: Silicon Valley Tech at Wall Street Prices
Here's my understanding: if you use Wealthfront direct indexing, you mostly hold stocks, so you pay a minimal amount in ETF fees. This means your expense ratio is pretty close to the Wealthfront fee of 0.25%.

If you put everything in a Vanguard target retirement fund, your expense ratio is something like 0.18%. [1]

So as long as tax loss harvesting adds a tiny fraction of a percent (~0.07%) to your returns, it seems optimal to use Wealthfront, no?

[1] https://personal.vanguard.com/us/funds/snapshot?FundId=0699&...

rgarcia··on Aviator: locally launch a service and all its dependent services
The problem of keeping this kind of configuration up-to-date is an interesting one. I'm curious if anyone has tried encoding the local development configuration in how they run integration tests so that it never falls out of date.
rgarcia··on GitHub unveils its Licenses API
I open-sourced a tool a few days ago that lets you do mass modification of git repos, including (but not limited to) adding license files: https://github.com/clever/gitbot. I've used it to add licenses to close to a hundred repositories at Clever. Would be great to see if others find it useful.
rgarcia··on Show HN: Essential React, a minimal skeleton for building React apps using ES6
I had to learn how to use gulp and npm and browserify and and and ohmygodthelistgoeson,...

My point is that you shouldn't have to learn a long list of tools in order to learn the underlying framework the project is trying to introduce.

I can easily remove stuff I don't need, even when I don't know how it works. But adding JS tooling myself? What a disaster.

Really? I've walked in on quite a few existing gulp/grunt/insert-latest-hotness setups and found them incredibly hard to follow (let alone unwind) without a solid understanding of these tools.

rgarcia··on Show HN: Essential React, a minimal skeleton for building React apps using ES6
As few tools as possible (no task runners, etc...)

:thumbsup: to this sentiment. Whenever I see a "skeleton" starter project that includes tooling that could easily be added at a later date, I usually close the tab.

I think people forget that skeleton projects need to serve an educational purpose to newcomers. Each additional framework/tool that you throw into the mix compromises the skeleton's ability to do that.

rgarcia··on Building Microservices the Lean Way, part 2
You should check out a tool we built to solve this problem at Clever: https://github.com/clever/aviator

It lets us spin up a service + all dependent services locally with a single command.

rgarcia··on When your IP traffic in AWS disappears into a black hole
sorry about that. It's fixed now!
rgarcia··on Show HN: Csvlint.go, command line tool for validating CSV files against RFC 4180
Cool that you can download this as a standalone binary for OSX/linux/windows! Nice work
rgarcia··on Ask HN: How do you test your work?
You may want to take a look at Rainforest: https://www.rainforestqa.com/
rgarcia··on Move Fast and Break Nothing
> What do you consider good feedback? How can you promote understanding and positive approaches in your criticism of the code? How can you help the submitter learn and grow from this scenario? Unfortunately these questions don't get asked enough, which creates a self-perpetuating cycle of cynics and aggressive discussion.

I'd be really interested to hear how teams codify this. To the extent that it's possible, I think feedback should be rooted in objective measures, e.g. styleguide/lint violations, test failures, etc. All too often, though, there are subjective things that come up: organization of code, interface design, using framework X instead of framework Y. These are the criticisms that most often lead to aggressive back and forths.

rgarcia··on The Best Tool for the Join: Scaling Node.js with Unix
To some extent we knew that in-memory joins would eventually cause problems, but we were certainly surprised at how quickly Node memory usage became the bottleneck. Here's a little gist I used to test it a while ago https://gist.github.com/rgarcia/6170213.

As for your point about premature optimization, in my opinion a startup's first priority is getting something in front of users in order to start improving and iterating. The first version of the data pipeline discussed in the blog post was built when Clever was in 0 schools, so designing it to scale to some of the largest school districts in the country would have been fairly presumptuous.

rgarcia··on The Best Tool for the Join: Scaling Node.js with Unix
If you think improving education with tools backed by years of unix wisdom is interesting, we're hiring! https://clever.com/about/jobs#engineer-full-stack
rgarcia··on Ask HN: Idea Sunday
Something to help teams rotate passwords on regular intervals. E.g. I want everyone to rotate their Heroku/Google Apps/Github/etc. passwords every 6 months, or maybe after a major security event (like Heartbleed). Right now it means sending out a Google Doc for everyone to check off.

Bonus points if it has some way of verifying that passwords were actually changed and the new password is strong.

rgarcia··on Iterators in Go
Pattern 5: use the iterator pattern that Go ships with, e.g. in sql.Rows: http://golang.org/pkg/database/sql/#Rows.
rgarcia··on ASCII Delimited Text – Not CSV or TAB delimited text
How about everyone just started following the CSV spec? https://tools.ietf.org/html/rfc4180

Doesn't allow for tab-delimited or any-character-delimited text and handles "Quotes, Commas, and Tab" characters in fields.

rgarcia··on Getting Started with Docker
Synapse has the ability automatically discover docker containers and configure HAProxy: https://github.com/airbnb/synapse#docker.
rgarcia··on U.S. Patent #6,895,557: Web-based media submission tool
Twitter recently got sued by a patent troll claiming infringement of this patent: http://www.summit6.com/summit6_feb_2014.pdf.
rgarcia··on Ask HN: Who is hiring? (March 2014)
Clever - San Francisco, CA - Full time & Summer Intern

Clever helps schools bring digital learning to the classroom. We take care of the massive amount of data that needs to move behind the scenes, letting schools focus on using technology to improve learning.

We're hiring engineers - full-stack generalists, as well as specialists in security and infrastructure.

Join a small team (20, half engineers) that's on to something big. Over 1/9 schools in the US use Clever today. Most development is in Javascript, Go, and Python.

Learn more & apply online: https://clever.com/about or send me an email if you have questions (raf@, I'm cofounder/CTO).

rgarcia··on The Engineer Crunch
"If someone performs and earns their grant over four years, they are likely to increase the value of the company far more than the 1% or whatever you give them."

This argument seems flawed. If I think someone is going to double the value of my company, should I be comfortable giving them up to 100% equity? Put another way: percentage growth of your company from an early stage to some point in the future most often exceeds 100%.

rgarcia··on Docker will change everything
Indeed--it's a lightweight alternative with a better deployment story IMO. A bunch of containers running on a set of hosts is easier to manage than a virtualization setup.

Here's a simplified version of the dockerfile template we use: https://gist.github.com/rgarcia/7917826. It basically outsources all of the work to a salt state.

rgarcia··on Docker will change everything
Dockerfiles are basically Docker's way of doing config management. Pros: docker caches every step of your Dockerfile, so iteration is fast. Cons: Dockerfiles are basically glorified shell scripts. At Clever we basically have a single Dockerfile that calls our existing Salt setup, and so far it's worked decently well.
rgarcia··on Web Scraping a Javascript Heavy Website: Keeping Things Simple
I used to use the network tab for stuff like this, but now I almost exclusively use mitmproxy[0]. Once things get sufficiently complicated, the constant scrolling and clicking around in the network tab feels tedious. Plus it's difficult to capture activity if a site has popups or multiple windows. mitmproxy solves these problems and also has a ton more features like replaying requests and saving to files. My ideal tool involves something that translates mitmdump into code that performs the equivalent raw HTTP requests (e.g. using python's requests). Sort of like Selenium's IDE but for super lightweight scraping.

[0] http://mitmproxy.org/

rgarcia··on Linux 3.9 introduced a new way of writing socket servers
This seems very relevant to people using Node, considering it has basically standardized around the "pre-fork" [0] model as a way to use more than one core. It'll be interesting to see where this goes.

[0] http://nodejs.org/api/cluster.html

Page 1 of 6Next →