Our mission is to protect homes, families and communities from wildfire disaster, which we’ve been doing successfully now for two years.
You’d be just the second full time software engineer, so this is a great opportunity to have a significant impact on a very interesting and meaningful product.
You’re an experienced generalist with a deep T in web and Elixir. You take ownership, know how to balance your work and personal life, are comfortable moving fast, pushing boundaries, and breaking things. You’re a straight talker who tells it like it is, and finds no shame in being wrong. You work well in a team, supporting people when they need it, and getting out of their way when they don’t.
My name: Jason King
My position: Head of Software
Company name: Frontline Wildfire
Company info and history (how you’re using Elixir etc):
The problem that we’re solving is protecting homes and helping people safely navigate a wildfire situation. To protect homes, our system defends against embers, the #1 cause of structure loss from wildfires. To help people navigate a wildfire situation, we’re providing better mapping and alert resources so that our customers can track wildfire activity near them and receive important emergency notifications from the best resources available.
About the job
Job title: Senior Software Engineer
Job description: The role is mostly dev, but there’ll be occasional ops and support until we grow enough to have a dedicated ops team. You need to be ok being one of two engineers sharing these duties.
Salary range: Pay is negotiable based on experience, but we’re looking to fill the role in the $120-150k range, or comparable hourly rate if that’s what you prefer. We have an unlimited vacation policy, assistance is available for setting up a home office if necessary, and we have a generous equity plan for all employees.
Position on remote work: With team members in Colorado, Wyoming and California, we’ve always been a fully remote and distributed team. We tend to operate on Pacific time, but software dev will generally be asynchronous.
Qualifications or experience required:
- Expert in Elixir and Phoenix, with strong experience in Websockets and API development
- Expert in the web stack: HTML, CSS & JS
- Expert in SQL DBs, especially Postgres
- Familiar and comfortable with GIS and spatial queries in PostGIS
- Experience with MQTT, VerneMQ or IoT in general is a bonus
- Any C (Linux), Python or mobile dev also a bonus
What the successful job applicant will be working on:
I’m in the middle of rewriting our prototype mobile API server in Elixir, and then we’ll be adding an MQTT broker (current broker is prototype written in C), writing custom plugins for VerneMQ, interfacing with the Iridium satellite network via Rock7, and rewriting the app layer on our controller devices in Elixir (currently prototype code written in C).
We then have a number of new enhancements for the API to support a new app for our installation teams to use, a heap of GIS-based notifications to add, and many more things after that.
About the interview process
I’ve accepted that it’s not possible (at least for me) to create an effective proxy that identifies people who actually work well in a given role in a given team. There are just too many variables, and any interview, test or trial process is fraught with both false positives and negatives. You have to settle into a team, into a role, learn the ropes, mesh with personalities, find your place, and all that stuff.
As such my main goal in an interview process is to tell you as much as I can about us: about the company, the role, the team and me. I tell the good and the bad. I find the number one issue when joining a new team is that you discover a bunch of crap about the company that you really don’t like, I try to mitigate that as much as possible.
My secondary goal is to see how well you use the sorts of communication channels we use. To this end, if you have examples of your participation in forums, or maybe open source tickets, including that in your CV or cover letter would be great.
- In your application, please send: your CV, a cover letter, and a sample of your code that you’re proud of with an explanation of why you’re proud of it.
- If I like your code and explanation then the next step is to connect with you in chat, we use chat a lot, and so it’s important for me to see that you’re adept at that channel of communication.
- Finally, I like to connect on a video call, another medium we use a fair bit.
- If you want to, I’ll set up an interview for you with anyone else in the company you’re interested in talking to.
At any stage, if I decide we’re not a good fit for each other, I’ll let you know and explain why.
You can email me at: