Toolbox

Languages

Python

Orginally created as a scripting language, Python is now a powerful all purpose language. With a large framework ecosystem, it supports data science through libraries such a Numpy and Matplotlib as well web development with Django and Flask.

Javascript

Javascript powers the web, with a huge ecosystem, it most popular programming language on the planet. The latest major update to the lanuguage being ES6, Javascript is full of small nuances which once mastered, allow for elegant programing design patterns.

TypeScript

A Javascript super set, the language has all the features of Javascript with the added benefit of static type checking. The language enforces strict type rules which encourage good programming techniques with the use of a long list of language features which include abstract classes, interfaces, union types, enums and many more.

Resources:

Official Docs

Front End

React

React is a component based library, elements make up the most basic building blocks, written in JSX resembling HTML. Elements are JSX objects, a component is comprised of one or more elements. It is a powerful web app building paradigm, created by Facebook developers.

Apollo Client

An awesome React client teachnology which allows easy integration with a GraphQL server. It provides an excellent API for connecting to the server as well as querying data. The client provider allows for client side caching as well as optimistic updates.

Resources:

Official Docs

Gatsby

A PWA framework, Gatsby has a large ecosystem of plugins, the framework creates applications with super fast load times. It is an excellent technology for building blogs, it uses ReactJS and GraphQL as its core technologies.

Resources:

Official Docs

Material-UI

Material-UI is a react component framework developed by Google. It is a layout paradigm which encourages the latest web and mobile layout designs. It features a powerful theming system based on JSS.

Resources:

Official Docs

Bootstrap

A CSS library that specializes in mobile first layouts. Bootstrap was one of the first libraries to approach layout design from a mobile first approach. Its core layout is based on the Flexbox model. Bootstrap is highly themeable.

Resources:

Official Docs

SASS

A CSS pre-processor, this language supercharges CSS, it offers features such as mixins or nesting to allow fast and structured CSS development. It is necessary to use a CSS pre-compiler when using SASS / SCSS.

Resources:

Official Docs

Back End

Django

A full Python web application framework. Django has a large library of plugins, it is known as the kitchen sink of development frameworks, using Python WSGI and recently adopting uWSGI. It features a built in admin interface, ORM and templating language. A more lightweight Python web framework is Flask.

Resources:

Official Docs

Express

Express JS is a Javascript web application framework. It is a lightweight framework which features super fast asynchronous request handling. It is perfect for multiple request architectures such as chat applications.

Resources:

Official Docs

PostgreSQL

An open source SQL object-relational database architecture. It offers a robust server infrastructure with stable storage capabilities, competitors include MySQL and MariaDB. Popular stacks are Python with the Psycopg driver or the use of SQLAlchemy ORM.

MongoDB

This non relational database storage architecture supports excellent horizontal scalling. It is one of the go to options for todays fast paced CI / CD web application development climate. Popular stacks include Express with Mongoose ORM.

Nginx

A web content serving software, Nginx is fast and highly scalable, offering services such as POP3 or SMPT for mail servers or HTTP/HTTPS for web servers. It can also serve content on the TCP / UDP level as well as serve as a proxy server for other services. Its features include server side caching, load balancing, SSL certificate handling and file compression.

Node JS

A Javascript runtime environment enables the use of Javascript outside of the browser. Node JS comes with NPM which is a package manager. Along with Node comes a huge ecosystem of packages which include development tools such as Grunt or Node SASS, as well as web frameworks such as Express.

Resources:

Official Docs

DevOps

Docker

Docker is a containerization software, it allows for the creation of isolated environments enabling among other things a powerful micro-service web application environment. This containing of applications creates an environment in which apps can run independant of OS's or hardware configurations.

Terraform

A powerful cloud agnostic Infrastructure as Code framework made by Hashicorp. Templates are bundled into modules which are grouped together to define a cloud infrastructure. Templates are written in HCL, IaC is a powerful tool in DevOps, it allows for infrastructure versioning and prevents configuration drift.

Resources:

Official Docs

Apache Jmeter

A Java runtime application, it is used to perform load tests on applications in order to determine performance metrics. It is developed by Apache and fully open source.

Resources:

Official Docs

Postman

A tool which is used in end-to-end testing. It is used mainly to test and document API's. It provides a suite of request types, including GraphQL, to test API endpoint status response as well as body response.

Resources:

Official Docs

Selenium

Front end testing framework, used to run integration tests. The framework can be used with a variety of languages, most commonly used is Python. It simulates a browser environment, this allows for real user interaction simulated events such as button clicks or text inputs.

Resources:

Official Docs

Cloud

AWS EC2

Elastic Compute cloud is the fundamental computing resources of AWS. It offers a stable computing platform in the cloud which can be used for almost anything. Technologies which exists within the EC2 environment are Load balancers, Security Groups and Autoscalling groups.

Resources:

Official Docs

AWS S3

Simple Storage Solutions provides storage at the block level. Data is stored as objects within S3, these objects are stored in buckets. When combined with Route53, Certificate Manager and Cloudfront, S3 becomes a powerful solution for hosting Progressive Web Applications.

Resources:

Official Docs

AWS CodePipeLine

Codepipeline is an integration tool which joins many of the AWS DevOps tools. AWS development tools include Codebuild, Codedeploy and Codecommit. All these services feature programmatic building and deployment of web apps throughout the AWS hosting range.

Resources:

Official Docs

AWS CloudFormation

Cloudformation is the cloud architects secret weapon. It offers Infrastructure as Code services, it is the ultimate Cloud Orchestration tool. All services offered by AWS can be defined within Cloud formation templates, resources can then be programmatically provisioned and updated.

Dev Tools

GitHub

Version control web application, based on Git technology.

VS Code

A Powerful IDE which supports many languages through its vast ecosystem of extensions.

Linux

Linux is an open source UNIX operating system. Linux features powerful packages which enhance development, it also powers most web infrastructure in the cloud. Linux has a variety of flavours all with their unique specializations. Ubuntu is one of the best flavours to use for development because of its comprehensive package base.

Business Development

Google Ads

A platform from which to advertise on Googles platform, such services include, YouTube, Google Display ads and Search Ads.

Resources:

Official Docs

Google Analytics

Powerful analytics software providing information on user activity within an application. Combined with Search Console it gives a good indiction of an applications visibility.

Resources:

Official Docs

Facebook Manager

A platform from which to advertise on Facebook services such as Facebook, Instagram and Facebook Messenger.

Resources:

Official Docs

Ocean Holic 2023