Site Philosophy
The primary goal of this site is to document my development experiences for not only my records, but also for the benefit of others. My aim is to provide insight into my development activity, habits, projects and methodology through accurate documentation and supporting data. The technology stack is designed to take the most efficient approach in site maintenance.
Technology Stack
A repository for this site can be found on Github.
Server
This site runs NodeJS on an Amazon EC2 instance. Database functions are carried out by DynamoDB and resource hosting is handled by S3. AWS was chosen based on it's robust service offering, scalability and cost-effectiveness. NodeJS was chosen based on my familiarity with the language.
Frontend
With the exception of jQuery, the front-end remains framework independent. I prefer this approach because it allows full-control over the functionality, reduces dependency bloat, keeps my vanilla JS skills sharp and alleviates the pains associated with flavor of the month JS frameworks.
APIs
Open APIs are critical in supporting an efficient and low-maintenance approach. The majority of the APIs below belonged to services I was already naturally contributing to on a daily basis. The thought process here is to mitigate redundancy by exposing and visualizing available data. This approach automates any manual content processing while also providing the most timely data possible.
Wakatime
Wakatime API is responsible for collecting all real-time development statistics and data.
Dropbox
Dropbox webhooks are used in conjunction with web services to process and sync Markdown log files from Dropbox to AWS.
AWS
Amazon Web Services provides the most vital features of this site including serving the site, persistant data, hosting static files and automation/chron jobs. The following items are some of the services utilized in this application.
- EC2
- DynamoDB
- S3
- Lambda
- SES
Github/Gitlab
Github and Gitlab APIs provide public and private repository commit activity.
Task Runner/Build Automation
GruntJS is used to automate linting, minification and general build processes.
Content
This site is dedicated to software development process, theory and general philosphy in relating technical fields. The log will be the main source of content and the goal of each log entry is to provide as clear, concise and unbiased information as possible.
Intended Audience
This site is for my peers in development, students, teachers and potential employers. If you find something on this site helpful, have questions, want to report an error, please contact me.
For design work, please visit Behance.net.