Ok, I first became a software developer when I took a class in high school on turbo pascal. We split into teams and built a Yahtzee computer game. Our game was not the best, but it was lots of fun and I decided I wanted to do this for a living.
I’ve been coding and talking about coding ever since. I’m still sometimes shocked that I get to do this as a living.
Building software is hard, particularly developing a quick build pipeline. It’s important to have a good development workflow with fast feedback cycles and as software gets more complex, building it and testing it also gets more complex.
Earthly is a free tool for simplifying building software. It’s like a modern version of a makefile and it can help simplify the software development lifecycle. Longer-term we have lots of ideas for improving the software development workflow. I want software development to stay as fun, and fluid as it was back when I was building Yahtzee.
was frustrated with continuous integration. Things break. They don’t work the same way they did locally or worse they work in CI but not in production. Developers are really starting to take operational concerns seriously but continuous integration is still stuck in an old model of development.
He had previously worked at Google and knew Google had a solution for this with Bazel / Buck. But their solutions are very tied to how Google does software development. You need to have a monorepo. You need to vendor all your dependencies into that mono-repo and generally, you just have to approach source control and builds in a way that is very different from how open source development is done today. It’s a powerful approach, but an intimidating approach.
And so the idea was born. Create a modern build system that is powerful but down to earth. And with that Vlad started working on the tool that would become Earthly.
The thing I love about our team is we all see the problems with the software development lifecycle that we want to improve. One of the unique aspects of working on a dev tools startup is we are all our own customers.
We also all have different professional backgrounds which gives us a great cross-section of product feedback right without our own team. But the thing that makes us perfect for solving this problem is our focus on execution.
I’m honestly not sure. I’ve been playing a lot of Mario Kart and watching the Olympics lately but I’m not sure they could occupy me full time. I love to code and to talk to developers about building software so I think I would be doing something related to those.
We have a couple of key metrics that are important to us. One is how many users have downloaded earthly and used it more than five times. If you’ve used earthly that many times, you are probably starting to get the benefits of reproducible builds.
Another metric is how many people join our slack channel and ask questions. We know lots of people use Earthly without ever joining our slack channel, but if you jump in and ask a question or request a feature or say hello then we really know you are an engaged user.
The most exciting thing for me is just talking to people who are using Earthly and really getting it. When the power of unifying local development with build servers in a repeatable way clicks for people it is a great moment.
I’m very excited about LLVM and the Cambrian explosion of programming languages it’s enabling. Julia, Rust, Swift, and the one that has caught my interest lately is Zig. Zig was created by Andrew Kelly because of some frustrations he had with C and now he has managed to build an organization around it that enables him and some others to work on it full time.
I like the aesthetics of HackerNoon and the mischievous and whimsical tone of some of the articles.
Hmm… Does it need to be advice my 21-year old self would actually agree to? Can I give him stock picks? Buy AAPL and some bitcoin.
I would probably just advise him to keep working hard and enjoying life.
I learned about Overlearning. There was a research study that went something like this. Researchers wanted to find out how various methods of learning affected knowledge retention. They used an algebra class to test this and after followed up to test the retention of the knowledge.
The surprising thing was that people who retained the most had one thing in common. They took calculus the following semester. They couldn’t forget Algebra because they needed it to do well in calculus.
The thing I took away from this was that if you want to learn something and retain that knowledge you should learn much more deeply than your immediate needs. The best way to truly understand algebra is to take calculus. So push beyond the surface level understanding when you are learning something.