About InterNACHI’s fully remote dev team

InterNACHI® is a non-profit trade association and internationally-accredited school that helps educate, support, and promote small businesses around the world.

Our mission is made possible through a strong focus on technology. We built and maintain in-house systems for:

  • Online education and testing
  • Licensing and certification management
  • Back office functions like scheduling and pricing
  • Billing and payouts
  • Electronic agreements and e-signatures
  • And dozens more

Our stack at a glance

While we generally try to balance “what we know well” with “what’s right for the job,” we rely heavily on a handful of technologies:

  • PHP
  • Laravel
  • MySQL
  • Tailwind
  • Alpine.js
  • React
  • macOS
  • Linux
  • Node.js
  • nginx
  • Ansible
  • AWS

Join our small team of exceptional developers

Photo of Chris Morrell

Chris Morrell

Team member since 1997
UTC-4
InterNACHI’s CEO & CTO, with over 25 years of dev experience. Father of two, board game nerd, and avid open-source contributor (including Laravel core).
he/him

Bogdan Kharchenko

Team member since 2018
UTC-4
Father-in-training, enjoy motorcycle racing. Been hooked on Laravel for 8+ years & have a handful of PRs merged with my name on them into various open source projects.
he/him

Skyler Katz

Team member since 2023
UTC-5
PHP Developer since 2005. Father of one, improv theater nerd, and Saint Louis City SC fan.
he/him

What working at InterNACHI® looks like

Remote-First Team

Competitive Salaries

100% Health Coverage

100% Dental Coverage

100% Vision Coverage

401(k) Matching

Home Office Stipend

Choose your own adventure

We need more support across our whole stack. If any (or all) of these paths speak to you, get in touch! We’re interested in bringing on great specialists or adding more full-stack developers to the team.

Role filled
as of Jan ’23

The Mysterious Back End

Write and ship code. There are features to build, and you’re the one to build them. Data modeling and migrations. Security and performance. Simple readable code.

  • You care about good code
  • You’ve got 2+ years of professional Laravel experience
  • You understand RDBMs, and can model and query data efficiently
  • You have solid experience contributing to a git repo
  • You enjoy pair-programming with other opinionated devs

The Mercurial Front End

Spend your time in Blade, Tailwind, and JavaScript. You’re not afraid of React when it’s necessary. You’re ready to pitch your vision and implement it.

  • You have an eye for good design
  • You care about semantics and accessibility
  • You understand utility CSS and Tailwind
  • You’re comfortable with modern JavaScript (Alpine/React experience is great!)
  • You’ve worked with the Blade templating language

The Mythical DevOps

Optimization, provisioning, scaling, maintaining. We deploy code many times every day, and you want to constantly make that better.

  • You understand the AWS ecosystem
  • You know your way around a linux server
  • You’ve got experience with nginx and php-fpm
  • You’ve used ansible, or are interested in “infra as code”
  • You’re proactive about maintenance and upgrades
  • You’re ready when something inevitably breaks

No matter which path(s) you choose…

Your typical day

Expect to spend about 80% of your time on your work, and 20% of your time meeting with the team and the rest of the organization. You’ll participate in daily standups and bi-weekly retrospectives and planning.

Your tools

We’ll send you a Macbook and get you set up on Github, Tuple, Linear (Jira but not awful), Slack, and Zoom. We’ll also set up PhpStorm and Laravel IDEA for development, and help you get our app running locally via Laravel Herd.

Other details…

  • Your typical workday should overlap with UTC -05:00 (eastern time) for at least five hours each day
  • Expect to work quite autonomously at times, and in close collaboration at others
  • Communication is key. Be prepared to document code, add comments where appropriate, and spend extra time on your PRs and tickets

Contribute back to open source

InterNACHI® relies heavily on open-source projects, and we contribute back regularly (including to Laravel core). We have also published dozens of open-source packages—with over 3,500 GitHub stars and over 650,000,000 downloads.

Here are some we’re particularly proud of:

glhd/aire

Modern form builder for Laravel

542

glhd/gretel

Laravel breadcrumbs right out of a fairy tale

245

glhd/conveyor-belt

All the underlying mechanics necessary to write artisan commands that process lots of data efficiently

133

InterNACHI/modular

Modularize your Laravel application

812

inxilpro/node-app-root-path

Determine the root path to your project

603

glhd/alpine-wizard

Multi-step wizard helpers for Alpine.js

149

Contribute back to the PHP community

InterNACHI® also contributes back to the PHP community financially, through GitHub sponsorships, Open Collective, etc. We are currently sponsoring individuals like Caleb Porzio and Graham Campbell, groups like Spatie and Larabelles, and PHP itself via monthly donations to the PHP Foundation.

We’re serious about testing

Write code with confidence, knowing that you have over 22,000 lines of tests to help guard you from breaking things.

This lets new developers contribute meaningful code to production sooner, and saves everyone from dreaded “the site’s down” texts on a Friday night.

Tests\Feature\Auth\RegisterTest
can register as guest with membership intent
can register as real estate agent
can register as real estate agent with referral
registering as an agent with the wrong referral id produces an error
california agents must provide drivers license number
can register as a vendor
when loading registration page as contractor a contractor specific terms page is shown
can register as a contractor
can register as guest member
should set inspections performed metadata
it should redirect for common coupons and set session
when user is saved the first and last names have tags stripped
password must not fail haveibeenpwned
Tests\Feature\Auth\TwoFactorAuthCheckTest
when a user attempts to view protected page two factor is asked
when a staff member attempts to login and does not have 2fa they are redirected to 2fa setup
when user enters invalid 2fa key error is given
when user enters correct 2fa key they are redirected and 2fa session is started
when user with 2fa cookie logsout cookie is removed
when logging in with remember me the 2fa cookie should be forever
when logging in without remember me the 2fa cookie should expire with the session
the 2fa cookie is extended on each page view
Tests\Feature\Admin\Users\UserProfileUpdateTest
a staff user can load the user edit page
non staff user cannot load the user edit page
a staff user can update a user profile
a users secondary email can be blank
non staff user cannot update a user profile
a staff user cannot set a user role to staff or admin
an admin user can set a user role to staff or admin
when updating username the exam sessions table is updated and the user is notified
non unique usernames are automatically made unique with a suffix starting at 2
username suffixes take into account gaps in conflicting username suffixes

…and continuous delivery

We’ve invested heavily in continuous delivery so that we can ship great features quickly. No need to wait for someone to deploy your feature, or delaying for a release day—when a PR is ready, it’s automatically deployed to production.

  • PHPUnit tests run on GitHub Actions
  • Code style is checked with StyleCI
  • Assets are automatically built & deployed to CDN
  • Application deployments run via Laravel Envoyer
Some checks haven’t completed yet
0% complete running checks
@github-actions
Unit Tests
Waiting…
@github-actions
Deploy Sidecar Functions
Waiting…
@github-actions
Build Assets
Waiting…
Style CI
Waiting…
Required statuses must pass before merging

All required statuses and check runs on this pull request must run successfully to enable automatic merging.

Sound good? Get in touch.

InterNACHI® is an equal opportunity employer and all qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability status, protected veteran status, or any other characteristic protected by law. We are committed to building an inclusive workforce and strongly encourage applications from women, individuals with disabilities, and people of color.

Sorry! We just hired an amazing new developer. We're going to stop accepting new applications until we get them onboarded and fully set.