Marc Hughes


Home
Blog
Twitter
LinkedIn
GitHub
about
I am a developer from a bit west of Boston.

Tech Stack

06 Jul 2016

Over the years, the stack I use to develop software has steadily changed. Here's what I would gravitate towards these days:

Frontend

Front end development has gotten bigger and more complicated in recent years. The obvious deployment environment is javascript in a browser, but there are a lot of ways to get there. I'd probably pick using Typescript with Angular 2, since I'm most familiar with those. But ES6/Babel and React are great alternatives to replace either side of that with.

I've been growing fonder of RxJS, so that would probably make it into the mix either way.

For testing, a combination of (Mocha || Jasmine || Chai) and Protractor.

Unless I had a dedicated designer who could produce clean HTML, Bootstrap would be my base styling layer.

Backend

This is a big tossup and would really depend on the project. Django/Python running in Docker containers is a solid choice for me due to familiarity and easy of getting started.

But a Serverless architecture could really be intriguing depending on the project parameters. I'm working on a little side-project right now using this since it will cost me essentially nothing to run it.

No matter what I did, the backend would mostly just be an API for the frontend to call, not a lot of pages would be served up.

Database

Again, depends on the project. The MySql family (MySql/MariaDB/Aurora) is a solid choice that I have a lot of familiarity in. If the project warrants a relational DB, that's probably where I am. Postgresql is fine too.

But if the project has some unique needs, and a non-rel DB would be preferred, I'd probably go with DynamoDB to avoid any maintenance issues. I really like the idea of saying "I need XX read and XX write throughput" and having it magically happen as long as you give some small consideration to partition keys.