Volkan Özçelik
v0lkan
Chief Executive Philosopher | volkan.io
Recent Tech Decisions
185 points

Following

  • Amazon SNS

    v0lkan JavaScript: from Zero to Hero


    I mainly use it for the infrastructure notifications and alarms of zerotoherojs.com ’s learning dashboards.

  • ES6

    v0lkan JavaScript: from Zero to Hero


    It is not ES6… it is simply “JavaScript”; and it is the future.

    Write JavaScript: Love JavaScript.

  • ExpressJS

    v0lkan JavaScript: from Zero to Hero


    I use express.js for nightly.zerotoherojs.com and dojo.zerotoherojs.com web apps.

    Express is well-known, lightweight, works out-of-the-box, has great middleware support and has minimal learning curve.

    It is the best framework to start developing a general Node.js web app.

  • Mustache

    v0lkan JavaScript: from Zero to Hero


    Mustache is a simple logicless template language.

    It is lightweight, and currently suits my templating needs.

    I use it, in lieu of things like React SSR etc.

  • Docker

    v0lkan JavaScript: from Zero to Hero


    I use docker mostly on creating small proof-of-concept setups. This way I don’t have to spend AWS cycles (and money) just to validate an idea.

  • UptimeRobot

    v0lkan JavaScript: from Zero to Hero


    Uptime Robot is simple; it does what it claims it does, and it does it really well. And its free tier works great for my needs. What more can I want out of it?

  • Yarn

    v0lkan JavaScript: from Zero to Hero


    I prefer yarn instead of npm.

    Both npm and yarn work great.

    I don’t see any overwhelming reason to choose one over another.

    I just like yarn, that’s it.

  • Amazon Route 53

    v0lkan JavaScript: from Zero to Hero


    Since most of zerotoherojs.com infrastructure is on AWS, Route53 is the obvious DNS of choice.

    I’m also considering CloudFlare, but haven’t decided the pros and cons of migrating yet.

  • Datadog

    v0lkan JavaScript: from Zero to Hero


    I used DataDog for setting up alarms and realtime dashboards for nightly.zerotoherojs.com and dojo.zerotoherojs.com

  • AWS Elastic Load Balancing (ELB)

    v0lkan JavaScript: from Zero to Hero


    I use an Application Load Balancer to balance the load to the EC2 clusters of nightly.zerotoherojs.com and dojo.zerotoherojs.com.

    Addditionally, ELB protects my cluster against DDOS attacks: So it is multi-birds with one stone.

  • Amazon ElastiCache

    v0lkan JavaScript: from Zero to Hero


    I use a micro elesticache instance as a shared session store between the Node.js clusters of dojo.zerotoherojs.com and nightly.zerotoherojs.com

  • npm

    v0lkan JavaScript: from Zero to Hero


    NPM: Is there anyone who does “not” use it?

  • Node.js

    v0lkan JavaScript: from Zero to Hero


    Node.js is the app server of choice for the EC2 web app nodes of dojo.zerotoherojs.com and nightly.zerotoherojs.com

    I am also considering using golang; but for now, Node.js works pretty well, so I’m good with it.

  • Git

    v0lkan JavaScript: from Zero to Hero


    Is there anyone who does not use git.

    git is love, git is life.

  • JavaScript

    v0lkan JavaScript: from Zero to Hero


    The course is names “JavaScript” from Zero to Hero…

    So, by definition, I use a hell lot of JavaScript, everywhere :D

  • Buddy

    v0lkan JavaScript: from Zero to Hero


    Buddy is deployment: simplified.

    With buddy, you can actually have fun while you deploy your infra.

    Beautiful UI, excellent UX, solid product, fanatical support!

  • Crisp

    v0lkan JavaScript: from Zero to Hero


    Crisp is a realtime chat widget that, unlike its competitors, does not demand your leg and kidney to deliver a decent service.

    It works great for zerotoherojs.com and I recommend anyone if they have a similar need.

    Even their free tier is more than enough for the majority of the use cases that you can think of.

  • AWS CodeCommit

    v0lkan JavaScript: from Zero to Hero


    I use CodeCommit for projects that require a tighter integration with the AWS ecosystem.

    Otherwise, my default source control system as a service of choice is: GitHub.

  • Amazon WorkSpaces

    v0lkan JavaScript: from Zero to Hero


    I use AWS Workspaces for several things:

    1. As a AWS-secured bastion host to connect to my infra.
    2. As a "research machine" that I can use its upstream and downstream speed to do google searches, computations and downloads (only my 1Gbps office network beats their ~500mbps downlink speed; articles load in the blink of an eye; any download is almost instant).
    3. An alternative development environment to test my tooling (how does that electron binary work in windows?)
    4. A secure backup medium.
    5. A mini-staging environment that also has great connectivity.
    6. And an extension to my current Desktop.
    7. And more…

    Their desktop client, especially for Windows, work amazingly well. And they deliver what they promise.

  • Jest

    v0lkan JavaScript: from Zero to Hero


    Jest is my unit-testing tool of choice.

    Almost all unit testing suites (Mocha, Jasmine, etc.) are more or less the same.

    The main advantage I guess, is that it integrates pretty well with React and Enzyme.

  • Markdown

    v0lkan JavaScript: from Zero to Hero


    What you see is not what you get, never it is.

    Documentation is better in Markdown format. You don’t need anything special to read it.

    It is compact, portable, comparable.

    Markdown is my text file format of choice.

  • Mailchimp

    v0lkan JavaScript: from Zero to Hero


    At zerotoherojs.com there are two kinds of mailing that I send.

    1. Important system emails.
    2. News and updates.

    I send the important emails using Mailgun, and news and updates using MailChimp.

    For managing your mailing list, and sending occasional newsletters, MailChimp is the best.

  • styled-components

    v0lkan JavaScript: from Zero to Hero


    For styling components, styled-components work great (really!)

    You don’t have to use it for everything. You can still use good old CSS classes along with your styled components.

    What I do generally is to separate the “layout”, “typography”, “vertical rhythm”, and “reset” to good old CSS, and style the rest of the app with styled components.

  • Sass

    v0lkan JavaScript: from Zero to Hero


    Yes, there is variables support in CSS; but still, I like the flexibility that sass has to provides.

    I use sass along with styled components.

  • ESLint

    v0lkan JavaScript: from Zero to Hero


    JavaScript is a language that works wonders when there are tools like ESLint, Prettier, and FlowType that cover your back.

    I use my IDE’s (Visual Studio Code) ESLint integration to validate the code I write in realtime.

  • Babel

    v0lkan JavaScript: from Zero to Hero


    When you are using modern (or sometimes experimental) features of the language, you’ll eventually have to transpile them so that your app works in a wide spectrum of user agents.

    Babel is the transpilation tool of my choice.

  • Amazon CloudFront

    v0lkan JavaScript: from Zero to Hero


    I use CloudFront to front the static website at zerotoherojs.com that I host in an s3 bucket.

    This way, I don’t have to worry about scalability or performance, as I’ll know that the content will be delivered to the users as fast as possible from the closest edge location.

  • Amazon VPC

    v0lkan JavaScript: from Zero to Hero


    With VCP, you can secure and segment your nodes.

    It is easy to manage, flexible, and gives great control over your virtual infrastructure.

  • Amazon CloudWatch

    v0lkan JavaScript: from Zero to Hero


    CloudWatch is “on by default” in Amazon. And by just configuring a few alarms you can have a near-zero-cost monitoring service of your own.

  • Loader.io

    v0lkan JavaScript: from Zero to Hero


    I use loader.io for distributed load testing.

    That especially matters when you have a cross-region load-balancer and you want to make sure how your app behaves on a global scale.

  • Amazon EC2

    v0lkan JavaScript: from Zero to Hero


    I like containers and all, but for zerotoherojs.com I am a one-man band, who also works full time. I don’t have any (dev)ops budget, and therefore I need the reliability and uptime of an actual virtual machine.

    That’s where AWS EC2 comes in handy.

  • Mailgun

    v0lkan JavaScript: from Zero to Hero


    Mailgun is the only mailing service that I trust to deliver critical user and system emails of zerotoherojs.com

    It works great, and for my current usage volume it’s free.

  • NGINX

    v0lkan JavaScript: from Zero to Hero


    I use NGINX as a reverse-proxy fronting the Node.js web EC2 instances.

    It is lightweight, it gets it job done really well. And it’s written by Russians: so it should be good, no?

  • PubNub

    v0lkan JavaScript: from Zero to Hero


    Using websockets is something, scaling a message pipeline to thousands of concurrent connections is something else.

    I trust PubNub with what it does best, and use it as zerotoherojs.com ’s messaging pipeline.

    With PubNub, I have one less problem to think about.

  • Stripe

    v0lkan JavaScript: from Zero to Hero


    Integrating Stripe to your app is dead simple.

    It removes all the hassle of integrating with a payment gateway.

    Its API is developer-friendly and intuitive, reliable, and works all the time.

    It’s my payment gateway of choice.

  • Papertrail

    v0lkan JavaScript: from Zero to Hero


    I use Papertrail as a distributed log aggregator for nightly.zerotoherojs.com and dojo.zerotoherojs.com

    I served me really well so far.

    It is simple to use, intuitive, and reasonably-priced.

  • Amazon S3

    v0lkan JavaScript: from Zero to Hero


    Currently I use Amazon S3 to serve the static website of zerotoherojs.com (along with CloudFront).

  • Webpack

    v0lkan JavaScript: from Zero to Hero


    Webpack is the best bundler. Period.

    Yes, it has a(n arguably) messy documentation, and a steep learning curve; but once you get the hang of it, there is nothing you cannot do with it.

    Use it and you don’t have to use any other bundler at all.

    It has a vivid ecosystem, and great plugin support.

  • Slack

    v0lkan JavaScript: from Zero to Hero


    It is like IRC, but everybody else uses it. And it works well.

    I use slack as a communication medium for the early-access-program crowd, while I’m also evaluating spectrum.chat as an alternative.

  • Ruby

    v0lkan JavaScript: from Zero to Hero


    I’m using Ruby and Jekyll as a static site generator along with express-static to protect it behind a session.

    It’s currently experimental; I may or may not continue to use it—we’ll see.

  • AWS Lambda

    v0lkan JavaScript: from Zero to Hero


    I mostly use AWS Lambda for triggering DevOps-related actions, like triggering an alarm or a deployment, or scheduling a backup.

    I haven’t gone totally “serverless” and I’m not planning to go 100% serverless anytime soon.

    But when I do, AWS Lambda will be an important element in my serverless setup.

  • Amazon DynamoDB

    v0lkan JavaScript: from Zero to Hero


    zerotoherojs.com ’s userbase, and course details are stored in DynamoDB tables.

    The good thing about AWS DynamoDB is: For the amount of traffic that I have, it is free. It is highly-scalable, it is managed by Amazon, and it is pretty fast.

    It is, again, one less thing to worry about (when compared to managing your own MongoDB elsewhere).

  • HTML5

    v0lkan JavaScript: from Zero to Hero


    Drop the “5”… it is “HTML”.

    Drop the “6”… it is “ES”.

    Drop the “3”. it is “CSS”.

  • React

    v0lkan JavaScript: from Zero to Hero


    I use React (and Hooks) for the learning dashboard of nightly.zerotoherojs.com and dojo.zerotoherojs.com

  • GitHub

    v0lkan JavaScript: from Zero to Hero


    zerotoherojs.com ’s Learning Management System codebase lives in a private GitHub repository.