-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconsulting.html
More file actions
197 lines (176 loc) · 8.47 KB
/
consulting.html
File metadata and controls
197 lines (176 loc) · 8.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="assets/css/main.css" />
<title>Consulting | Reflective Software</title>
<meta
name="description"
content="Decades of software consulting experience in Elixir, Phoenix, Rust, and Swift. We help teams ship faster with automated testing, developer tooling, and data pipeline expertise."
/>
<meta
name="og:description"
property="og:description"
content="Decades of software consulting experience in Elixir, Phoenix, Rust, and Swift. We help teams ship faster with automated testing, developer tooling, and data pipeline expertise."
/>
<meta name="og:image" property="og:image" content="https://www.reflective.dev/images/logo.png" />
<meta name="og:title" property="og:title" content="Consulting | Reflective Software" />
<meta name="og:url" property="og:url" content="https://www.reflective.dev/consulting" />
</head>
<body>
<nav>
<a href="/" class="logo"><img src="images/logo.svg" width="32" height="28" alt="Reflective logo" /> Reflective</a>
<div class="links">
<a href="/software">software</a>
<a href="/about">about</a>
<span>consulting</span>
</div>
</nav>
<main>
<header id="header">
<h1>Consulting</h1>
</header>
<section>
<p>
Reflective Software was founded by Eric Saxby and Erik Hanson, each of whom have decades of software
development experience in various programming languages.
</p>
</section>
<section>
<h3>What We Do</h3>
<p>
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.
</p>
<p>
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.
</p>
<p>
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.
</p>
<p>
We use a lot of open source software, and we contribute back with pull requests and by creating our own
<a href="/open-source">open source libraries and tools</a>.
</p>
</section>
<section>
<h3>Preferred Tech Stack</h3>
<ul>
<li>Languages: Elixir, Rust, Swift</li>
<li>Web frameworks: Phoenix, Phoenix LiveView</li>
<li>Data stores: PostgreSQL, Azure SQL, Dremio</li>
</ul>
</section>
<section>
<h3>Highlights</h3>
<ul>
<li>Highly interactive web applications with full test coverage.</li>
<li>
High-volume and high-speed data pipelines, with minimal maintenance requirements over multiple years of service.
</li>
<li>Mentorship of less-experienced team members, to rapidly increase team productivity.</li>
<li>Mentorship of product management towards iterative release planning.</li>
</ul>
<h3>Case studies</h3>
<ul>
<li>Increased the data processing speed of a critical health care data pipeline, reducing data delays from 3 hours to 2.5 minutes.</li>
<li>
Processed a multi-year data backlog, with data enrichment from severely resource-constrained external
services, with real-time reprioritization of data.
</li>
<li>
Integrated data from various sources including USB-connected hardware, XML- and HL7-based healthcare APIs,
non-normalized data lakes, and legacy SQL databases.
</li>
<li>Optimized SQL queries for datasets of over 100M rows with our solid relational database skills.</li>
</ul>
</section>
<section>
<h3>Elixir</h3>
<p>
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
<a href="/open-source">many open source libraries</a>.
</p>
<p>
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
<a href="https://hex.pm/packages/pages" target="_blank">Pages</a>,
<a href="https://hex.pm/packages/html_query" target="_blank">HtmlQuery</a>,
<a href="https://hex.pm/packages/xml_query" target="_blank">XmlQuery</a>, and
<a href="https://hex.pm/packages/schema_assertions" target="_blank">Schema Assertions</a>.
</p>
<p>
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.
</p>
<p>
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).
</p>
<ul>
<li>CSV imports and exports</li>
<li>Excel imports and exports</li>
<li>XML parsing and generation</li>
<li>Event sourcing of high-volume data pipelines</li>
<li>Streaming data</li>
</ul>
</section>
<section>
<h3>Rust</h3>
<p>
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
<a href="https://github.com/synchronal/specter" target="_blank">Rust libraries such as webrtc-rs</a>.
</p>
<p>
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.
</p>
</section>
<section>
<h3>Developer workflow and tooling</h3>
<p>
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.
</p>
<p>
For this purpose, we have built two tools:
<a href="https://github.com/synchronal/medic-rs" target="_blank">Medic</a> and
<a href="https://github.com/synchronal/dyd" target="_blank">Daily Diff</a>.
</p>
</section>
<section>
<h2>Want to talk about working together?</h2>
<p>Email us at <a href="mailto:contact@reflective.dev">contact@reflective.dev</a>.</p>
</section>
</main>
<footer id="footer">
<ul class="icons">
<li>
<a href="https://github.com/reflective-dev" class="icon fa-github"><span class="label">GitHub</span></a>
</li>
<li>
<a href="https://www.linkedin.com/company/reflective-software" class="icon fa-linkedin"
><span class="label">LinkedIn</span></a
>
</li>
</ul>
<ul class="copyright">
<li>© 2025 Reflective Software, LLC</li>
</ul>
</footer>
<script src="assets/js/main.js"></script>
</body>
</html>