Elixir

We have been building applications in Elixir since 2018, and have deployed over a dozen Elixir applications in that time. We have also published and maintain many open source libraries.

We have decades of test-driven development experience, which we have brought to Elixir in terms of building full Phoenix LiveView UI tests (that run in seconds), as well as test-related open source libraries such as Pages, HtmlQuery, XmlQuery, and Schema Assertions.

We have not only built UI-heavy applications, but also built multiple data processing applications. We have experience using libraries such as Broadway, GenStage, Flow, Membrane, and Oban, as well as high-volume and high-speed data processing applications using tools provided by the Erlang and Elixir standard libraries.

In these data pipelines, we have faced problems related to strict concurrency constraints, API interoperability with little, no, or incorrect documentation, and with the need for high reliability and high speed (for instance, reducing a 12-hour long process to under 2 minutes).

Rust

We have built CLIs and terminal UIs in Rust, that we and teams we've worked with use every day. We have also used Rust at the core of Elixir NIFs for high speed data processing, as well as for interoperability with Rust libraries such as webrtc-rs.

Our experience has focused on using Elixir as a main orchestrator for server operations, but we'd love to work more with Rust in terms of implementing core application logic shareable between multiple languages, such as Elixir and Swift.

Developer workflow and tooling

We care a lot about developer workflow, and believe that team members should be able to onboard onto new projects within minutes. New hires should be able to ship code on their first day, with a safety harness of tooling to ensure they are able to do so confidently while reducing annoyances.

Open source

We care a lot about open source. We use open source as a part of every day that we spend programming, whether it's the languages and frameworks that we use, or libraries that we integrate into our applications.

As a part of developing applications for ourselves, we build and extract libraries to release code that other people might find useful. We do this under the name Synchronal, to keep them separate from any intellectual property owned by any for-profit entity. In the long term we hope to expand that organization into a larger co-operative of human-centric developers.

Code that we build for our clients may be proprietary, but if possible we would love to release and maintain open source libraries for the parts that are not.

Want to talk about working together?

Email us at contact@reflective.dev.