avatarChris St. John

Free AI web copilot to create summaries, insights and extended knowledge, download it at here

7011

Abstract

</li><li><code><b>genre_name</b>:</code> VARCHAR(100) UNIQUE NOT NULL</li><li><code><b>description</b>:</code> TEXT</li></ul><h1 id="b955">Notes:</h1><ul><li><b>Foreign Keys</b> are used to establish relationships between tables (e.g., <code>user_id</code> in Orders references <code>Users</code>, <code>book_id</code> in OrderItems references <code>Books</code>).</li><li><b>Constraints</b> such as UNIQUE, NOT NULL, and CHECK are used to ensure data integrity.</li><li><b>SERIAL</b> data type is used for auto-incrementing primary keys.</li></ul><p id="07c2">That’s what one prompt produced.</p><p id="456b">All of that.</p><p id="192a">ChatGPT prompt:</p><blockquote id="4ce0"><p><b>Prompt:</b> “Generate a PostgreSQL schema as code with the following tables and attributes: [in here… use the what was output and listed above in the previous response]</p></blockquote><p id="c3a3">Output</p><div id="94fe"><pre><span class="hljs-comment">-- Schema for an online bookstore</span>

<span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> Users ( user_id SERIAL <span class="hljs-keyword">PRIMARY</span> KEY, username <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">50</span>) <span class="hljs-keyword">UNIQUE</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>, email <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">100</span>) <span class="hljs-keyword">UNIQUE</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>, password_hash <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">255</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>, first_name <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">50</span>), last_name <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">50</span>), created_at <span class="hljs-type">TIMESTAMP</span> <span class="hljs-keyword">DEFAULT</span> <span class="hljs-built_in">CURRENT_TIMESTAMP</span> );

