 Hi, everyone, everybody's still awake? More or less, let's see. OK, so who's working from home here? That's more than usual, but that was kind of what I was expecting. Who's working from a co-working space, or like a shared office, or something like that? Not that many, OK. And who is working from an office? OK, it's still the majority. Yeah, do you have something like this, like this? Maybe somebody saw this muscle, so you can do the private calls in your office? Or maybe what was also pretty famous a while ago was these horse-like glasses that you wouldn't see your co-workers and you also wouldn't hear anything to actually work properly in an open floor office? And who is this? Like, you work from home for one day a week, preferably Friday. OK, a few. Is it the slackening off day, where everybody knows you will take it easy? You do the laundry, you do whatever you want. Yeah, kind of, for some. Because I find it super weird. I generally work from home. And for me, working from home is not the slackening off day. It's not slackening off day every week. They are, in general. Working from home feels more productive than going to the office, but maybe I'm wrong in that. But I'll try to convince you. Let's see. So I work for Elastic, the company behind some open source products, which I have on the next slide. I mainly travel and talk about the stuff that we do and try to answer questions. So if you have any about our products, just come to me afterwards. Yeah, so we do elastic search and some other open source products. We are kind of large by now. We are around 1,200 or so, but it changes every week. It's very hard to keep track of. So maybe this number is already a bit outdated. And just to give you an idea, this was last week. This is just the new hires to see how many people join. And you can see, some days on one day, you have multiple people joining. It's just like pretty much chaos. And then everybody responds, like 20 or 30 people respond to every newly hired. So if you don't filter your emails properly, you have no idea what is going on anymore. By the way, I said, Elasticians, in the first slide, we actually had a vote on that. So at some point, our CEO kind of figured out we don't have a proper name, and we had a vote of how we should call ourselves. The first idea, it was not the first idea, but somebody came up with this to have the Elasticum rates, which depending on where you are in the world, it might be more funny than elsewhere. Some others were more like Mickey Mouse, and like Mickey Mouse ears, the Elasticity ears, where we have our logo in the ears as well. And what we generally do is everybody throws in various ideas, and then we just have a vote. These were all the ideas that we came up with, or at least all the ones I collected. My personal preference would have been Homo Elasticus, but unfortunately, that wasn't it, the one that we decided. So in the end, we voted, and we went with Elasticians, which is not the most creative one, but whatever. I think these numbers, where I'm not sure I made it plus, the only number where I'm pretty sure is the number of offices that we have. But countries, languages, and time zones, this is approximately what I think is correct, or what we gathered as a team would make sense. And having 19 time zones is already pretty painful, because it's always night for somebody, or weekend, or in Israel they don't work on Friday, but they work on Sundays, and it's very hard to keep everybody aligned and figure out who is available when and what works. We do have some offices, but those are mostly marketing and sales. For engineering, it's really wherever you are, generally from home. Maybe if we have an office in your city, you can come to the office, but a lot of people don't. For example, I think in Berlin, we have a small engineering office, and out of the 20 or so people that we have in Berlin, I think four are going to the office in general, and some of them are only going two or three days a week. But that's totally fine, everybody can work wherever they think they can work best. How did we get started by that? So these four guys, those are the founders of the company, and even they were distributed. So they were not in the same city, and that's always why we say this is kind of like in a company, DNA, that we didn't start with one office and then adding more remote people over time. It's really that even they were just spread out, like back then it was only Amsterdam and Berlin, but even they were not in one place, so everything was in writing and everything was in calls. And it was not like, oh, let's go for a coffee to make a decision, but it was a bit more a structured way, and we kept that as a company that allowed us to kind of like grow this distributed team so easily. We do not like the term remote, to be honest, because remote for us always means you have one central hub where a few hubs, and then you have remote people around that. And we don't think that works very well, or I know from some of other companies, like in Silicon Valley, they have their headquarters, and they have like 70% or 60% of the people working there, and the rest are distributed. And for them, it's often very hard to be part of the decision making process, because people just talk over coffee and make a decision like, it's not even planned, but it just happens when you talk to your colleagues in person, whereas since we are really spread out, there is no, oh, let's talk this over over coffee, but it's always a call, or always an email, or a GitHub issue, or however we come to a conclusion to something. And I think this is a major advantage that it's so broken up that you cannot really make that in-person quick decision by cutting off lots of other people. That's just not possible, basically. We do have something we call X-Cool, which is basically an onboarding week, so everybody who gets hired will go to Mountain View, where we have our biggest office. And this is one group, we run one of these X-Cools, I think every two months now. So this is two months of newly hired people joining, and then just figuring out how does the company works, and who is where, and what are even the positions, and what is everybody doing, and how do we work together as a team? So it's not for your specific technical function, it's more just like how does a distributed company work, or how does the company work in general, and a bit more about the values, and how we work together. We have something called Always On, which is basically every team has a video channel, and everybody can just hop on that video channel. And for example, the first day I joined, somebody said like, oh, come on, AON. And it's basically everybody's muted and streaming themselves working, and you don't feel that lonely sitting at home. You can just see your colleagues working. Don't pick your nose or do other stuff while you're on video, but otherwise it's very nice. Also, if you have a problem and need to help from somebody, you just unmute and then say, hey, Boas, or whoever you need, can you help me out with this? And then somebody else might see that, and might jump in and say like, oh, I know what you're talking about. And once you're done, you can mute yourself. Some people really like AON, others don't like it so much because it's too much activity for them, but it's at least an option to have your colleagues a bit closer by and see that everybody is working. We do have a lot of cross-team time as well. So for example, support has a call with the engineers every week and says like, these were the worst support cases we had this week. And this is causing us continued trouble. We probably need to fix this, or we have Fix It Friday, where we go through the open issues or some pull requests to just cut down on the number of issues and open pull requests over time because otherwise they grow without bound. And it's just the entire team or whoever is online gets together and works on issues and pull requests to cut down the number. Some teams have office hours where you can just pop in and say like, hey, I have a question. I want to talk to you or I have this idea. Let's talk something through. So people are available. It's not a requirement to be in the same office to actually have these. We do have release parties which might look something like this. So for example, you can see this is the product lead for Kibana or one of the product leads for Kibana. However, I must admit that the parties at home are not as good as in the office or it's maybe a bit different because you see, you get some bottle of whatever and then you start drinking it and then you see the other offices and the other people on video and for five or 10 minutes, that's fun. But afterwards, everybody goes back to work. But maybe this is more of a feature than a bug. I don't know, but the office parties sitting at home are kind of alone. The office parties are hard to compete with. I will admit that. People often ask like, what do you have like scrum? Do you have daily stand-ups? What do you do? Admittedly, we are not very strong on that. It's pretty much every team figures out what works for them and we don't have a company-wide approach or anything. Also because something like stand-up in the morning, if you have 10 time zones in a team, when would morning be for everybody? It's like you don't even get everybody on the same call so stand-up is kind of like a different concept. For us, at least in engineering, it's pretty much pull requests are the currency or the baseline what works for everybody. So if somebody starts working on something, you open the pull request maybe just for feedback or for the final code review and then depending on a team, one, two or three people will review that and then you start the discussion based on that. And that's the main process. Some teams have like two calls a week. Others have only a call every two weeks. It really depends on the team what you think what makes most sense for you as a team. We do meet twice a year in general. So we have engineering all hands where all the engineers get together. In fall, normally we do those in Europe. Like we were in Dublin and then we were in Prague and we were in Barcelona and Berlin. Like those were the last cities we did for the Paul event. And in spring, we normally go to the US. Sometimes sales is doing their own event because you know sales and engineering is just different worlds. Let's say it like that. Sometimes like this may we'll have a company all hands where we will get 1,200 or however many people we are. We'll get everybody in one place and then figure out what we'll do in the future. Probably not support because we figured out support is very hard to get to the same event because basically what you, since support needs to keep going what we would need to do is you fly in some support people early they start taking over while the other support people fly in. And then you need to do support in the middle of the night because well in Europe it's day but in the US it's the night and somebody will need to do support. And that is especially tricky if you get the entire company together since we don't see each other that much there's a lot of partying then and then somebody will do support at 3 a.m. in the morning. And then all the people who just came back from partying will storm the support room and cause havoc there. Like normally we have these nerf guns and stuff like that and then somebody is trying to do the support case and is being shot in the head with a nerf gun at the same time so that's very tough for support. So support they often do their own support thing and then the engineers will take over support for a week everybody from home and it's easier for everybody to do that. We do have some values. I'll just pick out six values from the tech side and three from the people side but we have that as a public document and it's actually pretty interesting and that drives a lot of the engineering decisions that we do. For example, progress over perfection like we had the problems in the past where we had some caching layer we implemented that and technically this was really good but then the discussion or the bike shedding started of like when should the caching kick in? Like how many calls should be needed until we start caching something and then some people said like 10 and somebody else said a thousand and at some point you just need to make a decision and it might be wrong and you might need to reevaluate the decision later on but at some point you just need to make some call and rather than stall and keep discussing forever we would have progress over perfection it might not be the perfect solution in the end but it's at least some place to get going. That's probably the classic that everybody is trying to do but it's very hard to achieve to leave out needless abstractions and design for today but we always say like okay do we have a specific use case? Do we solve an actual problem? Or is it just like some ivory tower that we're trying to build here? Obviously everybody is trying that but yeah, we're trying as well. If possible and we don't know if the feature will really work out well in the future we try to build it in isolation and probably only have it as a plugin because something is merged into master is probably there forever. Maybe not forever but probably very long term and it's very hard to get something out again. So if possible build something in isolation. This one is not very popular for upgrades because sometimes to figure out especially when support says hey this is broken and this is just not working correctly we might remove a feature without having a replacement which we know is not great for the upgrade experience but sometimes we just want to avoid the issues and not keep suffering through it and we might reintroduce the issue later on but in the meantime it might just be gone. We had that for example, we had dots in field names we removed that then we brought them back but with a totally different re-implementation but to avoid the problems around those we just had to remove the feature first. People were not happy but we think it's the right way forward that sometimes you need to break stuff to make progress. Yeah, we'll only accept stuff that scales. If you have a nice solution that works for like 10 gigabytes of data but will totally fail over for 500 gigabytes we will not merge it. We had some very nice pull requests which had exactly the issue and they never made it into the product. Yeah, fast. If you have to pick a default the default will be fast and you can probably tune it for more accuracy so slow is often optional like we would rather lean towards this fast use case because we assume that's what you want in most cases but maybe you can tune something to be slower and that makes it kind of optional. Yeah, on the people side it's like be kind which is kind of obvious especially if you don't see each other that frequently it's very hard to get the wrong impression of somebody and always just assume the best. Also if somebody is arguing very passionately for something assume that it's because they're so invested in the product and everybody who argues passionately it's like because they want to make the right thing and want to make progress it's not because they want to fight but because they genuinely want the best and you should always assume that when positions get heated. What we don't tolerate is any abusive behavior. We had some very good engineers who had to leave the company unfortunately because stuff just didn't work out but it's sometimes better to make like the hard cut at one end than five other people leaving the company because somebody keeps being abusive. Never a nice call and luckily I don't have to make those but we had issues like that. My personal experience the first thing is that when you're trusted like I was made admin of the GitHub organization the day I joined which was a bit scary and somebody once deleted a major repository from GitHub accidentally because they thought it was their own clone. Not everybody has admin rights anymore I gave up mine as well. By the way GitHub can restore those. So if anybody deletes a repository those can be restored by GitHub again as well. Generally what my manager always tells me or my team lead is do the right thing like just figure out what makes sense for the company and for you and then do that. I'm not going to tell you what to do just do the right thing which is not making it easier admittedly especially if you don't really know where you're going just telling somebody do the right thing it's sometimes a bit tricky but in the long run it also gives you a lot of power to kind of figure out what is the right thing. Oftentimes people volunteer to do stuff sometimes you're being a volunteer. So for example sometimes there is like some necessary but very annoying refactoring for example to do stuff and if nobody wants to step up to do that somebody has to be talked into it. Let's say like hey you got to do this thing for three months but you will get to do something more fun afterwards. So it's always a bit of haggling and getting people to do that. We try to keep communication open and public which can mean pretty much this is the so-called death calendar. These are all the events that we have on that so you could do calls all day long. If that is a good investment of your time it's a different story though and I try to stay away from as many calls as possible and you can see this is European times since we have most of the engineers in Europe and the US it's very much afternoon heavy so you could do the entire afternoon of course. And new products join the family like that's also how we grow but also how lots of other companies grow like you try to find innovative creative good products to join the family and enrich everybody. However to the distributed nature of teams there are definitely downsides. One of them are time zones are a pain like I have a call that is alternating between 6 a.m. in the morning and 5 p.m. and 6 a.m. is really not my time but sometimes you have to suffer so they're not always the same people have to suffer like initially we often had it that since we had fewer people in Asia they would always get the crappy calls like at 3 or 4 a.m. their time zone but it's really not fair in the long run to always make the same people suffer it's not good as a team. So we try to share the pain of time zones or the joy of time zones. Communication can fail, you have to admit that. Our lesson is pretty much like if stuff gets heated jump on a video call to figure it out quickly and cultures are just different. What might be funny in Europe might be totally inappropriate in the US so you should kind of figure out what works for everybody. Also sometimes it would be nice to lock everybody in the same room and say like you stay here until you come to a conclusion. With all the different time zones and then people having to pick up their kids at different times, sometimes decisions just drag because after one hour of a call you haven't made a decision but somebody has to pick up their kids. You cannot tell them well leave your kids at the school. And then the decision gets postponed another week so stuff can sometimes drag a bit. It's just the downside. People often ask about tools that's not super surprising. We use Slack even with a new logo and Zoom for the video calls because it's the only thing that we found to really scale like to 500 people in one call or so. For asynchronous communication, GitHub and lots of emails. My main thing for emails is lots of filters. This and many, many more otherwise you will just run an email. We do have team, tech and product leads together. We don't have a dedicated product team. They are part of engineering now. For example, for Beats, the lightweight cheapest that we have team, tech and product lead and they are kind of working together to figure out where the product is heading, who needs to be hired, what tech decisions are being made and they will work that out. What we found very helpful is to have an overall stack lead since we have so many products. It's nice when everybody pushes in their own direction but sometimes you need to kind of get everybody on the same picture and have to create a vision and make everybody push in one direction together. Hiring can be interesting. For us what is very important is not so much, we don't like to turn soft skill, we would rather call it professional skill, especially if you're in a distributed team, communication is very important. If you cannot properly communicate with your colleagues, it's very hard if you're sitting at home alone somewhere because it's not going to work out in a long run. We don't like these, we don't really care about your age or your background or anything. We do get a lot of CVs, like HR told me they got 30,000 CVs in the last quarter and we try to improve or you get even more to find more suitable candidates. Yeah, like everybody else, we don't do like how many golf balls fit into a jumbo jet or something like that because we wouldn't know either. Growth has been pretty fast, like you can see it took us from going from five to 600, it took us five months, but since being 700, we have pretty consistently hired 50 people every month and so it always takes us two months to add 100 people and we don't have any intentions of stopping I think, so we'll be another 50 every month in the future. And now people are saying, okay show us the perfect numbers, why is working from home or in a distributed team so much better than working from an office? Unfortunately, I don't have those perfect numbers and like Bilbert always says, or Bilbert often says it best like you could make those up and then everybody would believe it. So I didn't make up any such numbers. What I do have, this is from some quarters back, this is like how many people joined in one quarter and how many people left and for us, it's not the perfect number but this is a good indicator as long as the ratio of join us in contrast to leavers is that high, we feel like we're on the right path for that. So to wrap up, somebody was once nice enough to draw all of this, I'll post the slides afterwards so you can have the conclusion in there but this is what we've pretty much discussed. We even went public being fully distributed so even that is not stopping you as a company. And finally, who still wants to work from an office? I don't know, a few still raised their hands. Who wants to work from home? Okay, for me personally, I would have had very hard time going back to an office I must admit. I have a hard time imagining it right now but maybe it might be because I'm not sure. Obviously we are hiring but everybody is hiring so when you knew that, any questions? And I think we have three minutes left for questions. I'll try to repeat if anybody has questions. Did anybody work from home and wanted to return to an office? I would be curious. Okay, that's three. Okay, to see people? Okay. Okay, to see people. Well, we're always curious how it works out for others. For me, like when I go to some company and see their open floor office and see like everybody walking around and everybody chatting, I'm like, how is anybody getting anything done here? Maybe I turned into the office grinch by now and just want to sit by myself in the corner. No questions? Okay, if you want to have some stickers from us, I have a couple of stickers over there, grab them. Otherwise, if you have any more questions, just come to me afterwards. Thanks so much.