I applied through an employee referral. The process took 4 weeks.
Before the process officially began, I had a chance to meet most of my future colleagues at an open house. I was convinced from the start that these were people I wanted to work with (not just a place I wanted to work for), and that helped me maintain interest over the course of the process. After an initial screening call with a recruiter, I had my first call with the VP of Engineering. Rather than "testing" me, we went into a detailed discussion about what types of projects I might be working on and what my practical values were. It felt much more genuine than usual interviews, and I left the call feeling I'd really be able to grow with this type of leadership.
I then had a week to complete a personal coding assignment. These tend to be controversial for a number of reasons (time commitment, the risk of "free work", the inability to reuse the assignment for anything else), but none of these were issues here. Kong's employees had already spent hours talking to me, so I felt that it was a fair use of time. The assignment was open-ended enough that it would not benefit anyone financially, whereas I could also use it on my portfolio if we decided to go separate ways.
Finally, I felt relieved to have my own time to create a more thorough project, rather than producing a tiny fraction of it on the spot. Shortly after submitting the assignment, I had an on-site interview. The interview format has changed since I joined; in two of my four interviews, a whiteboard was involved, but for the record, I was not asked to do anything weird like a bubble sort or a radix tree traversal. Instead, I was asked questions that would likely come up in day-to-day work, or that otherwise demonstrated a deeper understanding of JavaScript's native methods, how to iterate over data structures, client-server communication, and user experience. During the on-site, I also met the manager of each of the teams I might join.
They seemed to mostly want to gauge how well I could take constructive feedback (using the assignment as an example), but also to get a sense of how I would cope with the setbacks that inevitably arise in building software. I noticed that, just as in the interview with the VP, this stage seemed less of a "test" and more of a discussion about how we would actually be working together. It left me with a positive impression and I felt open to joining either team.
The final stage was a reference check, rapidly followed by a call with the CEO. When I asked him what trait he wanted to see most, both in me and in future hires, he said, without skipping a beat, "Curiosity. Whether I have 100 or 1000 people, if they are all curious, we're unstoppable. Since joining Kong, I've interviewed several people as well, and while the format has changed depending on our needs, here is some general advice: - If possible, get coffee or have an informal chat with someone who works here. Even better, come to an event and meet several people who work here.
You will, of course, get vetted either way, but it will be less intimidating if you've had a chance to speak with people as a human before they formally interview you. - Get a sense of what Kong does before the first screening call. The reading material or one of the videos on the marketing site (konghq.com) should be adequate. - Ask questions about the process, tools, and responsibilities. As with most companies, the job description is the tip of the iceberg. Ask about how we do weekly sprints, write docs, and review PRs. Get enough information to be able to vividly imagine a week of the job.
By getting a sense of all the different things you could be doing, you also get a chance to share some of those skills that may have otherwise been overlooked. - Communicate early and often if you ever have questions or concerns, especially with the assignment.
There were problems involving JavaScript methods for arrays and objects, as well as how to compose higher-order functions.
How does JavaScript interact with elements in the DOM, such as adding or removing an element?
How would you design a process so that even if users do not receive an email to do Y, they are able to access X?
What are some sources of inspiration you can find for improving your code? This question was asked in the context of improvements I'd made after submitting the assignment.
What are the tradeoffs of doing a client-side sort and filter search with JavaScript vs. a server-side sort? What are some of the assumptions about the size of the list, pagination, etc. that you would need to consider?
You've been a manager or a tech lead on other teams. Would you feel comfortable as a new individual contributor?
The following metrics were computed from 1 interview experience for the Kong Software Engineer role in San Francisco, California.
Kong's interview process for their Software Engineer roles in San Francisco, California is incredibly easy as the vast majority of engineers get an offer after going through it.
Candidates reported having very good feelings for Kong's Software Engineer interview process in San Francisco, California.