Senior full-stack software engineer with 15+ years experience building & maintaining quality services, systems and solutions; tools and libraries to accelerate development; usable, performant and attractive applications.
Services
- REST & HATEOAS
- OpenAPI & documentation-driven APIs
- Microservice architecture
- Fault tolerance
- Composable systems
Web UI & UX
- React
- DOM & Web APIs
- Solid
- Web performance
- Reactivity
- UI & UX design
- Custom JSX
- Vue
- A11y
DSLs
- Domain modeling & extensibility
- Interpreters & runtime
- Grammar-defined parsers
- Domain-specialized tools
- Runtime optimization
Languages
- TypeScript
- JavaScript
- Clojure
- XPath
- ODK XForms
- CSS
- HTML
- SQL
- XSLT
- Python
- Swift
- Java
Recent Experience
ODK
ODK builds a comprehensive suite of open source data collection tools, used globally across a wide variety of campaigns with high social impact in public health & beyond.
Initially joined to maintain Enketo, ODK’s inherited/legacy web-based data collection tool.
Conceived, created & led development of ODK Web Forms, ODK’s replacement for Enketo & complement to their flagship Collect product for Andriod devices. Successfully shipped to users as of early 2025.
Prototyped initial design, architecture & implementation of Web Forms, supporting evaluation of long-term viability for the project by ODK leadership.
Primarily responsible for design & implementation of Web Forms XPath functionality. Achieved full W3C XPath 1.0 standards compliance; extension of XPath language semantics to support additional data types; development of a broad library of custom functions supporting the underlying ODK XForms specification; adapted interpreter to provide XPath evaluation semantics in arbitrary runtime contexts, with a small & flexible adapter API.
Primarily responsible for design & implementation of the Web Forms XForms Engine. Implemented the engine’s core data model and computational graph, according to ODK XForms spec; developed the engine’s fundamental abstractions for computation as an internal reactive graph; conceived and matured the engine’s external interfaces, providing simple, cohesive & client-agnostic access to the engine’s underlying ODK XForms semantics.
Directed design & architecture of Web forms to support long-term vision for the project—anticipating unification of ODK’s data collection software across all supported platforms, and expanding functionality well beyond the project’s current, core data capture feature set.
Treez
Treez provides a full seed-to-sale catalogue of tools for inventory & process management, regulatory reporting, B2B sales, and point of sale for the legal cannabis market.
Created and maintained a set of libraries designed for rapid development of REST API services, providing simple, declarative API boundaries with runtime & static type safety, automatically generated documentation, and a clear separation of concerns between those boundaries and a service’s business logic. These libraries had been used in production for one successful service, adopted by another team for a greenfield service, and ports of all other Treez API services planned, with no significant maintenance requests.
Expanded the API translation layer built at Mister Kraken to support the regulatory reporting APIs used in markets served by Treez in CA, MI, and beyond. This also allowed the original Mister Kraken product to expand integration into those markets, and Treez to expand its operations from point of sale to a full seed-to-sale suite.
Led and maintained a robust fault tolerance service layer between Treez end-user products and regulator reporting services. This ensured that frequent and widespread errors in the regulatory agencies’ APIs did not result in a loss of compliance for Treez customers.
Promoted a team culture shift to embrace automated data correction with a historical record, and built a standard set of tools for data correction operations. These tools were used successfully for two major incidents, ensuring compliance was maintained with an auditable proof of operations log.
Mister Kraken
Mister Kraken provided a rich suite of inventory and process management tools for the legal cannabis market. The Reup and Mister Kraken teams joined forces and products in 2017.
Mister Kraken was acquired by Treez in late 2018.
Led design and development of an API translation layer which ensured a zero downtime transition for regulatory compliance when the WSLCB abruptly selected a new vendor’s incompatible reporting APIs. This ensured minimal changes in the original Mister Kraken codebase while also preparing the product for expansion into other markets where other vendor APIs were common.
Promoted a team culture shift in development and collaboration to embrace automated testing, type safety, tool-based quality assurance, CI & automated review tools, thorough manual review by team members, and collaborative design & planning processes. This significantly improved the team’s ability to deliver and maintain quality and value at a faster pace.
Adapted Reup’s frontend web app to integrate with Mister Kraken’s existing B2B sales platform. From time of release, through the Treez acquisition, to my departure, the app remained in active use with no significant change requests.
Reup
Reup was a startup in the legal recreational cannabis market, providing a B2B marketplace for retailers and manufacturers to discover and order cannabis products and supplies.
Reup was acquired by Treez in late 2018.
Shaped and refined product direction as the second engineer and fourth employee, sharing leadership on market & user research to inform core user stories and product decisions.
Led frontend architecture and spearheaded development of Reup’s web app.
Shared leadership in defining core abstractions in the product’s backend API layer to improve development safety and velocity.
Took ownership of refining and adapting UI & UX design as product requirements changed and use case complexities grew.
ClipCard
ClipCard was a set of apps and services which let users find files, notes and more across a wide variety of consumer and business cloud services by indexing those resources in a common format.
Led design and development an ETL framework used by all of ClipCard’s API integrations, providing simple, generalized interfaces to accelerate development of service API authorization, backpressure, fault tolerance and extract/integration patterns.
Contributed to 12 of ClipCard’s API integrations, leading development on integrations with Dropbox, Evernote, GitHub and Trello.
Led frontend architecture and development of ClipCard’s web app, and provided mentorship for the team member who eventually replaced me in that role as I transitioned to to lead API integration efforts.
Organized a hackathon which produced 8 API integration prototypes, ultimately leading to the company’s pivot from enterprise services to focus on cloud services and consumer adoption.
Designed and developed ClipCard for Mac.
Projects I Created
Client-agnostic, reactive runtime for ODK XForms
Extensible XPath 1.0 interpreter, supporting ODK XForms extensions, arbitrary DOM implementations
tree-sitter parser for XPath 1.0 syntax
Dark mode web extension for Hacker News.
Quick weekend project, made by request when I saw that it had been left up to the Hacker News community.
A ClojureScript wrapper for rrule.js, with common Clojure
semantics for RRule
and RRuleSet
, conforming to RFC 2445
(with some specific exceptions).
Created and open sourced at Reup for generating standardized rules for recurring dates & times.
A ClojureScript REST client, suitable for AJAX interaction with RESTful APIs.
Created and open sourced at Reup to simplify integration between ClojureScript websites & web apps and backend REST APIs.
A ClojureScript implementation of alter-var-root
.
Created to provide the same behavior as Clojure on the JVM.
Utility for exporting all of an organization’s GitHub issues and comments.
Created and open sourced at ClipCard to easily produce a full archive of an organization’s GitHub issues activity.
Open Source Contributions
ODK Web Forms UI client
Several bug fixes and feature enhancements, with ongoing involvement on the project. Microsite powers my site, thanks @natemoo-re!
Introduced the ignoreInferredTypes
option for the
prefer-readonly-parameter-types
rule to improve DX when the rule
is used with third-party libraries.
Fixed a pair of bugs where query parameters on a link were not set when the link was clicked, and where a previous location state’s query parameters were not removed when navigating to another link without those query parameters.
Added support for the :notify-command
configuration allowing
projects to run arbitrary commands once a rebuild is complete.
Projects
24 projects listed at eyelidlessness.github.io/projectsReferences
Available upon request, email gnosis@gmail.com