I write open-source developer tools to speedup engineering of scalable software. Foci on: cross-platform, multi-ML, multicloud, and compilers to translate across codebases.
From one [e.g., embedded] device to 10,000 servers:
- [old] 59+ Python repos with "off" prefix;
- [new] cross-platform [very] cross-platform package managers:
- C89 base depending on each OS's crypto and network lib libacquire;
- rvm/nvm style cross-platform package managers
- postgres-version-manager-go in Go
- "version-manager-rs" suffixed and verman-schema-rs Rust crates
Purpose | Repo |
---|---|
Provision nodes specified in JSON, across 50+ clouds | offstrategy |
SSH into node provisioned by offstrategy|offset | offshell |
Deprovision node provisioned by offstrategy|offset from cloud providers | offswitch |
Bring Your Own Node (BYON) [so can use ↕] | offset |
Deploy any of 50 "offregister-" prefixed softwares—including clustered databases—to nodes provisioned by offstrategy|offset | offregister |
- Support for more cloud vendors;
- Uses normal Python packages deployable to PyPi, as opposed to Puppet/Chef/Ansible with their custom systems;
- [WiP] Deploy to any operating system (cross-platform: SunOS, Windows, Linux, macOS, OpenBSD);
- [WiP] Experiment with different versions of each package, including clustered variants.
From one cloud vendor to many:
- [old] See aforementioned Apache Libcloud and Fabric utilising Python repos;
- [new] C89 google-cloud-c library (soon: auto-generate entire library, and other vendors);
- [planned] autogenerate vendors other than Google Cloud.
- [C89] Can be called from most any programming language and runs in all environments;
- [planned] Build specific abstractions for multicloud, like: container-as-a-Service; ML-as-a-Service; Storage-as-a-Service; &etc.
From one machine-learning framework to many:
- [old] Python repo from my first PhD: ml-glaucoma;
- [new] 10+ Python repos with "ml-params" prefix:
Other vendors | |
---|---|
tensorflow | pytorch |
keras | skorch |
flax | sklearn |
trax | xgboost |
jax | cntk |
- Keep up-to-date with latest innovations without porting to favourite framework;
- Experiment with every model on all major Python ML frameworks.
Compilers to automatically translate—within and—between:
Language | Compiler |
---|---|
Python | cdd-python |
C | cdd-c |
Java (Android) | cdd-java |
Kotlin (Android) | cdd-kotlin |
Swift (iOS) | cdd-swift |
TypeScript (Angular) | cdd-ts-ng |
Rust | cdd-rust |
- [intra-language] Automatically synchronise tests (& mocks), docs, types & interfaces;
- [exolanguage] Translate changes across language boundaries;
- Develop multi-language applications—e.g., Android, iOS, web, backend—as fast as single-language applications (compare with: Django or Ruby on Rails) and at a higher quality thanks to increased consistency, test coverage and doc coverage.