Nelo Mitranim
me@mitranim.com
https://mitranim.com
Overview
Nelo Mitranim.
Lead software developer and architect. Main expertise: web applications (full stack).
Passionate about open source software. See works.
Languages
Preferred: Go.
Solid experience: Go, JS/Deno/Node, Clojure, Python.
Limited experience: Rust, Haskell.
Passing familiarity: Swift, C, Common Lisp, Scheme, Erlang.
Databases
Preferred: Postgres.
Solid experience:
- SQL databases: Postgres (http://postgresql.org).
Experience:
- Datomic (https://www.datomic.com).
- Firebase (https://firebase.google.com).
- Document databases: ArangoDB, CouchDB.
Applications
Solid experience:
- API backends (REST/websocket/GRPC).
- Hybrid SSR+SPA apps.
- Traditional web apps (SSR + forms).
- Dynamic web apps (SPA).
- Ethereum apps; see github.com/purelabio/eth.
Misc
Favorite pastimes: open source development, computer games, anime.
Enthusiastic about software, physics, biology, philosophy, culture, computer games, anime, science fiction.
Always up-to-date link to resume. (Most browsers let you print to PDF.)
Contacts
Discord: mitranim
Telegram: Mitranim
@ Email: me@mitranim.com; I am slow on email, please try messengers first.
Links
Works
Arbitrary Highlights
- Core Spirit: current employer.
- Astrotips: video guides on Astroneer, an amazing game about surviving, exploring and building on alien planets.
- ProstoPoi: poi community website. We have our own video lessons, go check us out!
- My works on Github.
Chronological
Sorted by start time. Some "old" things are actively used and developed. Some private projects are excluded.
Name | Desc | Role | Tech | Start | Status/End |
---|---|---|---|---|---|
gg | Essential tools missing from the Go standard library. | author | Go | 2022 | |
js | Kinda "JS standard library" that doesn't suck. Also a tiny framework for JS apps. | author | JS | 2022 | |
ur | Superior URL and query implementation for JS. Similar to built-in URL but actually usable. | author | JS | 2022 | subsumed |
test | Superior testing and benchmarking library for JS. Runs in all environments. High benchmark accuracy. | author | JS | 2021 | subsumed |
oas | OpenAPI specs for your Go server, generated at server runtime using reflection. | author | Go | 2021 | |
gr | Short for "Go Request-Response". Shortcuts for making HTTP requests and reading HTTP responses in Go. | author | Go | 2021 | |
ded | Experimental tool for deduplicating concurrent background operations in Go, with limited-time caching. | author | Go | 2021 | |
gt | Short for "Go Types". Important data types missing from the Go standard library. | author | Go | 2021 | |
cc | Tiny Go tool for running multiple functions concurrently and collecting their results into an error slice. | author | Go | 2021 | |
cmd | Missing feature of the Go standard library: ability to define subcommands while using | author | Go | 2021 | |
sublime-scss | Redesigned CSS and SCSS syntaxes for Sublime Text. Built on open-ended principles. Designed for forward compatibility. | author | Sublime | 2021 | |
ProstoPoi SSG | Poi community website. Runs since 2014. Now converted from Django (Python) to static generation (JS), open sourced. | implementer | JS | 2021 | |
gax | Simple system for writing HTML as Go code. Use normal Go conditionals, loops and functions. Benefit from typing and code analysis. Better performance than templating. | author | Go | 2021 | |
imperouter | Simple imperative router for hybrid SSR+SPA. | author | JS | 2021 | subsumed |
jol | JS Collection Classes. Tiny extensions on JS built-in classes, with nice features such as easy-to-use typed collections, dictionary with structured keys, and more. | author | JS | 2021 | subsumed |
web-starter | Starter templates for minimal web apps, from simplest to complex. Sucks less than X. Work in progress. | author | JS | 2021 | |
afr | Flexible library for serving files, with optional client integration for CSS injection and page reload. | author | JS | 2021 | subsumed |
espo | Observables via proxies. Particularly suited for UI programming. Supports automatic, implicit sub/resub and resource deinit. | author | JS | 2021 | subsumed |
prax | Simple rendering library for hybrid SSR+SPA. Superior replacement for rendering frameworks like React. | author | JS | 2021 | subsumed |
jtg | "JS Task Group". Simple JS-based replacement for Make, Gulp, etc. | author | JS | 2021 | |
try | Shorter error handling in Go. Supports two styles: explicit | author | Go | 2021 | |
srv | Extremely simple Go tool that serves files out of a given folder, using a file resolution algorithm similar to Github Pages, Netlify, or the default Nginx config. | author | Go | 2021 | |
gtg | Go task group / task graph. Good for CLI task orchestration. Replaces Make and Mage. | author | Go | 2021 | |
gord | Simple ordered sets for Go. | author | Go | 2021 | |
goh | Go HTTP handlers. Utility types that represent a not-yet-sent HTTP response as a value (status, header, body) with NO added abstractions or interfaces. | author | Go | 2021 | |
frac | Missing feature of Go stdlib: integers ↔︎ fractional numeric strings, without rounding errors or bignums. Arbitrary fraction precision and radix. | author | Go | 2021 | |
rout | Imperative router for Go HTTP servers. Procedural control flow with declarative syntax. Doesn't need middleware. | author | Go | 2021 | |
sublime-sql | Sublime Text syntax definitions for SQL, rebuilt with better semantics. Currently only Postgres dialect. | author | Sublime | 2021 | |
sublime-lisp | Lisp support for Sublime Text. Supports multiple dialects. Immature work in progress. | author | Sublime | 2021 | |
emptty | Clears the terminal, for real. | author | Go | 2021 | |
sublime-forth | Sublime Text syntax for the Forth programming language. | author | Sublime | 2021 | |
sublime-rebol | Immature syntax for Rebol/Red in Sublime Text. | author | Sublime | 2020 | |
jsonfmt | Flexible JSON formatter. Supports comments, single-line until width limit, fixes punctuation. Library and optional CLI. | author | Go | 2020 | |
jel | "JSON Expession Language". Expresses a whitelisted subset of SQL with simple JSON structures. | author | Go | 2020 | subsumed |
sqlb | SQL query builder in Go. Highly flexible and efficient. | author | Go | 2020 | |
sqlp | Parser for rewriting foreign code embedded in SQL. | author | Go | 2020 | |
gos | Tool for mapping between Go structs and plain SQL. Not an ORM. | author | Go | 2020 | |
rd | Tool for decoding HTTP requests into Go structs. Transparently supports multiple formats: JSON, URL-encoded, multipart. | author | Go | 2020 | |
untext | Missing feature of the Go standard library: unmarshal arbitrary string into arbitrary value. | author | Go | 2020 | |
rf | Important utilities missing from the | author | Go | 2020 | |
sublime-fmt | Sublime Text generic formatter plugin; formats arbitrary code by calling arbitrary executables, such as | author | Python | 2020 | |
Core Spirit | Current employer. Platform for practitioners of spiritual arts. Combines articles, services, and more. | tech lead | Postgres, Go, JS | 2020 | |
eth | Client library for interacting with Ethereum from Go. Superior alternative to the "official" client libraries provided with | author | Go | 2018 | 2018 |
gow | Missing watch mode for Go commands. Watch Go files and execute a command like | author | Go | 2018 | |
repr | Pretty-print Go data structures as valid Go code. | author | Go | 2018 | |
sublime-goasm | Syntax definition for Go assembly for Sublime Text. | author | Sublime | 2018 | |
sublime-caser | Sublime Text plugin for converting typographic cases. | author | Sublime | 2018 | |
sublime-gox | [Merged into ST] Sublime Text syntax for Go. | author | Sublime | 2018 | |
sb | Minimal CSS foundation. | author | CSS | 2018 | |
papyre | Build tool for static websites. Bring your own rendering engine. Works well with React and Netlify CMS. | author | JS | 2018 | 2018 |
sublime-themes | Custom color schemes for Sublime Text. | author | Sublime | 2017 | |
wordplay | the PUNS 🔥 | colab | 🧠 | 2017 | |
epdf | Render any URL to PDF using Electron. | author | JS, Node | 2017 | 2017 |
posterus | Asynchronous primitives. Superior replacement for JS promises. Synchronous by default. Supports true cancelation. Supports fibers. | author | JS | 2017 | paused |
Bolala | E-commerce platform. Had some interesting tech but didn't launch. Permanently down. | frontend | JS | 2017 | 2018 |
clj-ws-client | WebSocket client (not server) written in pure Clojure with no dependencies. Less bad than most alternatives. | author | Clojure | 2017 | 2017 |
clojure-datomic-starter | Quickstart/template for a Clojure/Ring webserver with Datomic. | author | Clojure | 2017 | 2017 |
clojure-auth0-starter | Quickstart/template for a Clojure/Ring webserver with Auth0. | author | Clojure | 2017 | 2017 |
clojure-forge | Development tool for Clojure. Especially useful for Ring servers. Watches files, reloads code, restarts system, displays system errors on a webpage. | author | Clojure | 2017 | 2018 |
sublime-clojure | [Merged into ST] Sublime Text syntax for Clojure. | author | Sublime | 2017 | |
Shanzhai City | Various webapps and websites for Shanzhai City, a joint US-Chinese startup aiming at making charity effective. | tech lead | Go, JS, Clojure | 2017 | 2018 |
Render.js | Experimental service for prerendering JS SPA into HTML. An order of magnitude faster than the alternatives. | member | JS, Node | 2016 | 2017 |
fpx | Functional programming utils and type assertions for JS. | author | JS | 2016 | subsumed |
emerge | Utils for using plain JS objects as immutable data structures with extremely memory-efficient updates. Heavily inspired by clojure.core. Much lighter and simpler than the popular alternatives. | author | JS | 2015 | paused |
chat | Realtime chat demo made with Firebase and React. | author | JS, Firebase, React | 2015 | |
statil | Simple templating utility that uses JS for embedded scripting. Superseded by Prax. | author | JS | 2015 | replaced |
alder | Experimental rendering library inspired by React and Reagent. Represents view components with plain functions and DOM with plain JavaScript data structures. Superseded by Prax. | author | JS | 2015 | replaced |
ToBox | Stylish, visual platform for creating online shops. Part of the web frontend team. Permanently down. | member | JS, React | 2015 | 2016 |
atril | Experimental rendering library inspired by React and Angular. Documented with flashy demos, but unused. Superseded by Prax. | author | TypeScript | 2015 | replaced |
GorodDeti | First version of a website about the kindergarten ran by a friend's friend. See https://goroddeti.ru for the current version (not mine). | implementer | JS, SCSS | 2015 | 2015 |
simple-pjax | Drop-in JS library that dramatically speeds up page transitions on server-rendered websites. See the explanatory blog post. | author | JS | 2015 | |
xhttp | Shortcuts for the native JS fetch/Request/Response API. Provides a fluent builder-style API for request building and response reading. | author | JS | 2014 | subsumed |
stylific | CSS library/framework. Similar to Bootstrap, built on different principles. Accompanied by stylific-lite, succeeded by sb. | author | SCSS | 2015 | paused |
codex | Generator of random synthetic words or names. | author | Go | 2015 | paused |
ProstoPoi | Poi community website. We have our own video lessons, go check us out! | implementer | Python, Django, React | 2014 | |
jisp | Lisp-style language that compiles to JavaScript. | author | JS, Jisp | 2014 | update upcoming |
- gg (author; Go; 2022+)
Essential tools missing from the Go standard library.
- js (author; JS; 2022+)
Kinda "JS standard library" that doesn't suck. Also a tiny framework for JS apps.
- ur (author; JS; 2022+; subsumed)
Superior URL and query implementation for JS. Similar to built-in URL but actually usable.
- test (author; JS; 2021+; subsumed)
Superior testing and benchmarking library for JS. Runs in all environments. High benchmark accuracy.
- oas (author; Go; 2021+)
OpenAPI specs for your Go server, generated at server runtime using reflection.
- gr (author; Go; 2021+)
Short for "Go Request-Response". Shortcuts for making HTTP requests and reading HTTP responses in Go.
- ded (author; Go; 2021+)
Experimental tool for deduplicating concurrent background operations in Go, with limited-time caching.
- gt (author; Go; 2021+)
Short for "Go Types". Important data types missing from the Go standard library.
- cc (author; Go; 2021+)
Tiny Go tool for running multiple functions concurrently and collecting their results into an error slice.
- cmd (author; Go; 2021+)
Missing feature of the Go standard library: ability to define subcommands while using
flag
. - sublime-scss (author; Sublime; 2021+)
Redesigned CSS and SCSS syntaxes for Sublime Text. Built on open-ended principles. Designed for forward compatibility.
- ProstoPoi SSG (implementer; JS; 2021+)
Poi community website. Runs since 2014. Now converted from Django (Python) to static generation (JS), open sourced.
- gax (author; Go; 2021+)
Simple system for writing HTML as Go code. Use normal Go conditionals, loops and functions. Benefit from typing and code analysis. Better performance than templating.
- imperouter (author; JS; 2021+; subsumed)
Simple imperative router for hybrid SSR+SPA.
- jol (author; JS; 2021+; subsumed)
JS Collection Classes. Tiny extensions on JS built-in classes, with nice features such as easy-to-use typed collections, dictionary with structured keys, and more.
- web-starter (author; JS; 2021+)
Starter templates for minimal web apps, from simplest to complex. Sucks less than X. Work in progress.
- afr (author; JS; 2021+; subsumed)
Flexible library for serving files, with optional client integration for CSS injection and page reload.
- espo (author; JS; 2021+; subsumed)
Observables via proxies. Particularly suited for UI programming. Supports automatic, implicit sub/resub and resource deinit.
- prax (author; JS; 2021+; subsumed)
Simple rendering library for hybrid SSR+SPA. Superior replacement for rendering frameworks like React.
- jtg (author; JS; 2021+)
"JS Task Group". Simple JS-based replacement for Make, Gulp, etc.
- try (author; Go; 2021+)
Shorter error handling in Go. Supports two styles: explicit
try
and exceptions. - srv (author; Go; 2021+)
Extremely simple Go tool that serves files out of a given folder, using a file resolution algorithm similar to Github Pages, Netlify, or the default Nginx config.
- gtg (author; Go; 2021+)
Go task group / task graph. Good for CLI task orchestration. Replaces Make and Mage.
- gord (author; Go; 2021+)
Simple ordered sets for Go.
- goh (author; Go; 2021+)
Go HTTP handlers. Utility types that represent a not-yet-sent HTTP response as a value (status, header, body) with NO added abstractions or interfaces.
- frac (author; Go; 2021+)
Missing feature of Go stdlib: integers ↔︎ fractional numeric strings, without rounding errors or bignums. Arbitrary fraction precision and radix.
- rout (author; Go; 2021+)
Imperative router for Go HTTP servers. Procedural control flow with declarative syntax. Doesn't need middleware.
- sublime-sql (author; Sublime; 2021+)
Sublime Text syntax definitions for SQL, rebuilt with better semantics. Currently only Postgres dialect.
- sublime-lisp (author; Sublime; 2021+)
Lisp support for Sublime Text. Supports multiple dialects. Immature work in progress.
- emptty (author; Go; 2021+)
Clears the terminal, for real.
- sublime-forth (author; Sublime; 2021+)
Sublime Text syntax for the Forth programming language.
- sublime-rebol (author; Sublime; 2020+)
Immature syntax for Rebol/Red in Sublime Text.
- jsonfmt (author; Go; 2020+)
Flexible JSON formatter. Supports comments, single-line until width limit, fixes punctuation. Library and optional CLI.
- jel (author; Go; 2020+; subsumed)
"JSON Expession Language". Expresses a whitelisted subset of SQL with simple JSON structures.
- sqlb (author; Go; 2020+)
SQL query builder in Go. Highly flexible and efficient.
- sqlp (author; Go; 2020+)
Parser for rewriting foreign code embedded in SQL.
- gos (author; Go; 2020+)
Tool for mapping between Go structs and plain SQL. Not an ORM.
- rd (author; Go; 2020+)
Tool for decoding HTTP requests into Go structs. Transparently supports multiple formats: JSON, URL-encoded, multipart.
- untext (author; Go; 2020+)
Missing feature of the Go standard library: unmarshal arbitrary string into arbitrary value.
- rf (author; Go; 2020+)
Important utilities missing from the
reflect
package in the Go standard library. - sublime-fmt (author; Python; 2020+)
Sublime Text generic formatter plugin; formats arbitrary code by calling arbitrary executables, such as
gofmt
. - Core Spirit (tech lead; Postgres, Go, JS; 2020+)
Current employer. Platform for practitioners of spiritual arts. Combines articles, services, and more.
- eth (author; Go; 2018—2018)
Client library for interacting with Ethereum from Go. Superior alternative to the "official" client libraries provided with
go-ethereum
. - gow (author; Go; 2018+)
Missing watch mode for Go commands. Watch Go files and execute a command like
go run
orgo test
. - repr (author; Go; 2018+)
Pretty-print Go data structures as valid Go code.
- sublime-goasm (author; Sublime; 2018+)
Syntax definition for Go assembly for Sublime Text.
- sublime-caser (author; Sublime; 2018+)
Sublime Text plugin for converting typographic cases.
- sublime-gox (author; Sublime; 2018+)
[Merged into ST] Sublime Text syntax for Go.
- sb (author; CSS; 2018+)
Minimal CSS foundation.
- papyre (author; JS; 2018—2018)
Build tool for static websites. Bring your own rendering engine. Works well with React and Netlify CMS.
- sublime-themes (author; Sublime; 2017+)
Custom color schemes for Sublime Text.
- wordplay (colab; 🧠; 2017+)
the PUNS 🔥
- epdf (author; JS, Node; 2017—2017)
Render any URL to PDF using Electron.
- posterus (author; JS; 2017+; paused)
Asynchronous primitives. Superior replacement for JS promises. Synchronous by default. Supports true cancelation. Supports fibers.
- Bolala (frontend; JS; 2017—2018)
E-commerce platform. Had some interesting tech but didn't launch. Permanently down.
- clj-ws-client (author; Clojure; 2017—2017)
WebSocket client (not server) written in pure Clojure with no dependencies. Less bad than most alternatives.
- clojure-datomic-starter (author; Clojure; 2017—2017)
Quickstart/template for a Clojure/Ring webserver with Datomic.
- clojure-auth0-starter (author; Clojure; 2017—2017)
Quickstart/template for a Clojure/Ring webserver with Auth0.
- clojure-forge (author; Clojure; 2017—2018)
Development tool for Clojure. Especially useful for Ring servers. Watches files, reloads code, restarts system, displays system errors on a webpage.
- sublime-clojure (author; Sublime; 2017+)
[Merged into ST] Sublime Text syntax for Clojure.
- Shanzhai City (tech lead; Go, JS, Clojure; 2017—2018)
Various webapps and websites for Shanzhai City, a joint US-Chinese startup aiming at making charity effective.
- Render.js (member; JS, Node; 2016—2017)
Experimental service for prerendering JS SPA into HTML. An order of magnitude faster than the alternatives.
- fpx (author; JS; 2016+; subsumed)
Functional programming utils and type assertions for JS.
- emerge (author; JS; 2015+; paused)
Utils for using plain JS objects as immutable data structures with extremely memory-efficient updates. Heavily inspired by clojure.core. Much lighter and simpler than the popular alternatives.
- chat (author; JS, Firebase, React; 2015+)
Realtime chat demo made with Firebase and React.
- statil (author; JS; 2015—2021; replaced)
Simple templating utility that uses JS for embedded scripting. Superseded by Prax.
- alder (author; JS; 2015—2015; replaced)
Experimental rendering library inspired by React and Reagent. Represents view components with plain functions and DOM with plain JavaScript data structures. Superseded by Prax.
- ToBox (member; JS, React; 2015—2016)
Stylish, visual platform for creating online shops. Part of the web frontend team. Permanently down.
- atril (author; TypeScript; 2015—2015; replaced)
Experimental rendering library inspired by React and Angular. Documented with flashy demos, but unused. Superseded by Prax.
- GorodDeti (implementer; JS, SCSS; 2015—2015)
First version of a website about the kindergarten ran by a friend's friend. See https://goroddeti.ru for the current version (not mine).
- simple-pjax (author; JS; 2015+)
Drop-in JS library that dramatically speeds up page transitions on server-rendered websites. See the explanatory blog post.
- xhttp (author; JS; 2014+; subsumed)
Shortcuts for the native JS fetch/Request/Response API. Provides a fluent builder-style API for request building and response reading.
- stylific (author; SCSS; 2015+; paused)
CSS library/framework. Similar to Bootstrap, built on different principles. Accompanied by stylific-lite, succeeded by sb.
- codex (author; Go; 2015+; paused)
Generator of random synthetic words or names.
- ProstoPoi (implementer; Python, Django, React; 2014+)
Poi community website. We have our own video lessons, go check us out!
- jisp (author; JS, Jisp; 2014+; update upcoming)
Lisp-style language that compiles to JavaScript.