What is it like working for Elastic?


I am wondering what employee backgrounds are like. Do you need a CS degree? What is a typical day like for everyone? I'd love to hear about it.

(Mark Walkom) #2

Awesome question :smiley:

I'm mostly self educated, been using open source for ~20 years and been involved in various online communities for longer than that. I've been at Elastic for almost 3.5 years and am part of the Developer Relations team.
My typical day includes things like meetings or watching meeting recordings that happened overnight, watching Discuss/Twitter/IRC/Reddit, coding various (internal mostly) projects, making PRs and raising issues on our product code, working with team mates on events (conferences, meetups, affinity groups etc) both local and global and a bunch of other things related to the role.

Globally though, we have people from massively diverse backgrounds. Neuroscientists, astrophysicists, champion axe throwers and waaaay too much other awesomeness for my poor old brain to remember.

Given most of the organisation is distributed across 32 countries, we spend a lot of time talking over Slack or Zoom, though we have a few offices around the world we can hang out at if we're close.

Personally, Elastic is an amazing place to work!

(Aaron Mildenstein) #3

Employee background:

  • Employment prior to Elastic
    • 10 years as a straight-up Unix SysAdmin
    • 5 years in Java Application administration, which was a proto-devops environment.
      • 4 years of this included python coding and mixed shell scripting
      • Discovered Logstash at this job in 2011. The rest, as they say, is history.
  • Employment at Elastic
    • Started in 2013 as a Logstash Developer.
      Back in the early days, all of the engineers did some of everything:
      • Development
      • Training
      • Support
      • Developer Relations/Evangelization
    • Switched to the Professional Services team as a Consulting Architect in September 2017

Do you need a CS degree?

I do not have one, but I suppose it depends on the role you seek. It's much easier to be a dedicated developer with one than without. If you look at some of our job listings, you'll find that most of the engineering and related positions have a line like:

BS Degree in Computer Science or equivalent experience

So, not necessary, per se, but still valuable.

What is a typical day like?

As a consultant, I do a lot of work, on- and off-site with customers:

  • Cluster planning
    • sizing
    • tuning
    • query optimization
    • retention
  • Answering questions
    • "How do I ____ ?"
    • "What's the best way to _____ ?"

When off-site, I frequently work with customers through video conferencing.

I still also do training from time to time, as that is still part of my role, currently.

(Nik Everett) #4

For context: I'm a full time contributor of code to Elasticsearch and X-Pack Elasticsearch.

I have a computer science degree and this is the job that I've had that comes closest to actually using it. That being said, I don't believe it is required. Understanding complexity (this algorithm runs in O(n log(n)) time with O(n) space required) is crucial to work on Elasticsearch. Depending on the job opening, we might require things like an in depth knowledge of Java's memory model or deep understanding of data structures to support geographic search. Or an abiding love for build systems.

I think the hallmark of the Elasticsearch team is agency. For the most part we work on what we think is important and we decide together what is important. Certainly things come up that must be done that no one wants to do, but in those cases we mostly can get volunteers. Beyond that, we borrow heavily from the Apache Foundation's model so everyone is entitled to have an opinion about everything. Basically anyone that we hire we think of as a "committer", an equal partner in the creation of Elasticsearch.

Beyond that the biggest thing to understand is that Elastic is a very distributed company. This our greatest strength but sometimes it is a big pain too. We hire the best folks wherever they are and they mostly work when they like. For some (rare) folks that is early in their morning. For a lot of folks that means they start a little later than normal and work a little later. I think we do tend to work much more "odd hours" then a normal employer. So, yeah, time zones are annoying, but we work around it because it is better then trying to have a single office. Everyone wants to live where we want to live.

(Ry Biesemeyer) #5

I am wondering what employee backgrounds are like.

Hello! I'm an engineer whose primarily responsibilities include contributing to Logstash-core. I've been a software engineer for about 13 years, including 6+ years with a social-media startup (building high-volume data-ingress ETL platform and pipelines; maintaining a variety of open-source libraries; and building a robust HTTP API for customers to query aggregate data that heavily leveraged Elasticsearch), ~2 years at Microsoft's Open Source Technology Center (contributing integration with MSSQL, Windows Server, etc., to a variety of open-source frameworks and runtimes), and a variety of prior experience building applications that primarily communicated over HTTP. I do not have a college degree.

Do you need a CS degree?

A CS degree can be hugely valuable to introduce you to the types of technical problems you'll face on any software development job; the courses can set a baseline for classifying problems, as well as for how you communicate about those classes of problems and how you attempt to solve them.

That said, a CS degree is not necessarily a pre-requisite, and the skills earned with a CS degree can also be learned other ways, including through hard-earned experience solving problems.

Many skills that are necessary for daily-work here are beyond what is taught in a typical classroom, such as:

  • the ability to differentiate between "this is hard because I haven't done it before" and "this is hard because it isn't the right path forward" so that you can identify dead-ends earlier and effectively use your time;
  • the ability to identify already-solved problems so that you can leverage existing solutions and protocols where appropriate instead of re-inventing the wheel;
  • the ability to consistently communicate clearly, empathically, and proactively so that your teammates (who are typically distributed around the world) can be empowered by your work; and
  • the habit of presenting code and ideas with necessary context so that others can review effectively and efficiently.

What is a typical day like for everyone?

We are a distributed-first organisation, which means that the vast majority of us don't go into an "Elastic" office for our daily work (and those who do are often working with people who exist in different timezones, so even they are "remote" in a sense); we aim to be asynchronous wherever possible. We use Slack, GitHub Issues, and e-mail threads to communicate about our work, and when face-to-face conversation can improve velocity in coming to consensus about something, we use Zoom video conferencing (and are careful to summarise the session for those who were offline/absent). When asking others to schedule a meeting in the future, most of us will ask in the other person's timezone (again: empathy).

Engineering is tightly integrated with our support organisation, and they involve us when they run into issues not covered by their prior corpus of work or our documentation. Typically, each engineering team has a rotation in which one person is responsible for meeting that team's SLA with Support at any given time, but in practice other members also self-assign many inbound tickets that intersect their interest/knowledge as they come in.

We take on work that we find interesting from the pool of known priorities, and are typically individually responsible to communicate about that work and our progress toward it as we go; if we find work that isn't yet a priority, we have the power to discuss the need/value with our teams and make it a priority. My team synchronises via video conference on a weekly basis (although we're constantly in async communication, and the sync call is mostly a place to catch straggling discussions).

And, Elastic supports us well with excellent health, retirement, and lifestyle benefits, not least of which is a host of amazing, passionate co-workers who work to empower each other, our community, and our customers.


Are the employees sharded as well? :rofl:

Awesome answers! Very interesting reads, thank you. I think I will work on getting very familiar with the entire stack and then apply someday.

You guys rock! :sunglasses:

(system) #7

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.