- + Hi, I'm Jake, a software engineer currently working for a company in Brighton. I've been working as a developer since mid-2015, and have been studying IT and computer science since 2013. + I work primarily as a full-stack developer, however more recently I've been working more on mobile apps.
My website is the culmination of all my knowledge, compiled into 1 place. It not only contains all my projects, but it in itself is a project. Making sure this website works properly is a tall order, especially considering it's self hosted.
- I went with the Django framework because it's what I use with at work, as well as the fact it's simple, clean and easy. It also allows for some server side assets, eg blogging. + The site is primarily powered by Pelican, a static site generator. This converts markdown and HTML templates into static HTML files. The templates are generated using Jinja2, a templating language similar to Django's. This allows me to write nice clean, DRY content, and have it come out as clean HTML.
- The only reason I have a database is because certain sections require it. For this reason I went with SQLite, because it's really lightweight and simple. + The static content (JS, CSS etc) is built using a custom build pipeline. The Javascript is built and compiled using Babel and Browserify, and the CSS is written using node-SCSS as a pre-processor.
- The website is hosted on my UK VPS. Previous versions have been hosted on 1&1 and MyWindowsHosting. + The website is hosted on my UK VPS. Previous versions have been hosted on 1&1 and MyWindowsHosting.
- The Django application itself is served using waitress. This get's it's port from a custom reverse proxy allowing me to host multiple sites on a single server easily. This is the same one I use for local development. The main web-facing server is nginx, because it's simple to setup, and damn fast! + The static files are served using a custom Express server, which allows me to auto-deploy the site from my CI. This is then served using a custom, closed-source reverse proxy, which makes local development and domain switching much easier. This is pointed to by NGINX, which actually serves port 80.