Remote Sr. Phx API position (Greenfield) - Ad/Content Tech- US - Eastern TZ

Introductory paragraph

Hi! Come join Knotch for Greenfield Elixir development. Here is the scenario: We we have a successful product that has gotten us a significant chunk of business in Ad/Content Tech, proved we’ve got a strong market, made the company some good money, and we’ve realized it is time to re-think some of the core concepts in our API. Now that we know what we didn’t know 5 years ago, we’re going greenfield on a new Phoenix API app w/graphql. We’re not rewriting the current API application from ruby to elixir, we’re straight up replacing it with new concepts and new organization entirely. So it’s greenfield with a good level of structure and boundaries of what to build in, we’ve done most of the data and gql design, but need someone to help us fill in the gaps in the middle of the app relatively quickly!

I’m actually a new hire (like last 3 weeks?), but I think from interview 1 to start date was about a week? This company moves fast, and not like fast out of control, just fast. And not too hard. Very, very adament about making sure we’re not working more than we should, no one’s going to do death marches. Management advocates very well for engineering, and the direction that management is going is a very positive direction (as someone who’s generally really critical of engineering management). It’s a ‘startup’, but making good money, about 20 people on the engineering team with 4 on the API team, we’re looking for a 5th to really bring a strong Elixir experience to fill out 2 Jr Devs (one coming from Ruby, the other from Javascript), the team manager (who’s written some Elixir in the past and will likely write some in the future) and myself (who’s written (small) production functional lang apps including Erlang, but not Elixir/Phoenix).

So, ‘the big problem’ we’re building for is that we have a great data warehouse with a boatload of data. We’re getting analytical data build by our data team sent to us, so that we can break down the data to send to the front end so our users (Fort. 500 co.'s mostly for now) can understand the data. Basically this means we’re going to be building some ETLs on top of ETLs for temporary data for users to use. We had this massive uhhhh problem in the old application and DB design that forced us into using PG Materialized Views on top of Materialized Views, and because our users are looking at very specific data contextual to their experience, Materialized Views really don’t provide the best way for users to experience the data, so we’re building our own pipelines to break down the data using what Elixir is best at: concurrency! They don’t live forever like a materialized view, but they need to live for a a while, and so we’re figuring out how to build a structure in Elixir that’ll help us create performant products that’s ultimately able to read from a firehose of data that may exceed 100k writes/min on a more realtime basis instead of aggregates.

I’ve come from EdTech for the past 10 years, so this is a completely new domain for me, but it’s a cool challenge to tackle. I’m not entirely sure what it is, but the team you’re working with is pretty awesome and diverse and committed to

About us

My name: Dan (Just Dan)
My position: Sr. Software Engineer
Company name: Knotch
Website: Knotch - Senior Backend Engineer
Company info and history: Around 10 y/o, we’re recently transitioning to Elixir for the backend, with react on the front end (with a dedicated team), and python on the data layer (again, a dedicated team). When you apply, tell Rob that Dan sent you from Elixir Forum (and not Stack Overflow)

About the job

Job title: Sr. Software Engineer
Job description: You’re gonna be responsible for being the lead on structuring an Elixir app with good amounts of production experience.
Salary range: 140k USD+
Perks: $15USD/work day stipend for lunch, a really, really good stipend for a laptop, good work/life balance for REMOTE WORK (which is hard to come by these days), $50/mo stipend for mental health, $1k yr for professional development (after 6 mos), it’s been named one of NYC’s best places to work for quite a while (and there’s good reason for it), the people here really care about you and your well being. Honesty? Honesty. Honesty is one of the big things here, especially in the API team, we talk about our weaknesses and we build around what we can do to support each other in those.
Position on remote work: As someone who’s worked remotely for the better part of 7 years, this is one of the better remote positions I’ve had.
Qualifications or experience required: Good Production Elixir (1+ yr-ish) experience and the ability to communicate why things should be done the way they are.
Things that will make you successful: I’m good at designing, mentoring, reviewing and communicating, I’m not the most prolific coder, but I code the right thing right, I’m looking for someone to help fill in where I’m weak, not to be a clone of me, someone who’s more prolific, but knows how to write the right code instead of just creating a boatload more technical debt down the line, someone who’s good at accepting criticism and able to communicate their needs well, and especially someone who’s able to articulate why doing certain things in Phoenix is the right way for the application we have.
What the successful job applicant will be working on: Helping a team of developers who’ve worked on Elixir before but not on a production level, build a production level Elixir app. Also we’re eventually writing a lot of ETLs to parse out a lot of data that we’re getting in the future.

About the interview process

You’re gonna basically be judged more on your ability to communicate and how you’d structure application than a code quiz or whatever. There’s a fair amount of trust that we have that senior engineers know how to code, and that further, someone with Elixir experience would be able to communicate the challenges and benefits of building applications in Elixir to a team of pretty sharp developers.

ITS A REALLY FAST PROCESS I PROMISE. I literally had interview 1 on monday, interview 2 on thursday, offer friday, started next Monday.

Further info

Feel free to DM me if you have any questions or reply in the thread here.

7 Likes