<span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> Books ( book_id SERIAL <span class="hljs-keyword">PRIMARY</span> KEY, title <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">255</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>, author <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">255</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>, genre <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">100</span>), price <span class="hljs-type">NUMERIC</span>(<span class="hljs-number">10</span>, <span class="hljs-number">2</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>, published_date <span class="hljs-type">DATE</span>, stock_quantity <span class="hljs-type">INTEGER</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span> );

<span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> Orders ( order_id SERIAL <span class="hljs-keyword">PRIMARY</span> KEY, user_id <span class="hljs-type">INTEGER</span> <span class="hljs-keyword">REFERENCES</span> Users(user_id), order_date <span class="hljs-type">TIMESTAMP</span> <span class="hljs-keyword">DEFAULT</span> <span class="hljs-built_in">CURRENT_TIMESTAMP</span>, total_amount <span class="hljs-type">NUMERIC</span>(<span class="hljs-number">10</span>, <span class="hljs-number">2</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>, status <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">50</span>) <span class="hljs-keyword">DEFAULT</span> <span class="hljs-string">'Pending'</span>, shipping_address <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">255</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>, billing_address <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">255</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span> );

<span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> OrderItems ( order_item_id SERIAL <span class="hljs-keyword">PRIMARY</span> KEY, order_id <span class="hljs-type">INTEGER</span> <span class="hljs-keyword">REFERENCES</span> Orders(order_id), book_id <span class="hljs-type">INTEGER</span> <span class="hljs-keyword">REFERENCES</span> Books(book_id), quantity <span class="hljs-type">INTEGER</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>, price_per_unit <span class="hljs-type">NUMERIC</span>(<span class="hljs-number">10</span>, <span class="hljs-number">2</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>, total_price <span class="hljs-type">NUMERIC</span>(<span class="hljs-number">10</span>, <span class="hljs-number">2</span>) GENERATED ALWAYS <span class="hljs-keyword">AS</span> (quantity <span class="hljs-operator">*</span> price_per_unit) STORED );

<span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> Reviews ( review_id SERIAL <span class="hljs-keyword">PRIMARY</span> KEY, book_id <span class="hljs-type">INTEGER</span> <span class="hljs-keyword">REFERENCES</span> Books(book_id), user_id <span class="hljs-type">INTEGER</span> <span class="hljs-keyword">REFERENCES</span> Users(user_id), rating <span class="hljs-type">INTEGER</span> <span class="hljs-keyword">CHECK</span> (rating <span class="hljs-operator">>=</span> <span class="hljs-number">1</span> <span class="hljs-keyword">AND</span> rating <span class="hljs-operator"><=</span> <span class="hljs-number">5</span>), review_text TEXT, review_date <span class="hljs-type">TIMESTAMP</span> <span class="hljs-keyword">DEFAULT</span> <span class="hljs-built_in">CURRENT_TIMESTAMP</span> );

<span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> Authors ( author_id SERIAL <span class="hljs-keyword">PRIMARY</span> KEY, name <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">255</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>, biography TEXT, date_of_birth <span class="hljs-type">DATE</span>, nationality <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">100</span>) );

<span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> Genres ( genre_id SERIAL <span class="hljs-keyword">PRIMARY</span> KEY, genre_name <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">100</span>) <span class="hljs-keyword">UNIQUE</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>, description TEXT );</pre></div><p id="3546"><b>At this point you can use a variety of tools to create a Postgre

Options

s database</b> and tables from the Postgres schema you now have.</p><p id="e423"><i>btw, quick promo — check out the ebook I wrote detailing 190+ cloud metrics for professional cloud engineers in the Cloud Metrics guide. It’s 800+ pages packed with info. <a href="https://ebook.cloudmetricsguide.com/"></a></i><a href="https://ebook.cloudmetricsguide.com/">ebook.cloudmetricsguide.com</a></p><div id="d009" class="link-block"> <a href="https://ebook.cloudmetricsguide.com/"> <div> <div> <h2>Cloud Metrics Guide "Banyan Book" (full version)</h2> <div><h3>Cloud Metrics Guide ("Banyan Book") - Sale Price - $19.99The Cloud Metrics Guide ("Banyan Book") is packed with over…</h3></div> <div><p>ebook.cloudmetricsguide.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/0*mbJC7sfMbmsPXPT1)"></div> </div> </div> </a> </div><p id="7132"><b>For this example I will use <a href="https://pg-sql.com/\">pg-sql</a> </b>which is a basic but capable online postgres tool that does not require downloading anything or a lot of configuration… it;s perfect to illustarte how to use this.</p><p id="b25a"><b>pg-sql: <a href="https://pg-sql.com/"></a></b><a href="https://pg-sql.com/">https://pg-sql.com/</a></p><p id="6ee3">Go there and you will see something like this:</p><figure id="bee1"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*pID3XUerCIFkFySsdKgZ7A.png"><figcaption></figcaption></figure><p id="2f13">Click on the Schema button and you will see this, because you have not put in a schema yet:</p><figure id="6e69"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*ebDGE4PMGJNA-hG0jZnAUA.png"><figcaption></figcaption></figure><p id="85bc">Exit from that.</p><p id="553f">Go back to the empty input text box for “Enter Query” put in the output of the code from the ChaGPT prompt:</p><figure id="7d06"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*yxv0puVFMjh_1dIF6IuAsg.png"><figcaption></figcaption></figure><p id="bed5">Now, click the > Run button — this execute the insert of the schema.</p><p id="59ae">You will see at the bottom of the page “CREATE successful”:</p><figure id="8ae2"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*dzlTbSOctXCVjEhiJ8vvtA.png"><figcaption></figcaption></figure><p id="ad11">Now click the Schema button again and we have:</p><figure id="726b"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*pFENMYUojA5xwxOTtsKXcQ.png"><figcaption></figcaption></figure><p id="a2d3">Confirm also by looking the query history:</p><figure id="cec9"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*JQPRtaBpoXfbOQD93Lc6qw.png"><figcaption></figcaption></figure><p id="623e">That shows the query was run.</p><p id="ffa5">And the results again shows:</p><figure id="ec3d"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*7NQnzqi7TdYSWqIkH0LAOQ.png"><figcaption></figcaption></figure><p id="c080">So now you have a schema that you can give to any developer.</p><p id="f07f">If you run the exact same query a second time:</p><figure id="8112"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*HAvDb5dvY_ZrXhRr6eEt2Q.png"><figcaption></figcaption></figure><p id="2af7"><b>This error is because you already have this schema</b> and tables in there already.</p><p id="7a82">You can hit the Reset DB button to empty the whole database back to nothing.</p><figure id="6153"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*XNALIZnEpMNa9uo42r9Ucg.png"><figcaption></figcaption></figure><p id="ba57"><b>Of course we just did a very simple one.</b></p><p id="b235">You could easily do a more complicated one and fine tune it with only the attributes you want.</p><p id="3037">When you do your prompt you can provide various table names and attributes and this is going to change the schema provided.</p><p id="a9df">If you are into Cloud Engineering… I wrote a guide to cloud metrics.</p><p id="8393">Store: <a href="https://ebook.cloudmetricsguide.com/"><b>Buy the full Cloud Metrics book</b></a><b> / </b>more info: <a href="https://cloudmetricsguide.com/"><b>CloudMetricsGuide.com</b></a></p><figure id="165a"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/0*v9WI0C-yunr9fIUw.jpeg"><figcaption>Cloud Metrics Guide / 190+ cloud metrics / 800+ pages</figcaption></figure><p id="f4c9"><b>Cloud metrics covered:</b></p><ul><li><b>190+ metrics in the categories of: User, Network, Reliability, Compute, Compute Scaling, API, Database, Storage, Events and Queues, Security and Cost metrics.</b></li><li>190 + cloud metrics in detail with insights!</li><li><b>800+ pages of valuable content,</b> the ULTIMATE reference guide!</li><li><b>PDF, Searchable, Linked Table of Contents (TOC)</b> for fast navigation.</li><li><b>Scenario/s giving example calculations, formulas</b> and realistic situations.</li><li><b>List of “Gotchas” for each metric usage,</b> for better understanding.</li><li><b>Best Practices and implementation suggestions</b> for each metric!!!</li></ul><p id="c50e">Store: <a href="https://ebook.cloudmetricsguide.com/"><b>Buy the full ebook</b></a><b> / </b>more info: <a href="https://cloudmetricsguide.com/"><b>CloudMetricsGuide.com</b></a></p><h1 id="4588">About me</h1><p id="6c44"><b>I’m a cloud architect, senior developer and tech lead who enjoys solving high-value challenges with innovative solutions.</b></p><p id="d48f"><b>I’m always open to discussing projects.</b> If you need help, have an opportunity or simply want to chat, y<b>ou can reach me on X/Twitter @csjcode</b> and same username gmail. Also, can schedule a Zoom here (lower on page): <a href="https://systemsarchitect.io/docs/consulting">https://systemsarchitect.io/docs/consulting</a></p><p id="0c16"><b>I’ve worked 20+ years in software development</b>, both in an <b>enterprise</b> setting such as NIKE and the original MP3.com, as well as <b>startups</b> like FreshPatents, SystemsArchitect.io, API.cc, and Instantiate.io.</p><p id="502f">My experience ranges from <b>cloud ecommerce, API design/implementation,</b> serverless, <b>AI integration</b> for development, content management, <b>frontend UI/UX architecture</b> and login/authentication. I give tech talks, tutorials and share documentation of architecting software. Also previously held AWS Solutions Architect certification.</p><p id="d033"><b>Recently I’m working on Instantiate.io, </b>a value creation experiment tool to help startup planning with AI. <b>I’m making progress writing a reference manual on cloud metrics.</b></p><p id="5d40">Also, an enthusiast of blockchain, I’m active <b>working on applications in the innovative Solana blockchain</b> ecosystem.</p><p id="7f68">Thanks for reading and hope to see you around!</p></article></body>

AI Dev Tips 1: Business Idea to PostgreSQL Database Schema in 5 Minutes

Transform a business idea into a PostgreSQL database schema in just five minutes, including tables, attributes, and types,

Why It’s Useful:

  • Rapid Prototyping: Quickly create database schemas to test and validate business ideas. Schemas can be used to automatically create your app’s database and tables.
  • Enhanced Productivity: Leverage AI to reduce manual effort and increase efficiency.
  • Improved Accuracy: Generate precise database structures that align with business requirements.
  • Better Planning: Use AI-generated schemas as a foundation for detailed database design.
  • Flexibility: Easily adapt schemas based on evolving business needs and scenarios.

Use Cases:

  • Startup MVP Development: Quickly generate database schemas to prototype and validate MVPs.
  • Feature Expansion: Update database schemas when adding new features to existing applications.
  • Learning Tool: Use AI-generated schemas as examples for educational purposes or training.
  • Scenario Analysis: Test different business scenarios by modifying schema structures.
  • Database Migration: Use generated schemas as a reference when migrating from other database systems.

Define Schema Requirements

A PostgreSQL schema is like a template or a logical specification for a database that sets the format of database objects such as tables, views, indexes, and functions.

Basically, like a map of the major parts of your database.

From a schema — you can create a database, tables, attributes using either online database tools, CLI (command line) or a small amount of code.

Therefore, it’s also like a “template” to speed up deployments, prototyping, backups, experiments and more.

btw, quick promo — check out the ebook I wrote detailing 190+ cloud metrics for professional cloud engineers in the Cloud Metrics guide. It’s 800+ pages packed with info. ebook.cloudmetricsguide.com

It helps in planning and to avoid naming conflicts and provides a way to group related objects together, making database management more efficient. Schemas also facilitate database security and access control by allowing administrators to set permissions at the schema level.

NOTE: This is for prototyping only. Obviously on a production level you need to fine-tune and work more on this. You have many more considerations, constraints etc. But it works. This is a first draft! Not a FINAL draft!

ChatGPT: https://chat.openai.com/

ChatGPT 4o Prompt:

“I need to create a PostgreSQL schema for an online bookstore. The key feature is that users should be able to search for and purchase books. Please outline the tables, attributes, types, and keys needed for this schema. Give 7 tables and attributes for each:”

ChatGPT output:

PostgreSQL Schema for an Online Bookstore

1. Users

  • user_id: SERIAL PRIMARY KEY
  • username: VARCHAR(50) UNIQUE NOT NULL
  • email: VARCHAR(100) UNIQUE NOT NULL
  • password_hash: VARCHAR(255) NOT NULL
  • first_name: VARCHAR(50)
  • last_name: VARCHAR(50)
  • created_at: TIMESTAMP DEFAULT CURRENT_TIMESTAMP

2. Books

  • book_id: SERIAL PRIMARY KEY
  • title: VARCHAR(255) NOT NULL
  • author: VARCHAR(255) NOT NULL
  • genre: VARCHAR(100)
  • price: NUMERIC(10, 2) NOT NULL
  • published_date: DATE
  • stock_quantity: INTEGER NOT NULL

3. Orders

  • order_id: SERIAL PRIMARY KEY
  • user_id: INTEGER REFERENCES Users(user_id)
  • order_date: TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  • total_amount: NUMERIC(10, 2) NOT NULL
  • status: VARCHAR(50) DEFAULT ‘Pending’
  • shipping_address: VARCHAR(255) NOT NULL
  • billing_address: VARCHAR(255) NOT NULL

4. OrderItems

  • order_item_id: SERIAL PRIMARY KEY
  • order_id: INTEGER REFERENCES Orders(order_id)
  • book_id: INTEGER REFERENCES Books(book_id)
  • quantity: INTEGER NOT NULL
  • price_per_unit: NUMERIC(10, 2) NOT NULL
  • total_price: NUMERIC(10, 2) GENERATED ALWAYS AS (quantity * price_per_unit) STORED

5. Reviews

  • review_id: SERIAL PRIMARY KEY
  • book_id: INTEGER REFERENCES Books(book_id)
  • user_id: INTEGER REFERENCES Users(user_id)
  • rating: INTEGER CHECK (rating >= 1 AND rating <= 5)
  • review_text: TEXT
  • review_date: TIMESTAMP DEFAULT CURRENT_TIMESTAMP

6. Authors

  • author_id: SERIAL PRIMARY KEY
  • name: VARCHAR(255) NOT NULL
  • biography: TEXT
  • date_of_birth: DATE
  • nationality: VARCHAR(100)

7. Genres

  • genre_id: SERIAL PRIMARY KEY
  • genre_name: VARCHAR(100) UNIQUE NOT NULL
  • description: TEXT

Notes:

  • Foreign Keys are used to establish relationships between tables (e.g., user_id in Orders references Users, book_id in OrderItems references Books).
  • Constraints such as UNIQUE, NOT NULL, and CHECK are used to ensure data integrity.
  • SERIAL data type is used for auto-incrementing primary keys.

That’s what one prompt produced.

All of that.

ChatGPT prompt:

Prompt: “Generate a PostgreSQL schema as code with the following tables and attributes: [in here… use the what was output and listed above in the previous response]

Output

-- Schema for an online bookstore

CREATE TABLE Users (
    user_id SERIAL PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    password_hash VARCHAR(255) NOT NULL,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE Books (
    book_id SERIAL PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    author VARCHAR(255) NOT NULL,
    genre VARCHAR(100),
    price NUMERIC(10, 2) NOT NULL,
    published_date DATE,
    stock_quantity INTEGER NOT NULL
);

CREATE TABLE Orders (
    order_id SERIAL PRIMARY KEY,
    user_id INTEGER REFERENCES Users(user_id),
    order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    total_amount NUMERIC(10, 2) NOT NULL,
    status VARCHAR(50) DEFAULT 'Pending',
    shipping_address VARCHAR(255) NOT NULL,
    billing_address VARCHAR(255) NOT NULL
);

CREATE TABLE OrderItems (
    order_item_id SERIAL PRIMARY KEY,
    order_id INTEGER REFERENCES Orders(order_id),
    book_id INTEGER REFERENCES Books(book_id),
    quantity INTEGER NOT NULL,
    price_per_unit NUMERIC(10, 2) NOT NULL,
    total_price NUMERIC(10, 2) GENERATED ALWAYS AS (quantity * price_per_unit) STORED
);

CREATE TABLE Reviews (
    review_id SERIAL PRIMARY KEY,
    book_id INTEGER REFERENCES Books(book_id),
    user_id INTEGER REFERENCES Users(user_id),
    rating INTEGER CHECK (rating >= 1 AND rating <= 5),
    review_text TEXT,
    review_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE Authors (
    author_id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    biography TEXT,
    date_of_birth DATE,
    nationality VARCHAR(100)
);

CREATE TABLE Genres (
    genre_id SERIAL PRIMARY KEY,
    genre_name VARCHAR(100) UNIQUE NOT NULL,
    description TEXT
);

At this point you can use a variety of tools to create a Postgres database and tables from the Postgres schema you now have.

btw, quick promo — check out the ebook I wrote detailing 190+ cloud metrics for professional cloud engineers in the Cloud Metrics guide. It’s 800+ pages packed with info. ebook.cloudmetricsguide.com

For this example I will use pg-sql which is a basic but capable online postgres tool that does not require downloading anything or a lot of configuration… it;s perfect to illustarte how to use this.

pg-sql: https://pg-sql.com/

Go there and you will see something like this:

Click on the Schema button and you will see this, because you have not put in a schema yet:

Exit from that.

Go back to the empty input text box for “Enter Query” put in the output of the code from the ChaGPT prompt:

Now, click the > Run button — this execute the insert of the schema.

You will see at the bottom of the page “CREATE successful”:

Now click the Schema button again and we have:

Confirm also by looking the query history:

That shows the query was run.

And the results again shows:

So now you have a schema that you can give to any developer.

If you run the exact same query a second time:

This error is because you already have this schema and tables in there already.

You can hit the Reset DB button to empty the whole database back to nothing.

Of course we just did a very simple one.

You could easily do a more complicated one and fine tune it with only the attributes you want.

When you do your prompt you can provide various table names and attributes and this is going to change the schema provided.

If you are into Cloud Engineering… I wrote a guide to cloud metrics.

Store: Buy the full Cloud Metrics book / more info: CloudMetricsGuide.com

Cloud Metrics Guide / 190+ cloud metrics / 800+ pages

Cloud metrics covered:

  • 190+ metrics in the categories of: User, Network, Reliability, Compute, Compute Scaling, API, Database, Storage, Events and Queues, Security and Cost metrics.
  • 190 + cloud metrics in detail with insights!
  • 800+ pages of valuable content, the ULTIMATE reference guide!
  • PDF, Searchable, Linked Table of Contents (TOC) for fast navigation.
  • Scenario/s giving example calculations, formulas and realistic situations.
  • List of “Gotchas” for each metric usage, for better understanding.
  • Best Practices and implementation suggestions for each metric!!!

Store: Buy the full ebook / more info: CloudMetricsGuide.com

About me

I’m a cloud architect, senior developer and tech lead who enjoys solving high-value challenges with innovative solutions.

I’m always open to discussing projects. If you need help, have an opportunity or simply want to chat, you can reach me on X/Twitter @csjcode and same username gmail. Also, can schedule a Zoom here (lower on page): https://systemsarchitect.io/docs/consulting

I’ve worked 20+ years in software development, both in an enterprise setting such as NIKE and the original MP3.com, as well as startups like FreshPatents, SystemsArchitect.io, API.cc, and Instantiate.io.

My experience ranges from cloud ecommerce, API design/implementation, serverless, AI integration for development, content management, frontend UI/UX architecture and login/authentication. I give tech talks, tutorials and share documentation of architecting software. Also previously held AWS Solutions Architect certification.

Recently I’m working on Instantiate.io, a value creation experiment tool to help startup planning with AI. I’m making progress writing a reference manual on cloud metrics.

Also, an enthusiast of blockchain, I’m active working on applications in the innovative Solana blockchain ecosystem.

Thanks for reading and hope to see you around!

Database
AI
ChatGPT
Coding
Software Development
Recommended from ReadMedium