Reflective Software was founded by Eric Saxby and Erik Hanson, each of whom have decades of software development experience in various programming languages.

What We Do

With a strong focus on developer tooling, automated testing, and observability tools, we help teams to reduce onboarding time of new software engineers, and to remove the pains of development processes. We reduce the risks of shipping new software, increasing the speed of development.

We’re strong advocates of automated testing, and can kickstart or improve your applications’ test suites. We have experience testing at all levels (including unit tests, UI tests, integration tests, and API tests), and have released numerous open source libraries to help with testing.

We have strong web app and web UI skills, having 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.

Preferred Tech Stack

Highlights

Case studies

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 experience developing well-tested code, and have brought our testing philosophy to Elixir with Phoenix LiveView UI test suites (that run in seconds), as well as test-related open source libraries such as Pages, HtmlQuery, XmlQuery, and Schema Assertions.

In addition to UI-heavy applications, we have shipped multiple data processing applications. We have used 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.

We have solved problems related to strict concurrency limits, API interoperability with little, no, or incorrect documentation, and the need for high reliability and 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 built two tools: Medic and Daily Diff.

Want to talk about working together?

Email us at contact@reflective.dev.