Micah Kamla

Houston, TX Web Developer

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.