my experiences with the best
applications, tools and languages

Go Language

GOLANG! Ever since I saw the blue-ish/cyan gopher, I've been hooked. Go language is a low level language so you can basically do absolutly everything. I've used Go in many projects, and experimented with the new advanced 1.8 stuff. Atlys.io website is built entirely in Golang and it feels like a normal website! Even though it looks like a standard webpage, the backend does extremly complexed tasks like global authentication methods, bandwidth useage, and PCI compliant billing. I've also used Golang to communicate to other API like CloudFront, Rancher, Authorize.net, and many others.

Golang is the one language that is cross platform and allows you to create anything. Unlike other languages, Golang is compiled, so you can export for Windows, Mac, Linux, iOS, Android and ARM devices like the raspberry pi!

Ruby on Rails

Most of my web based applications are written in Ruby on Rails using MySQL as a database. It's always worked out for me with the Rails design, structure, and the MVC approach. Many of my applications have millions rows in MySQL, and this is where Ruby fails. Unless... you use Memcached or Redis to cache huge queries. I've used both, but memcached seems to be working great for my applications.

Using Gems is another huge bonus to using Ruby on Rails. One of my favorites is Turbograft. It's a fork of the normal TurboLinks but lets you do even more seemless page loading and transitions. Another huge bonus with turbograft is that it allows you to update/refresh an individual 'div'.

Docker

Who doesn't love Docker! I've used Docker in production and development environments to scale up/down web services and manage temporary worker containers. I've also used Docker along with Rancher Server to produce a effective way for other non developers to upgrade a channels/containers. With Docker and Rancher Server I was able to communicate to Ranchers API. I used the API to automatically create new containers and servers off a single click of a button!

AWS (Sever Architecture)

Amazon Web Services actually deserves its own page because of the amount of products they have. My work production stack is hosted on multiple EC2's, hosted in multiple regions. These EC2 servers are also connected to a ELB (Elastic Load Balancer), and using RDS for MySQL host. Using AWS Route 53, I'm able to automate the change of DNS for hundreds of subdomains and domains.

How I do manage all of these servers? Good question, heres the answer: ANSIBLE. Ansible saves the day and ensures I don't have SSH into each servers to do a silly command. Ansible along with all of the AWS products make a great pair. Ansible even has modules for most of the AWS products!

Ansible

A perfect tool for deployment in production mode. I've created a tons of playbooks to help my production mode servers stay stable and other automated server related tasks. I use ansible playbooks to automatically update applications while scaling between multiple servers for a 0 downtime deployment. Ansible is an extremly powerful tool with a huge community and tons of modules.

MySQL

I've used all the different types of databases, but MySQL has always been my #1. Its highly customizable for huge queries, and its opensource! All of my personal and work related projects have been using MySQL. I've used MySQL with Ruby on Rails, Go, C#, PHP, Java, and even an Arduino (ATMEGA). Eve-Business holds 70+ million rows and it's still doing it's daily tasks.

Unity3D (C#)

Stronghold2D was created in Unity3D using C#. I've used Unity3D since the beginning of 4.0, and WOW it has advanced over the years. Unfortunately, I don't do Shader programming so I don't use the new shadow and lighting effects in version 5.5+. I've used Unity3D for simple, minimal, flat art while still using super advanced method a normal 3D game would.

Stronghold2D needed C# and Unity, it allows cannons to do complex mathmatical equations to find the perfect angle to shoot at. This alorithm includes distance, bullet velocity, and even gravity! The C# language includes many libraries so doing a HTTP POST to recieve some JSON is quick, and affordable.

Rancher Server

I've been using Rancher Server for a little over 1 year now. Rancher's UI/UX isn't at 100% yet, and the functionality works 95% of the time, but the other 5% is not knowing what Rancher is actually doing. Rancher's API is fantistic though, and I do use this often (using golang). Rancher's API lets me do HTTP requests to automatically create new stacks, containers, and even update load balancer DNS names.

HA Proxy

With all companies theres always a question of "what if I get a gazillion hits? Can my server support it?". This is a very hard question to solve, and with different applications/engines, the solution is different. I use HA Proxy to load balance between multiple servers running Ruby on Rails and it works great! I havnt gotten a gazillion hits yet, but thats when more advanced solution come into play. Read about AWS below.

PHP

Even though it's pretty old, everyone still enjoys some PHP sometimes. With composer, you do some pretty advanced things with libraries, I've dealt with a ansible-playbook composer package. Stronghold2D still uses a couple very simple lightweight PHP scripts to record Multiplayer Battles in JSON, saving players stronghold base data, authentication, and the global chat in-app.

I use PHP if the task is simple and quick, for example a script that can accept params, query MySQL and return JSON. If it was a more complex task, I'd probably use Golang.

jQuery/CSS 3

You know when a website has that crisp, clean, smooth feel when you click something? A special blend of jQuery and CSS3 transition can make a site feel real, while remaining lightweight. I've used jQuery 2/3 and CSS3 in all of my projects to give the end user that native application feel. I use a lot of AJAX for a smooth, no load, seemless experience. With this new age software/services out now, people don't wait for a heavy load.

Mobile Marketplaces

Most people have an iPhone or an Android device, unfortunately they are completly different languages. That's why I use a cross platform engine, Unity3D. But once you have the game/app compiled, it needs to be sent to multiple mobile marketplaces. I have years of experience with Google Play Store, Apple App Store, and Amazon App Store. Stronghold2D is a cross platform game, and it's even available for Windows, Mac and Linux.

Automate Builds and Automagically submit App to Google Play and iTunes Connect. Fastlane has many plugins to automate this process. takes a little bit to setup, but once its used correctly, its fully automated. Even screenshots and .ipa validatation for itunes connect! I've used some of these plugins to automate the process for Stronghold2D.

Others I Didn't Mention

The list above are the most important/coolest things I've worked on. If I wrote a description for every single tool I've used, this page would lag out and 500 crash. Eh, Probably not. But some other Softwares, Tools, and Applications I use are:

Github, Illustrator, Android Studio, Xcode, Slack, Slack API, Chrome & Store,