We are joined by Ives Hoorne, a developer at Catawiki and creator of code sandbox. Today he talks about how he began writing code, how Minecraft modding made him love it, his interest in the company Catawiki and how he taught himself web development to work there, and finally the future for his projects.
Ives began coding at 11 years old. He was fascinated by secret languages, so he and his friend made a program in Visual Basic that would jumble text and another that would decipher the text. They would send these to each other as public facebook messages. It fell off after this project for awhile. After a few years, Ives got back into it when Minecraft came around, and he started writing mods for it.
The success and popularity of Code Sandbox made Ives happy. He enjoys how it became popular and how some of the bigger names such as Dan Abramov started talking about it. Though Ives discussions about how this positive feedback caused him to attach his self-worth to the project, and how he had to let that go so he wouldn't be hurt by snarky feedback and other forms of negativity related to his project.
There were a couple of surprises in the development of Code Sandbox. Code Sandbox stores all files and directories in their Postgres database. When they fork Code Sandbox, they copy all the files, directories, and sandboxes over. Ives thought this wouldn't scale but somehow they now have 400k sandboxes, and the database is only four gigabytes! One of the negative surprises was when there was an error in the sandbox when someone tries to share their sandbox, the preview service would try over and over again to take a snapshot. The following month their hosting bill was a dozen times the price as it usually was!
Ives' first experience speaking at a conference was much better than he expected. When he was presenting, he noticed that he was talking with a bunch of people who were willing to listen to him. It was such a cool experience for him that he now loves speaking at conferences for him. Ives says he wants to start talking about things besides Code Sandbox, such as UI driven development for example. He says that it can be greatly improved, npm installing is still manually typing npm install package-name. He says that this can be made much better by being able to search for dependencies and directly add them with a single click.
Finally, Ives talks about his plans for Code Sandbox. He plans on adding a dashboard because currently, it's very cumbersome to navigate to your sandbox. The dashboard will give you the ability to put sandboxes in directories organizing them that way. They are also managing offline support. Finally, they are adding team support so multiple people can all work on a sandbox at once.
Ives: Hello everyone. Yeah, my name's Ives. I'm a student at the University of Trent and a software developer at an auction website called Catawiki. Oh, and I built an online editor called Code Sandbox.
John: Which is the best online editor out there. Just he's too humble to say so.
Ives: Thank you.
John: That's how Ives and I met. And as I started using Code Sandbox and we use it a lot on Egghead as far as being able to host demos and importing directly from Get Hub into Code Sandbox. I kind of bug him sometimes on Twitter if some new view feature isn't supported. So how did you get started in development? What was your first experience with writing code and [inaudible 00:00:48]?
Ives: Oh, that's a pretty interesting question. So when I was much younger, when I was eleven or something, I was very intrigued by secret languages. So that I could exchange messages with a friend and no one else could read them.
Ives: So my first, kind of project was building a translator that would take normal text, and give you back something that was not readable, and then if you put it in the other translator, then it would give you normal text again. And so we started sending each other Facebook messages, public Facebook messages with this secret language. So that was my first experience with programming.
John: Interesting. What sort of language or I don't know, what did you use to build that?
Ives: That was in a visual basic.
John: Yeah, okay.
Ives: Very old language.
John: Yeah, I mean, I know most of... A lot of people's first experience is just writing scripts inside of Excel. You know, updating values and spreadsheets. They don't realize they're programming, but you know, you are.
Ives: Yeah exactly.
John: But it is.
Ives: Yeah, that's actually true.
John: So where did it go from there? What was your first job?
Ives: Okay, so after I built this translator, I stopped programming. I didn't program for a couple years. Then Minecraft came along and I started building Minecraft mods, and that was my first real proper introduction to programming. I started programming Java, and later on I saw a company called Catawiki. So that's where I'm also currently working. I was really enthusiastic about this company. I definitely wanted to work there, so I started learning web application development. I started learning angular, and I built a portfolio page. And normally portfolio pages shouldn't take that long, but I spent like four months on building that portfolio page so that I would get a chance of working there.
Ives: So I sent that to them, and they asked me if I could work there for ne year, full time, and it was right after high school so I took a leap year. I worked there for a year, and then I started going to university, and that's when I started building Code Sandbox. So that's kind of been a global view what happens in the past.
John: Oh, interesting. That's a pretty quick jump from Minecraft mods to web development. What was so appealing about, did you say Catawiki?
Ives: Yeah, so Catawiki is an online auction website, which sounds very boring, but it's pretty cool because they have very Polish flow of when you submit an item, auctioneers check it and really weird items get submitted as well. It's like high quality. So the first script of Game of Thrones was auctioned there, some hair of Napoleon, a skeleton of a dinosaur is auctioned there. But the thing I found most interesting was that I lived in this very small city where nothing happened, but Catawiki was based there, and it was the fastest growing company of the Netherlands. And later on, the fastest growing company of the world. That all happened in this super small city, so I was very intrigued by this company, so I wanted to work there, to get the experience of like a fast growing company.
John: Cool. That's awesome. So you're mostly... Can I ask what your education was like as far as learning? Did you buy a bunch of books, did you just trial and error?
Ives: So I'm the type that likes to learn by trial and error, so if I wanted to learn a new language, then I try to find a project built with that language. So I learn that way, and that's actually also why I built Code Sandbox, I wanted to learn Elixir and Phoenix. Elixir language, so I built Code Sandbox with backgrounds in Elixir and Phoenix.
John: That's a very ambitious project to learn a language around.
Ives: Well, to be honest...
John: Usually I'm like, I will built tick-tack-toe.
Ives: Yeah, that's true. But actually when I started building Code Sandbox, it was supposed to be a component editor. So I never started Code Sandbox with the idea of building this online web application editor.
John: Right. Well here you are though. That's pretty crazy. So Code Sandbox has been around for how long now? A year and half? Two years?
Ives: A year and a month, currently. Yeah.
John: A year and a month? That's it?
Ives: Yeah, so we released it at the beginning of April. So one year and a month. Almost one year and two months now. Yeah, lots has changed in the past year. So much has changed.
John: So what's that been like, writing the... I mean, it's an amazing product. What's that been like, kind of writing the success of a project like that?
Ives: Well, it's interesting. When we released Code Sandbox, it got much more popularity than I initially expected, and that was really cool. I was super happy with the result of that, and people started giving very positive feedback and people started using it, and I was very happy. Also people I looked up to, like Dan Abermostar started Tweeting about it.
Ives: But people also started messaging me because of Code Sandbox, and at some point I felt that people started to like me because of Code Sandbox. So I attached my self-worth to Code Sandbox. So whenever Code Sandbox would do good, then I would be very happy. But when someone would leave a snarky comment on Code Sandbox, then I would kind of feel sad.
Ives: I didn't realize this until six months after Code Sandbox released, and that's when I learned to work with separating my emotions kind of from Code Sandbox. But not too much that you don't care, but enough that you don't get hurt by people that leave bad feedback. For example, like negative feedback on the product.
Ives: But it has been a rollercoaster. It has grown so much and especially the last few months, more and more people are using Code Sandbox, and we are getting more and more emails, so that is super cool.
John: Awesome. So what was the first language or first framework you supported on there? Was that...
Ives: Yeah. We initially supported React, and we wanted to focus on React only at the beginning to keep our, kind of scope low. So that I wouldn't have to build a lot of stuff and get too much feedback on it.
Ives: So first, on React when we thought that React was polished enough, we started expanding to, for example few and react.
John: So did you know React before building and editor for React? Was that your primary focus? Okay.
Ives: Yeah, I knew React before I started... Actually that was the reason that I built Code Sandbox because I was on a vacation to a village St. Ives. I was still working full time for Catawiki at that moment, and I got a lot of questions from a co-worker about React, but I didn't have my MacBook with me. So I wasn't able to answer the questions, so that's when I started thinking like, what if I would have my locally [inaudible 00:08:04] environment everywhere. And the next question was, what if I put it on the web. So that's kind of the spring of the idea of Code Sandbox.
John: You're so much more ambitious than I am.
Ives: I mean, the crazy ideas are always the most fun to work on, right?
John: Yeah, that's certainly true. What was the initial tech stack of Code Sandbox? Was it React and Elixir? Was that...
Ives: Yeah, so we had a React front end, then the preview was in vanilla java script as a separate application. And the back end is an API with Elixir in the front, and we used Postgres as database, and Redis for some caches. Later on in development, we started adding some simple microservices that were written in Note.
Ives: And that's our current tech still.
John: Okay, so you're still in the same tech stack. What sort of surprises or disappointments, or weird things have happened kind of along the way?
Ives: Well, the surprising thing is, is that we save all files and directories in our Postgres database, and when we fork, we literally copy all the files and directories and Sandbox over. I was expecting that this wouldn't scale, but we now have like 400 thousand Sandboxes and the database is only four gigabytes in size. Which I still have trouble believing because we have 2.5 million files stored in there.
Ives: But it scaled surprisingly well, and I have [inaudible 00:09:42] reason to kind of de-duplicate code works in a database. So that's a really cool thing.
John: That's a pleasant surprise. You were expecting it to fail, but it's what stood the test of time?
Ives: Yeah, exactly. It was... Yeah, it's much better than I expected. We also had a very big surprise in a kind of negative way. Later on, we created a service that would take screenshots of Sandboxes. So when people would for example, share this Sandbox on Twitter, then we would show a screenshot of the preview. But the problem was, when a... We did this with server less functions, by the way. A server less function would take a screenshot. But the problem was, when a Sandbox would have an error, then the server less function would run for like 300 seconds, and then try again over and over. So suddenly we had a bill of like five hundred dollars on hosting costs, while it should be like forty dollars for the screenshot. So that was kind of a negative surprise. But it was a bug on my side. I should have just had it fall back to a different image when the Sandbox fails to load. But yeah, that was a negative one.
John: Yeah. Bugs that actually cost money are the worst kind of bugs.
Ives: Oh yeah. Those are the worst. Or bugs that bring the servers down and such. That's also very gnarly.
John: So what's the experience been like speaking at conferences? How many... Was React Europe your first one or did you speak somewhere before then?
Ives: Yeah, I spoke at... My first stop was in October at Cybe Day Berlin. So I had to say a hosting company, but much more than that, they have shown many open source projects, including Next.
Ives: And I got asked by Guishermo somewhere in August to speak at the conference, and I had never spoken at conferences before. So I immediately got nervous already, but I decided to accept the request regardless.
John: Yeah, you gotta go for it.
Ives: Yeah, right. The experience was so much better than I expected. I was nervous for it, like two weeks before a conference, I was already nervous. And I would get extra nervous when I saw other people presenting. But then when I started presenting, I noticed that it was just that I was talking to people, and they were listening, and they were willing to listen. That was such a cool experience that I now love going to conferences. So I've done some other conferences after that, and recently React Europe, which was also very cool. But yeah, conference speaking is actually much more fun than I initially anticipated.
John: Yeah, it's a completely different experience when you're the expert on the subject. For example, like you could teach and talk about Code Sandbox because you're the one who built it, right?
John: So you're completely confident in what you say because you're the one who put it all together.
John: I think a lot of people fear the conference because they're not the person who built the thing, and they'll get up on stage and realize well, maybe I don't know everything. Maybe someone's gonna say I'm wrong. Maybe I'll state a fact wrong, and then someone will quote me, and then you can get all these concerns because you're not the person who did the thing. But like you, I think it's much more comfortable.
Ives: Right. It's also super nice to talk about something you've built yourself, because you are enthusiastic about it.
Ives: And you're kind of dying to show other people what you've built. And that's very nice. But still, I think that talking about some other concept, yeah I can very much see that it would be very scary. But I think it could also be kind of good excuse to get really good knowledge in that field.
Ives: I'm actually planning to... I want to speak more about other things and just Code Sandbox because now I've only done conferences about Code Sandbox. But in the future conferences, I want to talk about things like developer tools driven by UI, for example.
John: Oh cool. I'd watch that.
Ives: Oh, thank you. Thank you very much. That's something that can be improved by a huge margin.
Ives: People are now using the terminal and their code editor, and with Code Sandbox, we're already trying to make it a bit better. Like, we have a UI for almost every configuration and for every action that you can do. But this hasn't happened in the local development yet. For example, MBM Installing is still MBM Install or yarn add. While a UI would be perfect for this. While you can just search for a dependency and add it with a single click.
Ives: That's something that I'm very enthusiastic about.
John: Yeah, for sure. That'd be pretty cool. Can't wait to see it. If anyone's listening and they've been offered to speak at a conference, I think you guys will back me up on this.
Ives: Absolutely. Yeah.
John: Just go and do it. Because it will open up so many opportunities. You'll meet a lot of great people.
Ives: Oh yeah.
John: It's an awesome experience.
Ives: Yeah, that's one of the best things, meeting so many people. Especially if you're an introvert. Normally when you are at a conference and you need to approach people and talk to them and introduce yourself. But when you've given a talk, people will approach you. So if you're an introvert, that's kind of the perfect opportunity. And you meet so many cool people. I think it's one of the best things that I have done in the past year, speaking at a conference. Not just because of the content, but also because you have... It's a whole new experience, and I think everyone would like it.
John: Yeah. For sure. So do you have any future plans with Code Sandbox or other things you want to share?
Ives: Oh yes. Yeah, yeah, yeah. We're now working on a dashboard. Because managing Sandbox is super cumbersome right now. You have to go to your profile, and then go through a list of Sandboxes. So we're working on a dashboard where you can put Sandboxes in directories, and organize them that way. That's one of the biggest things. We're also working on offline support, so that you can use Code Sandbox without a network connection and create new Sandboxes. That's a second thing we're building.
Ives: And we're building team support. Because there are many companies that are interested in using Code Sandbox that they have a team at the company, and everyone wants to edit the same Sandbox. And we want to make that possible, so we'll add teams to Code Sandbox as well.
John: Wow, that sounds great. At what point does this become a full time job for you? I mean, it seems like...
Ives: It's kind of full time for me already. At my study, I'm not applying for lectures anymore, so I have around forty hours already to work on Code Sandbox.
Ives: And we even started hiring someone from May, full time to work on Code Sandbox. So it's really starting to become something bigger than the site project.
John: Yeah, it certainly deserves it.
Ives: Thank you very much.
John: Yeah, no problem. Any future conferences or places people can catch you at, or meet you, or say hi?
Ives: Next week I'll be at a conference called Fuge S Barcelona.
Ives: After that, I'm actually not planning to go to conferences just yet. But I'll be moving to London at the end of June. So if people are in London, and ever want to meet up, that would be super cool.
John: I'm sure there's some great meet-ups there.
Ives: Oh yeah. Yeah, I've seen so many messages already for meet-ups in London. That's super cool.
John: Awesome. Well, thanks for chatting with me today. It's been awesome talking to you. We've chatted a lot on Twitter, but never in person.
Ives: Yeah, that's right. It's likewise, was great talking.
John: And thanks for listening everyone. Everyone out there have an awesome day.