######
Python
######
.. image:: /_images/image_python.png
:width: 150pt
.. raw:: html
Python is my language of choice for managing infrastructure, clouds, processing, data science, tools, virtualization, automation, websites, and core platforms. Below is my usual stack for building a new product or startup:
------
Django
------
I am a fan of most ``microservice architectures`` where a lightweight web application only uses ORM for housing web sessions. I am not a fan of app servers that spiral into bloatware, which means I gutted the ORM internals of Django so it acts a passthrough to my Tastypie REST services. I consider my Django servers (and most application servers) nothing more than a deployment tool for sending and receiving HTML + Javascript.
Here is my Django shell for starting a new product site running on Docker:
https://github.com/jay-johnson/docker-django-nginx-slack-sphinx
--------
Tastypie
--------
I use Tastypie Django webservers for injecting asynchronous jobs in to my Redis clusters. This architecture allows my products to have websites ``decoupled`` from business logic that is implemented in my proprietary python job processing engines.
If you are curious, here's more on Tastypie: https://django-tastypie.readthedocs.io/en/latest/
----------------------
SQLAlchemy and Alembic
----------------------
I run multiple RDS Amazon Web Service instances using MySQL and managed through SQLAlchemy_ and Alembic_. The ability to skin and ``prototype database schemas`` at high speed is why I created the prototyper repository: https://github.com/jay-johnson/docker-schema-prototyping-with-mysql
----
Boto
----
When I need anything on Amazon Web Services I will build it using AWS Boto_. I have built, managed, and launched ``multiple VPCs`` for my startups. Boto is fantastic if you do not want to manage your AWS cloud from a browser.
.. _Boto: https://github.com/boto/boto
.. _SQLAlchemy: http://www.sqlalchemy.org/
.. _Alembic: https://pypi.python.org/pypi/alembic
####################
Open Source Projects
####################
I have created or contributed to the following open source projects:
-----------------
Message Simulator
-----------------
I have spent years validating and assessing ``highly available`` production AMQP clusters. I built the `Message Simulator`_ as a generalized tool for ensuring any RabbitMQ cluster is ready by simulating message traffic.
.. _Message Simulator: https://github.com/GetLevvel/message-simulator
-------------------
Want to learn more?
-------------------
* .. raw:: html
Email me
* `Contact Information`_
.. _Contact Information: https://jaypjohnson.com/contact.html
.. SEO Metadata
SEO_SET_HEADER_URL="https://jaypjohnson.com/python.html"
SEO_SET_HEADER_SITENAME="Python Software, Frameworks, ORM, and tools"
SEO_SET_HEADER_TITLE="Python Software, Frameworks, ORM, and tools"
SEO_SET_HEADER_DESC="A overview of the python software components and stack I use to build and launch products"
SEO_SET_HEADER_KEYWORDS="software, architecture, python, high availability, message simulator, distributed, django, rest api, orm, web app, tastypie, sqlalchemy, alembic, boto"
SEO_SET_HEADER_TYPE="website"
SEO_SET_HEADER_TWITTER_CREATOR="@jayphjohnson"
SEO_SET_HEADER_TWITTER_SITE="@jayphjohnson"
SEO_SET_HEADER_SEEALSO="https://jaypjohnson.com/"
SEO_SET_HEADER_FAVICON="/favicon.png"
SEO_SET_HEADER_IMAGE="/_images/image_python.png"
SEO_SET_HEADER_CARD="summary"
SEO_SET_HEADER_AUTHOR="Jay Johnson"