Reflective Software is the software consulting practice of Eric Saxby and Erik Hanson, who each have decades of software development experience in various programming languages, most recently with Elixir and Rust.

What We Do

With a strong focus on developer tooling, automated testing, and observability tools, we’ve helped teams to reduce the onboarding time of new software engineers, as well as to reduce the pains of their development processes by streamlining, automating, and reducing risks in their workflows as well as by replacing manual checklists with continuous integration and deployment pipelines.

We are strong advocates of automated testing and can help kickstart or improve your application’s test suite. We have a lot of experience with unit tests, UI tests, integration tests, and API tests, and we have written a number of open source libraries to help with testing.

We have strong web app and web UI skills, and have built many web applications on our own and alongside our clients’ developers, including multi-user multi-role enterprise workflow applications, and a videoconferencing server with a web-based client. We have added web-based dashboards showing application performance and status as well as real-time remote visualization of high-volume data transformations.

We use a lot of open source software, and we contribute back with pull requests and by creating our own open source libraries and tools.

Tech Stack

Highlights

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 test suites (that run in a few 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.

For this purpose, we have build two tools: Medic and Daily Diff.

Want to talk about working together?

Email us at contact@reflective.dev.