Position: Senior Elixir Engineer
Company: Hammer Corp
Category: Lead
Experience required: 5y
English level: fluent
Published: 2020-11-01T00:00:00+02:00

**About the job**

We are looking for experienced, pragmatic engineers with production experience with Elixir. Any experience with Ruby would be a plus but it won’t be necessary in the long term. We don’t have a dedicated dev-ops in our team and everyone is expected to know how our infrastructure works. With that said, good experience with setting up and maintaining infrastructure would be a plus too.

Taking the idea from discussion in Slack to production-ready state is something that’s happening all the time in our team. So if you’re proactive and love thinking about the business side of things first you’ll find yourself in a good company here. We don’t have dedicated people that would tell our engineering team what to do. Everyone in our team is involved in the decision and planning process.

We do care about the quality of our code, but we’re valuing solved business tasks much higher than a perfect piece of code that would never get to production.

Having any experience with a front-end is a plus since we are using SSR with a minimal amount of JS. We don’t have a dedicated front-end team and are not planning to go that route in the nearest future. But we do have experienced full-stack engineers in our team that give you a hand with the most of heavy-lifting if you’re not feeling confident in that area.

Some of our products have interesting challenges involving data science and ML so that’s another potential huge plus for you if you have that experience.

**What you’ll be working on**

We get that question a lot. It really depends on you and the way you’ll apply your knowledge and skills. One thing is certain - you’ll be doing Elixir a lot! :)

Our company is very agile business wise. Between the time we’re posting this and the time we’ll talk to you we get a new product in our pipeline.

Our core products are about conversational sales: messaging, voice calls and real-time communication and lead generation. We’re the last mile between an end customer and our clients. We handle millions of messages each month that come from different sources and we act like an omni-channel for all inbound communication for them.

Something is changing more slowly though. Like we have a backlog of tasks related to rethinking and migrating the legacy part of our products that are still the core of business to the greenfield project that’s also in production now. But the accent is on rethinking here. We have no reason to migrate as is. That migration is a complete rewrite. And It takes more than redo something that was done by someone else. We need to consider all the lessons we’ve learnt on our path and free ourselves from limitations of the solutions we have right now. That legacy part of our product is tightly related to the automotive industry and we do a lot of integrations with third-party services.

We have a bunch of products and some of them are still running on our legacy infrastructure which combines Elixir and Ruby hosted on AWS with Convox used as a deployment tool. Most of the back-end pieces were already migrated to our new system, but we still have a lot of front-end parts in there (both back-office and client-facing interfaces) and some of the core back-end pieces like billing, reporting etc.
Our mainstream stack for the new products set is Elixir, PostgreSQL, RabbitMQ hosted on GKE (K8S + Terraform). Front-end part is a Phoenix SSR with Vanilla JS (with Stimulus JS) where necessary. We use plain HTML with EEX templates and plain CSS. Webpack is used in the assets pipeline. Most of those applications are part of mono repo with umbrella structure.

That’s a very broad spectrum, we get it. But it’s not like we’re looking to hire you for one specific project. We’re not a company of one project. We’re here for a long run and as the whole World is changing we are adjusting and always in pursuit of emerging opportunities.

**Who you’ll be working with**

At this moment we’re a team of 6 great human beings and as engineers we have dozens of decades of experience in total. We’re all over the World and working remotely. We sync everyday in Slack and we have weeklies. We don’t have strict rules and avoid bureaucracy at all costs. We care about our business and about our team’s health equally.

Our business team is just amazing! We work back-to-back with them on a daily basis and we care about each other. Very often our engineering team is taking active part in business discussions and having a say in a decision process.

Overall our company is very open and transparent. Everyone’s opinion matters and all of us are working towards common goals.

**How you’ll get paid**

All of our engineering team are independent contractors (1099-ers if we talk in US tax terms). We track our time and get paid for hours we’ve worked. And the word independent is covering everything. Like we don’t have paid leaves, insurances or any other perks that 9-to-5 employment usually provides.

You’ll get paid on a monthly basis and all we need is an invoice sent to our accountant. If you’ll need any other documents signed to comply with your local laws that also could be arranged.