Kirk Makse is the Lead Developer at StrategicMedia.io and specialises in Web Application Development and designing enterprise IT solutions for startups.
Preferred Technology Stack
All developers have their own preferences, but here are my current favorites when creating new projects.
Development Environment
Using Apple computers is a major productive improvement and using cloud-based IDE’s enables development on any hardware in any location.
- macOS – Apple iMac’s and MacBook Pro’s
- Cloud9 – Online code editor with each workspace having its own Ubuntu VM
- Sublime Text – Sophisticated text editor
- IntelliJ IDEA – Most capable IDE for all languages
Web Application Stack
The Rails 5 / Redux / React / React Native stack is great for startups who need to deliver their MVP in the least amount of time.
- Rails 5 – A web-application framework that includes everything needed to create database -backed web applications according to the Model-View-Controller (MVC) pattern
- Redux – A predictable state container for JavaScript apps
- React – A JavaScript library for building user interfaces
- React Native – A framework for building native apps using React
Deployment
Docker has made it simple to easily deploy and scale distributed applications.
- Docker – An open platform for developers and sysadmins to build, ship, and run distributed applications, whether on laptops, data center VMs, or the cloud
Databases
The database choice always depends on the data set.
Rails makes it easy to manage multiple databases from a single Rails application and using ActiveRecord (Object Relational Mapping) means no more SQL statements and the ability to change the database engine if required.
- PostgreSQL – Object relational database
- MongoDB – NoSQL document-orientated database
- Amazon Relational Database Service (RDS) – Managed relational database service with a choice of six popular database engines
Source Control
For privacy, I prefer BitBucket and it’s free for up to five developers.
- BitBucket – Git cloud solution with Pipelines
Cloud Servers
Simple and instantly scale-able.
- Digital Ocean – Simple and robust cloud computing platform, designed for developers
- Amazon EC2 – Secure and resizable compute capacity in the cloud
- Heroku – A platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud
File Storage
Either for large file storage or for serving static assets.
- Rackspace Cloud Files – Scalable cloud object storage
- Amazon Simple Storage Service (S3) – Highly-scalable object storage
Application Messaging
In order to scale, use a micro-services architecture with application messaging.
- RabbitMQ – The most popular open source message broker
- CloudAMQP – RabbitMQ as a service
- Amazon SQS – Fully managed message queues for microservices, distributed systems, and serverless applications
- Amazon SNS – Pub/Sub Messaging and Mobile Notifications for Microservices, Distributed Systems, and Serverless Applications
Cloud Infrastructure Services
Subscribing to these services allows you to concentrate on the proprietary parts of your code without implementing services that can be purchased inexpensively.
- G Suite – Google’s suite of intelligent apps (formerly Google Apps)
- Atlassian – Confluence / Jira / Service Desk / HipChat
- SendGrid – Delivering your transactional and marketing emails through the world’s largest cloud-based email delivery platform
- Stripe – Stripe is a suite of APIs that powers commerce for businesses of all sizes
Content Management System
WordPress is the dominant CMS platform. I also use it as the front-end sales site for web applications (and put the web app on a subdomain).
- WordPress – Blog tool, publishing platform and CMS
Web Hosting
Using managed web hosting for WordPress sites reduces maintenance of those web servers.
I also host the front-end sales websites on a different server to the actual web applications.