My job postings here have had great outcomes: @rlander joined our team in 2023 and @lwhorton joined in 2024. We're still small and focused, but business demands that we do more faster. To that end, we're hiring another full-time Clojure developer.
-----------------------------------
Wanted: a mid- to senior-level Backend Clojure developer to help build https://www.recmint.com/ platform for aggregating Solar Renewable Energy Certificates.[^1] Candidates should be almost as excited by our deps.edn[^2] contents as they are about working for a compassionate company combatting climate change at the ground level. We’re still a startup (ten full-time employees and a handful of contractors) embedded within a larger solar energy company. And while we think https://what3words.com/work.scarf.chairs is an awesome place to work, there have been grumblings that we are biased so hybrid and remote-only candidates will be welcomed and subjected to occasional suggestions to relocate (at our expense) or at least visit the mother ship a couple of times a year. Candidates for this position must be US-based.
Compensation for this full-time position will vary ($150K - $185K per year) with experience and skills. Benefits are strong and compassionate, and the company culture is a breath of fresh air. You’ll need a conversation with the team to really appreciate it though. To apply, submit a formal application https://recmint.com/job-senior-back-end-software-developer and DM me (@cch1) with a note about your application so that it doesn't get lost in the billions of AI-generated garbage applications.
In addition to the libraries in our deps.edn[^2], if you have experience any of the following you will get extra consideration:
• Datomic Cloud. We are "all-in" on Datomic Cloud as both a hosting environment and a Database.
• ERP or business applications: Do you know the difference between inventory and work in progress? How about a purchase order and a purchase contract?
• Unpoly, or more generally, HTMX.
• OAuth: do you know the consequences of allowing a refresh token to expire? Do you know what standards OAuth 2.0 refresh tokens follow?
• JSON:API: do you know how to add metadata to a JSON:API response?
• AirTable: we're migrating an AirTable-based psuedo-accounting system to Clojure. If you have experience with such integrations, it will help.
• bubble: our customer-facing front-end is based on bubble. Making sure we feed the right data to bubble is Job One of our API.
In closing, I request your patience as we sift through the certain flood of mostly unqualified and suspiciously similar applications.
[^1]: Don’t worry if you have never heard of an SREC -I didn’t either before I started working here. SRECs solve this problem: prove that you have generated solar energy in lieu of consuming (probably CO2-generating) energy from your utility company. The resulting certificates are saleable assets in many states in the US.
[^2]: In lieu of prose about our tech stack, here are excerpts from our deps.edn:
edn
...
babashka/fs {:mvn/version "0.5.30"}
backtick/backtick {:mvn/version "0.4.0"}
buddy/buddy-core ^{:antq/exclude true} {:mvn/version "1.11.423"}
buddy/buddy-sign {:mvn/version "3.6.1-359"}
com.brunobonacci/mulog {:mvn/version "0.9.0"}
com.brunobonacci/mulog-cloudwatch {:mvn/version "0.9.0"}
com.brunobonacci/mulog-slack {:mvn/version "0.9.0"}
com.cognitect/anomalies {:mvn/version "0.1.12"}
com.cognitect/http-client {:mvn/version "1.0.127"}
com.cognitect.aws/api ^:antq/exclude {:mvn/version "0.8.686"}
com.cognitect.aws/cognito-idp {:mvn/version "871.2.32.30"}
com.cognitect.aws/iam {:mvn/version "871.2.39.3"}
com.cognitect.aws/s3 ^:antq/exclude {:mvn/version "848.2.1413.0"}
com.cognitect.aws/secretsmanager {:mvn/version "871.2.39.3"}
com.cognitect.aws/sns {:mvn/version "871.2.32.15"}
com.cognitect.aws/sqs {:mvn/version "871.2.34.1"}
com.cognitect.aws/ssm {:mvn/version "871.2.38.3"}
com.cognitect.aws/sts {:mvn/version "871.2.39.3"}
com.datomic/ion {:mvn/version "1.0.71"}
com.datomic/client-cloud {:mvn/version "1.0.131"}
org.threeten/threeten-extra {:mvn/version "1.8.0"}
com.github.librepdf/openpdf ^{:antq/exclude true
:transitive [:java-version]} {:mvn/version "2.0.5"}
com.github.recbus/valuehash {:git/url ""
:sha "14c9efaaba223f01f98ee67a5cee7d49dcb3063f"}
com.widdindustries/time-literals {:mvn/version "0.1.10"}
danlentz/clj-uuid {:mvn/version "0.2.0"}
hiccup/hiccup {:mvn/version "2.0.0"}
integrant/integrant {:mvn/version "1.0.1"}
io.xapix/paos {:mvn/version "0.2.5"}
lambdaisland/uri {:mvn/version "1.19.155"}
lambda-toolshed/papillon ^:antq/exclude {:git/url ""
:sha "17d2eb65dd8a0b03a186f48381ec2727289e6b58"
:exclusions [org.clojure/clojurescript]}
meander/epsilon {:mvn/version "0.0.650"}
metosin/malli ^{:antq/exclude true} {:mvn/version "0.17.0"}
metosin/muuntaja {:mvn/version "0.6.8"}
org.babashka/http-client {:mvn/version "0.4.23"}
org.clojure/alpha.spec {:git/url ""
:sha "eb94e46853d90153ba6dc72a4093719f38a90a4a"}
org.clojure/clojure ^{:antq/exclude true
:transitive [:ion-runtime]} {:mvn/version "1.11.4"}
org.clojure/core.async {:mvn/version "1.8.741"}
org.clojure/core.cache {:mvn/version "1.1.234"}
org.clojure/core.memoize {:mvn/version "1.1.266"}
org.clojure/data.csv {:mvn/version "1.1.0"}
org.clojure/data.json ^:antq/exclude {:mvn/version "2.4.0"}
org.clojure/data.xml {:mvn/version "0.2.0-alpha9"}
org.clojure/tools.macro {:mvn/version "0.2.1"}
recbus/caribou {:git/url ""
:sha "4dc6962f5b8b69205bb4841dd369a5fc49f80836"}
enlive/enlive {:mvn/version "1.1.6"}
...
props for the job post, if I were a fit I would have applied
As of right now, I am closing the application phase of this job. For all candidates who have submitted a job, thank you. I will respond to each of you individually regardless of outcome. If you missed the deadline, know that we hire about once a year and I hope to do this again.
Great job post! EU based for me unfortunately
I'm going to close applications for this at midnight on Sunday 28 December 2025.
Sharing your deps.edn file is a great way to show off the technology knowledge required! I'm stealing that idea 👀
I've gotten nothing but positive comments on that approach here. Know your audience!