I have a friend who works at ServiceNow. After applying online, I asked him if he could bring my application to the hiring manager's attention. The position I applied for was "Architect - Platform Persistence".
It took my friend at SN a day or so to determine who the hiring manager was and to reach out to him. Once he did, I received an email from the HM almost immediately, locking in the date and time for the phone interview: the following Monday.
The phone interview was with the HM, a Manager/Lead developer, and a Principal Developer on the Cloud Platform team. We had 45 minutes scheduled.
I am currently a Senior Staff Software Engineer, so they asked me many questions about my role and why I was looking at other opportunities. For your information, I am looking for growth opportunities, particularly towards formal Architecture jobs, which is what I applied for at SN.
I liked the two gentlemen I spoke to on the phone. You could tell they had personalities. They were friendly, articulate, and came across as highly intelligent and experienced. Yet, I didn't pick up on very much, if any, condescension or arrogance, which often comes from senior developers, especially those judging you for employment at their company. I respect and appreciate that.
The technical part of the interview was probably medium difficulty. I wasn't mentally prepared for a technical interview (which is my own fault), so I think I rambled on at times. They were very patient most of the time, however.
It seemed like this particular position mainly required SQL (MySQL or MS SQL in particular) and Java knowledge.
Here are just a small sample of the questions they asked me:
One question that caught me off guard was, "How does Java implement generics?" Apparently, Java uses "type erasure." Perhaps that's a basic Java question; in that case, it's embarrassing that I didn't know the answer. I have used generics in Java, C#, and C++ (templates), and have spent my career (14 years) writing in many languages from the database up to the UI, rather than only doing Java for 14 years. So, perhaps the specifics of "how generics are implemented in Java" eluded me, although I use generics all the time in practice when working with Java.
They also asked me if I ever use the "finalize" or “volatile” keywords in Java, and I stated that I don't. They asked me where and why I've used a Try-Catch (which was easy), and I fought the urge to find that insulting.
For an Architect position, they didn't ask me a single question about design patterns, which I happen to be really good with, so that was a bummer.
They asked me a lot of SQL questions, mainly around how indexes work and execution plans. They also asked me about some differences between MS SQL and MySQL. I described the manner in which MySQL executes subqueries, and they were satisfied and moved on.
Then I was asked the difference between InnoDB and MyISAM engines. Unfortunately, I've never used MyISAM, so I couldn't answer this question.
We went over the allotted phone call time (which is sometimes a good sign?). They gave me a few more minutes to ask questions. I asked about the title "Architect - Platform Persistence" and why the actual description stated "Senior Software Engineer." The HM said that "Architect" was a typo and I would, in fact, be interviewing for a mid or senior-level developer role. He mentioned that their platform is so complex that it would be very difficult to hire an Architect from external sources. That makes sense to me, but I was disappointed because I am presently in a senior role, paid very well, treated extremely well, and life is great, other than growth (architecture) opportunities. Obviously, I can't see myself leaving for a lateral (Senior) or lower (mid) role, even if the new role paid me slightly higher. Nonetheless, SN seems like a really cool place to work, and I thought I'd love to work with the Cloud Platform team there because I liked the HM and the Principal Dev I spoke to on the phone so much. So, when they invited me to an onsite interview, I agreed to it.
Before the phone call ended, they were gracious enough to give me some feedback and advice for my on-site. I really appreciated that.
I ended up contacting the HM just before the on-site interview day, after much consideration and deliberation, and cancelled the interview. The reason is that they wanted me for a mid or senior developer role. As I mentioned before, while I think it would be great to work at SN as a mid or senior developer, it simply isn't the right career move for me. I thought it prudent to spare the entire panel of interviewers (and myself) from a day of technical interviewing for a position that my heart was not in. I hated to cancel last minute, but I hope they can appreciate that I didn't want to waste their time in the end.
Unexpected:
Difference between InnoDB and MyISAM?
Unexpected:
How does Java implement generics?
The following metrics were computed from 1 interview experience for the ServiceNow Architect - Platform Persistence role in San Diego, California.
ServiceNow's interview process for their Architect - Platform Persistence roles in San Diego, California is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for ServiceNow's Architect - Platform Persistence interview process in San Diego, California.