As businesses continue to evolve, the need for tailored tools that meet specific requirements becomes increasingly important. We've seen this in the CMS space with a growing demand for websites. Websites are no longer just a brochure but an active way for customers to interact with a company: from deciding on a purchase, to getting support, and managing an account with the company. That’s just scratching the surface; we're going even deeper.
HubSpot has a vibrant ecosystem of apps, as highlighted at HubSpot.Extend() and INBOUND 2022, we're bringing a new level of customization right into the CRM.
The CRM is an operating system for businesses, continually evolving to meet the changing demands of customers. Every bit of added efficiency and time savers translates to a more efficient business. However, different businesses vary in what they produce, the services they offer, and how they operate. To get the most out of their CRM, businesses need to customize the experience to their needs.
This is where CRM developers come in. These developers build the customizations and extensions that enable users to interact directly with the HubSpot CRM. By hiring CRM and API-focused developers, businesses gain access to experts who can create tailor-made solutions that save time, boost productivity, and enhance the overall user experience.
What are the base qualifications you should look for when hiring a CRM/API developer?
These should be the minimum requirements for someone in this role:
- Developer should be familiar working with RESTful APIs, making
- Developer should have the ability to think about both the big picture and the small details at the same time.
- This means they should be able to see the business’ larger systems/workflow (not referring to HubSpot workflow tool) and how their pieces/integrations fit into that system.
- This person is likely to ask a lot of targeted questions up-front before starting to execute.
- Developer is not afraid to use their command line or terminal.
- Developer has experience using version control systems (Git, Mercurial, SVN).
Bonus means - these qualifications are not the minimum requirements but if someone has them they're likely a better candidate.
- Experience using Git with other developers on the same project.
- Experience with ReactJS.
- GitHub experience (HubSpot's CRM development tools offer a GitHub integration).
- Has experience working with serverless functions on any platform.
- Experience with using OAuth. (This knowledge is useful for building Public Apps and for understanding the scope's functionality of Private Apps.)
- Has worked with HubSpot before - in any capacity (Even if not strictly development). This isn't something that should be seen as a requirement, but it does make them stand out.
- Understands the inbound methodology - this helps them to better understand your clients and why things are done the way they are both for the client and in HubSpot.
Nice to have but not a deal breaker or significant bonus qualification
These are qualifications that should not be seen as strongly as the "bonus qualifications" mostly because the tools can be learned quickly or are not absolutely critical right away.
- Experience using VS Code (HubSpot has a VS Code extension that makes the developer's experience easier).
- Experience with GraphQL and the GraphQL API.
If this is your first CRM/API developer hire, you likely want to hire someone more senior, as your existing developer talent may not be able to coach a junior backend developer. The skills and tools junior backend developers use are distinct. That said if you have a strong full stack developer, who truly does understand the back-end well, and is comfortable coaching a more junior developer, that may be an option.
How can you vet these qualifications?
When vetting a candidate's qualifications, it's important to keep in mind that it's not always possible to prove a negative. Aim to ask questions or administer tests that are not easily Google-able. It's also a good idea to have a developer on your team, even if they are not in the same discipline as the candidate, be a part of the interview process. Their role could be assessing whether the candidate is genuine in their development question responses. Finally, consider asking behavioral questions as they provide valuable insights into a candidate's experience, problem-solving abilities, and interpersonal skills.
- Ask to see any open-source work they have done.
- This gives you the ability to see if there were other contributors.
- Ask yourself: Did they just commit to the main branch or did they make pull requests, did anyone ever review their PRs? Did they ever review anyone else's PR?
- In any of the projects, are the programming languages you require used?
- The quantity of open-source work they have should not be an elimination factor unless you expect them to be putting out open-source code. (Some businesses don't see the value in open source, and developers may have busy personal lives that keep them from contributing substantially)
- Ask them when and when not to use serverless functions. (One primary reason is to avoid putting secrets on the front-end)
- Ask how they keep up with the latest best practices, trends, and technology.
- Ask behavioral questions.
- Ask them to tell you about past back-end development projects they've worked on.
- Ask about the tools they used.
- Don't just focus on the technical, think about the interpersonal skills you expect them to have. How have they handled negative feedback? How have they handled disagreements with coworkers or even clients? Ask them to tell you about a problem they've faced on a project, how they solved it.
I'm a big fan of technical assessments that involve small tasks based on the job that person will be doing. This helps assess multiple skills and traits, as well as how the candidate approaches problems. All candidates should do the same task, and be paid a fixed amount, for their time. However, the task shouldn't take more than an hour or be overly complicated.
I prefer to create a task based on a real-world task that a person will do rather than have them do real work personally. It's crucial to create a task that meets minimum job requirements while keeping it as simple as possible.
It's not necessary to supervise the candidate while doing the task since it may cause them to work differently than they would in a real-world situation. The ideal approach is to let them solve the problem how they would if it were a real situation, even if it means Googling or using tools. I don't personally time folks, either. I give them a reasonable due date, and if they have a job or other obligations, allow them an extension.
I also make sure they have contact information in case they have questions about the task. I don't fault anyone for asking questions, in fact, it's usually a positive sign to me if they ask a question, even if it seems like it's basic. I'd rather have an employee that asks questions to avoid developing something wrong.
If you're not a developer - when they're done with the task, review their work with a developer. Avoid nitpicking stylistic things. Focus on:
- Did they accomplish the task as explained?
- Were there signs of lack of attention to detail in following the instruction?
- If they didn't fully complete the task, were they up front about it? Was the issue they ran into too rudimentary or was it something acceptable to need assistance or more time on for the level of employee you're hiring for?
- Are there true red flags with how they went about solving it?
- Did they choose to use version control?
- Not choosing to use version control shouldn't be a disqualifier (unless you explicitly asked for it) but if they did use version control it is a positive sign that may make them stand out from other candidates.
- If they did use version control is there anything obviously fishy about it? (multiple contributors, just forked an existing project but didn't do the work themselves.)
- Did they use any npm packages, Ruby gems, or scripts they found online?
- These aren't outright red flags by any means. In real work, you don't want the person who hand codes everything, you want someone who does the job smarter not harder but ensures they meet the requirements. That said, if they use a framework or package that really isn't the right fit for the task it may be a sign they were over-relying on it.
- Does their work seem to contradict any claims about experience or skills that they have and that you require?
- Did they surprise you in any positive or negative ways? I've had candidates show their knowledge or experience in areas I didn't anticipate and wasn't specifically testing against. This is something you wouldn't see if you limited what you allow the developer to do/use.
I've found technical assessments to be one of the most useful tools to get a feel for developers and help to inform future questions asked in an interview. However, I recommend having a developer review the assessments if you aren't one. If you don't have a developer in-house, connect with a developer in the HubSpot developer community, and see if they'd be willing to review them or help craft the assessment for a fee. Spending money on this is a small investment compared to the potential costs of hiring an unsuitable candidate.
Whether you're looking to hire a new developer, or you're a developer looking to expand your skillset into this specialization, I hope you've found this useful. We wish you the best of luck in hiring and getting hired.