An open API service indexing awesome lists of open source software.

https://github.com/RayBenefield/dev-xp

:runner: A Monorepo of projects reaching towards EPIC proportions, maintained by one person.
https://github.com/RayBenefield/dev-xp

10x automation ci-cd company dex dx monorepo nodejs npm pomodoro semcom solo testing transmutation worklog

Last synced: about 1 month ago
JSON representation

:runner: A Monorepo of projects reaching towards EPIC proportions, maintained by one person.

Awesome Lists containing this project

README

          



RayBenefield Logo



# Dev XP

[![GitHub commit activity per year](https://img.shields.io/github/commit-activity/y/RayBenefield/dev-xp.svg?style=flat)](https://github.com/RayBenefield/dev-xp/graphs/commit-activity)
[![Travis CI](https://api.travis-ci.org/RayBenefield/dev-xp.svg?branch=master)](https://travis-ci.com/RayBenefield/dev-xp)
[![MIT License](https://img.shields.io/apm/l/atomic-design-ui.svg?)](https://github.com/RayBenefield/dev-xp/blob/master/LICENSE)
[![Known Vulnerabilities](https://snyk.io/test/github/RayBenefield/dev-xp/badge.svg)](https://snyk.io/test/github/RayBenefield/dev-xp)

> A **Monorepo** of every project I work on, only maintained by me. It
> includes `node` packages, CLI tools, `lua` scripts, `Core Games` scripts,
> websites, AHK macros, fish plugins, `kak`/`vim` configs, and much more.

## What is this?

[**Dev XP**](https://github.com/RayBenefield/dev-xp/) is a long term experiment
featuring centered around a single question:

> How close can a single developer get to [**Google** scale
> development](https://cacm.acm.org/magazines/2016/7/204032-why-google-stores-billions-of-lines-of-code-in-a-single-repository/fulltext)?

My name is [**Ray Benefield**](https://github.com/RayBenefield/) and I have a
theory:

> Entirely *new* and *high quality* open source SaaS platforms can be created in
> **LESS than a week**; by combining the world's understanding of software
> architecture, quality engineering, productivity, and project management with
> the currently available tools and services throughout the open source
> community.

From my point of view, this is a **bold** statement from anyone, but diving
deeper it is also very "flimsy" in its claim. Sooo...

Clarifications

---

The following bits are made to sort of define a "range" of what I mean by each
part of the above statement. They are not exact, not decisions, not solid
reasoning, etc. This is an experiment after all and every part of this will
constantly be changing as experience is gained.

---

End Product

---

I need to pseudo define "*new* and *high quality* open source SaaS platforms".
Here's what my expectations are for a "complete" platform might look like:

- Designed and developed **API First** to allow for integration opportunities
- Open sourced codebase, enabling dedicated developers to **assist in growth**
- Full **multi-tenant** solutions, maintaining users/organizations/etc. systems
- Realtime and high performance website meeting **PWA quality standards**
- **Fire and forget** persistence layer that is easy to scale with new features
- Accept payments from a multiple vendors allowing **monetization from day 1**
- **Trivial to develop** for the core developers to extend with new features

Again... not ***exactly*** what I'm shooting for, but I'm drawing a picture.
Bare with me. ;)

---

Engineering

---

We have learned a LOT over the many decades of software development. Below are
just some of the **many principles** that can enable our goal (no particular
order or reason for these being list, just potential):

- **Modularity**, **Code Reuse**, **Extensibility**, etc... you've heard of 'em
- Benefits of **Declarative** vs **Imperative** for ease of development
- Shared development tooling in the form of **testing**, **scaffolding**, etc.
- The value of going 100% **Open source** with your entire codebase
- Data processing patterns like **Event Sourcing** and **Stream Programming**
- Principles like **SOLID** with **dependency injection** and **open/closed**
- And sooo much more...

Some of those may not even be that important in the end, but the point is that
we've learned a lot. Seriously...

---

Productivity

---

People are learning more and more ways to improve their productivity.
Seriously... have you seen any of these **TED** talks or **Youtube** videos or
articles. I mean **Life Hacker** is totally a thing.

- **Pomodoro Technique** - 25 minute work sessions
- **Habit Building** - Routines make long stretches of work easy
- **Standardization** - When a group of tasks follow the same general rules
- **Planning/Roadmapping** - Preparing your day, or knowing your next steps
- **Health Management** - A healthy mind and body are absolutely important
- **Free Time** - Cuz constantly working is not efficient
- **Automation** - Well if a computer could do it for you, go for it

The idea here is that we have SOOO many ways to make time in this world.

---

Project/Product Management

---

Dem business savy people have learned a lot as well and a lot can be learned
from the many approaches that have been taken over the decades. Expect many
buzzwords... lol.

- **Agile Development**... we all pretty much know this stuff
- **Interal Communication Management** like how much, who, when, what, why?
- The concept of **Minimum Viable Product** is a very powerful one
- **Lean Startup Methodology** cuz less is more folks
- **Public Interaction** for things like building relations with customers
- **Transparency** in things like reasoning in decision making
- **Disaster Management** because you can't escape failure

Not my strongest portion, but still very important.

---

Tools and Services

---

Have you seen the open source landscape? Do you know how many products are
getting released every day? It is absolutely insane. So many of these can
accelerate your progress.

- **Javascript** can be used literally everywhere now thanks to **Node.js**
- **NPM** is a massively growing repository of tools/libraries/frameworks
- **Platforms as a Service** like **AWS**, **Google Cloud**, **Azure**
- **Functions as a Service** like **Lambda**, **Cloud Functions**, etc.

---

## The Road Ahead

**NOTE:** *I don't expect the above goal to be achievable for a year or two.*

In order to create **SaaS** platforms on a regular basis, a strong base needs to
be built from an engineering perspective. The early work for this project is all
based around creating the most streamlined development environment possible.
Publishing new open source tools to accelerate engineering in other places will
absolutely be needed. There are a lot of pieces to creating software so each of
those pieces have to be slowly built on top of each other.

1. *Developing and releasing [**NPM**](https://www.npmjs.com/) packages should
take less than a single
[**Pomodoro**](https://lifehacker.com/productivity-101-a-primer-to-the-pomodoro-technique-1598992730)*
1. *More steps to come...*

## Released Projects

***None at this time***

## Projects in Development

- [**KI/KD**](https://github.com/RayBenefield/dev-xp/tree/master/src/node_modules/kikd)
- [**KLI**](https://github.com/RayBenefield/dev-xp/tree/master/src/node_modules/kli)
- [**Kape**](https://github.com/RayBenefield/dev-xp/tree/master/src/node_modules/kape)
- [**SemCom**](https://github.com/RayBenefield/dev-xp/tree/master/src/node_modules/semcom)
- [**Transmutation**](https://github.com/RayBenefield/transmutation)
- [**DEX**](https://github.com/RayBenefield/dev-xp/tree/master/src/node_modules/dex)