courtewing
Joined 15 years ago
Joined 15 years ago
That said, it's important that we do have guiding processes and principles here to ensure that everyone is being evaluated both fairly and effectively, so it's not like the wild west or something.
Every "track" has levels with defined expectations in terms of the type of work they do, the impact they have, the interactions they have with teammates, others at Elastic, the community, etc. High performers would be folks that are at least meeting the expectations established for their level, which is where promotion comes in.
Promotion is not necessarily role-oriented in the sense that you don't get promoted out of being an engineer into management or something like that, they are different parallel tracks. For example, I technically took a demotion to switch from a Tech Lead to an Eng. Manager role.
Processes do vary a bit team by team, though they've become more consistent over time and are pretty similar now. This is how things work on my teams:
I have 30 minute 1:1s with each person that reports to me every 2-3 weeks depending on their seniority. This is pretty informal, but the consistent face to face gives us opportunities to talk frequently about how things are going.
Every quarter I do a longer review with each team member. This isn't super formal or anything, but it is more structured with a corresponding doc that I fill out in advance and that we both expand upon during our meeting. Nothing should be a surprise here as I give positive or critical feedback more regularly, but this is where we can really dig into aspects of their performance, rehash current expectations for their level and make plans with them for how to achieve their professional goals, whether it be promotion, type of work, transitioning to a different role, etc.
The 6 and 12 month reviews are a little more comprehensive as I also include anonymous 360 feedback from peers and others throughout Elastic.
That said, at this very moment we happen to have a boatload of more senior positions available. There are a couple less senior ones though.
Engineering is distributed around the world, so it happens in a highly asynchronous way centered around GitHub issues, the vast majority of which are in public repos. Slack and Zoom are used, but if they're used to make decisions, the recording is saved for others to consume and the decision is documented on GitHub.
Meetings are discouraged, but not non-existent. To give some context, I'm a manager of two teams and this week I had 4.5 hours of meetings (including 1:1s), which is pretty normal. When I was an independent contributor on a single team, I often had weeks where I had a single 30 minute meeting.
In practice today, I suspect an engineer at Elastic will spend an average of ~2 hours a week in a meeting, with a few spending a great deal more than that and others spending less.
This culture is demonstrated top-down and has been a common thread from the early days, through the IPO, and continues today.
Edit: We also have a general philosophy of features being done when they're done rather than when we reach some arbitrary date. This doesn't mean we don't have timelines (we have ~2 month long release cycles), but if we can pair down scope to make a release, we will, and if we can't do it then we'll just move the feature to the next release instead.
We've codified a lot of the philosophy that feeds into this workflow here: https://www.elastic.co/about/our-source-code
The docs have more info about both: https://www.elastic.co/guide/en/infrastructure/guide/current...
Disclaimer: I work on Kibana at Elastic
Senior JavaScript Engineer https://www.elastic.co/about/careers/engineering/jobs/593004
Senior JavaScript Engineer (Security) https://www.elastic.co/about/careers/engineering/jobs/937336
Senior JavaScript Engineer (GIS) https://www.elastic.co/about/careers/engineering/jobs/972336
JavaScript Engineer (Canvas) https://www.elastic.co/about/careers/engineering/jobs/808365
Come work with us on Kibana. We're looking for senior level software engineers with experience building JavaScript apps.
Elastic is the company behind Elasticsearch, Kibana, Logstash, and Beats, and we're always interested in talking to engineers with a track record of doing great work throughout their careers.
* Competitive pay based on the work you do here and not your previous salary
* Stock options
* Paid bonding leave for parents with newborns
* At least 4 weeks paid time off, 1 week of volunteer time, paid holidays, etc.
* An environment in which you can balance great work with a great life
* Employees with a wide variety of interests and backgrounds
* Your age is only a number. It doesn't matter if you're just out of college or your children are; we need you for what you can do.
* Distributed-first company with employees in over 35 countries, spread across 18 time zones, and speaking over 30 languages! Some even fly south for the winter :)
We also have dozens of other positions available across the entire company https://www.elastic.co/about/careers
The key for me has been to work for distributed companies rather than as one of the few remote workers on the team. This seems to make all the difference in the world.