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

Companies
Following

  • Slack

    v0lkan /v0lkan/javascript-from-zero-to-hero#slack


    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.

  • Webpack

    v0lkan /v0lkan/javascript-from-zero-to-hero#webpack


    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.

  • Amazon S3

    v0lkan /v0lkan/javascript-from-zero-to-hero#amazon-s3


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

  • Papertrail

    v0lkan /v0lkan/javascript-from-zero-to-hero#papertrail


    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.

  • Stripe

    v0lkan /v0lkan/javascript-from-zero-to-hero#stripe


    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.

  • PubNub

    v0lkan /v0lkan/javascript-from-zero-to-hero#pubnub


    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.

  • NGINX

    v0lkan /v0lkan/javascript-from-zero-to-hero#nginx


    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?

  • Mailgun

    v0lkan /v0lkan/javascript-from-zero-to-hero#mailgun


    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.

  • Amazon EC2

    v0lkan /v0lkan/javascript-from-zero-to-hero#amazon-ec2


    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.

  • Loader.io

    v0lkan /v0lkan/javascript-from-zero-to-hero#loader-io


    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 CloudWatch

    v0lkan /v0lkan/javascript-from-zero-to-hero#amazon-cloudwatch


    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.

  • Amazon VPC

    v0lkan /v0lkan/javascript-from-zero-to-hero#amazon-vpc


    With VCP, you can secure and segment your nodes.

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

  • Amazon CloudFront

    v0lkan /v0lkan/javascript-from-zero-to-hero#amazon-cloudfront


    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.

  • Babel

    v0lkan /v0lkan/javascript-from-zero-to-hero#babel


    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.

  • ESLint

    v0lkan /v0lkan/javascript-from-zero-to-hero#eslint


    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.

  • Sass

    v0lkan /v0lkan/javascript-from-zero-to-hero#sass


    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.

  • styled-components

    v0lkan /v0lkan/javascript-from-zero-to-hero#styled-components


    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.

  • Mailchimp

    v0lkan /v0lkan/javascript-from-zero-to-hero#mailchimp


    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.

  • Markdown

    v0lkan /v0lkan/javascript-from-zero-to-hero#markdown


    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.

  • Jest

    v0lkan /v0lkan/javascript-from-zero-to-hero#jest


    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.

  • Amazon WorkSpaces

    v0lkan /v0lkan/javascript-from-zero-to-hero#amazon-workspaces


    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.

  • AWS CodeCommit

    v0lkan /v0lkan/javascript-from-zero-to-hero#aws-codecommit


    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.

  • Crisp

    v0lkan /v0lkan/javascript-from-zero-to-hero#crisp


    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.

  • Buddy

    v0lkan /v0lkan/javascript-from-zero-to-hero#buddy


    Buddy is deployment: simplified.

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

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

  • JavaScript

    v0lkan /v0lkan/javascript-from-zero-to-hero#javascript


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

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

  • Git

    v0lkan /v0lkan/javascript-from-zero-to-hero#git


    Is there anyone who does not use git.

    git is love, git is life.

  • Node.js

    v0lkan /v0lkan/javascript-from-zero-to-hero#nodejs


    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.

  • npm

    v0lkan /v0lkan/javascript-from-zero-to-hero#npm


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

  • Amazon ElastiCache

    v0lkan /v0lkan/javascript-from-zero-to-hero#amazon-elasticache


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

  • AWS Elastic Load Balancing (ELB)

    v0lkan /v0lkan/javascript-from-zero-to-hero#aws-elastic-load-balancing


    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.

  • Datadog

    v0lkan /v0lkan/javascript-from-zero-to-hero#datadog


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

  • Amazon Route 53

    v0lkan /v0lkan/javascript-from-zero-to-hero#amazon-route-53


    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.

  • Yarn

    v0lkan /v0lkan/javascript-from-zero-to-hero#yarn


    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.

  • UptimeRobot

    v0lkan /v0lkan/javascript-from-zero-to-hero#uptimerobot


    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?

  • Docker

    v0lkan /v0lkan/javascript-from-zero-to-hero#docker


    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.

  • Mustache

    v0lkan /v0lkan/javascript-from-zero-to-hero#mustache


    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.

  • ExpressJS

    v0lkan /v0lkan/javascript-from-zero-to-hero#expressjs


    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.

  • ES6

    v0lkan /v0lkan/javascript-from-zero-to-hero#es6


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

    Write JavaScript: Love JavaScript.

  • Amazon SNS

    v0lkan /v0lkan/javascript-from-zero-to-hero#amazon-sns


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

  • GitHub

    v0lkan /v0lkan/javascript-from-zero-to-hero#github


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

  • React

    v0lkan /v0lkan/javascript-from-zero-to-hero#react


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

  • HTML5

    v0lkan /v0lkan/javascript-from-zero-to-hero#html5


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

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

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

  • Amazon DynamoDB

    v0lkan /v0lkan/javascript-from-zero-to-hero#amazon-dynamodb


    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).

  • AWS Lambda

    v0lkan /v0lkan/javascript-from-zero-to-hero#aws-lambda


    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.

  • Ruby

    v0lkan /v0lkan/javascript-from-zero-to-hero#ruby


    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.