User avatar
United States
1 month ago
We are a remote-first, Internet of Things Product studio, Aethon Labs with HQ in SF. We Hustle to create habit-forming products and delightful customer experiences by solving challenging engineering problems. We are a small team of engineers who move fast, build successful outcomes, and have a lot of fun while doing it. We are excited to bring onboard a Lead Elixir Engineer to help scale one of our IoT projects. It's a product that has already been launched and is experiencing hyper-growth. This is an opportunity to leave your fingerprints on something that millions will use and get recognized for it. Company info and history: Our entire backend uses Elixir. It's a data platform that processes millions of messages in a day coming in from different IoT devices. Our team is spread across the US. We also work with technical partners in Europe and China. Position on remote work: 100 % Remote work Role type: Full-time or Freelance Qualifications or experience required: Expert-level experience in Elixir 3+ years of Elixir experience. 6+ years of Software development experience. Can mentor and guide junior engineers, providing them support to start and complete their tasks Expert-level with RDBMS and can effectively use an ORM with appropriate patterns Regularly implement complex frameworks and understand the purpose of them Experience with Test-driven development. Expertise in Phoenix, GraphQL, Ecto, MySQL, and Redis. Experience with AWS deployments, Docker. Experience with Python and MQTT. What a successful job applicant will be working on: Architecting and building a highly scalable IoT platform and recommendation engine. Own system uptimes and system performance characteristics. Have in-depth system knowledge, architectural design, and solution design. Provide technical support and mentoring to development team members. Be an active participant in strategic planning discussions with technical and non-technical stakeholders. Take many abstract ideas and codify them into a viable solution that meets business needs. Have the ability to take high-level system initiatives and break them down into workable user stories for the team to work on. Contribute to all phases of the development lifecycle in support of team objectives. Support and develop software engineers by providing advice, coaching, and educational opportunities. Act as a fully integrated team member by participating in the daily scrums, sprint planning, sprint reviews, and retrospectives. Regularly write clean code and help guide other team members to do the same The ability to recognize code smells and refactor mercilessly when you see them Understand the architecture of systems that span multiple business domains and drive the design of the context you work in to improve that ecosystem Belief in continuous delivery principles and strive to keep our product shippable at all times Passion for Agile principles and participate actively in important rituals such as grooming and planning sessions and being comfortable estimating and willing to call out blockers early. About the interview process Round 1 - Phone Screen (Half hour call) We’re interested in getting to know about you and your experience. Round 2 - Technical Challenge (Half hour call) First, we’ll share the prompt and starter code, go over questions, and conduct a collaborative planning phase with you. (3 hours independent work time) You’ll have 3 hours to implement a realistic service in Elixir using whatever tools you’d like. [Optional] (Half hour call) Lastly, after we review your work, we may choose to go over your solution together. Round 3 - System Design Challenge (Hour call) We’ll ask you how you’d design a product, no coding involved. Round 4 - Final Round (Half hour call) We’ll make sure it’s a good fit and share more about what you’ll be working on. Please apply here: