Skip to content

Instantly share code, notes, and snippets.

Avatar

Nicholas Faiz nicholasf

View GitHub Profile
@nicholasf
nicholasf / Melbourne Node.js Backend HTTP services development. 6 month contract.md
Last active Jan 7, 2019
Melbourne Node.js Backend HTTP services development. 6 month contract.md
View Melbourne Node.js Backend HTTP services development. 6 month contract.md

The Dynamic Content Services (DCS) team at Newscorp is recruiting for a new team member.

DCS is one of the most heavily used platforms in the news media space of Australia, processing high volume traffic to fetch, render and cache various news items.

The platform itself has an SOA architecture with the following features:

  • A monorepository of seven dockerised services that run on Elastic Container Service in AWS Sydney.
  • Node.js and Typescript are the dominant languages. Varnish and Redis are used heavily.
  • A CI/CD pipeline - integration testing uses docker-compose.
  • Caching and Event based patterns
@nicholasf
nicholasf / Melbourne Node.js Backend HTTP services development. 6 month contract.md
Last active Aug 16, 2018
Melbourne Node.js Backend HTTP services development. 6 month contract
View Melbourne Node.js Backend HTTP services development. 6 month contract.md

Please note - this position has been filled. We are no longer hiring.

The Dynamic Content Services (DCS) team at Newscorp is recruiting for a new team member.

DCS is one of the most heavily used platforms in the news media space of Australia, processing high volume traffic to fetch, render and cache various news items.

The platform itself has an SOA architecture with the following features:

  • A monorepository of seven dockerised services that run on Elastic Container Service in AWS Sydney.
  • Node.js and Typescript are the dominant languages. Varnish and Redis are used heavily.
View ittybitty
https://itty.bitty.site/#Calculator/data:text/html;charset=utf-8;base64,PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KYm9keSB7bWFyZ2luOjR2bWluIGF1dG87IHdpZHRoOjc0dm1pbjsgYmFja2dyb3VuZDojZWVlOyBmb250LXNpemU6IDh2bWluOyBmb250LWZhbWlseTpzYW5zLXNlcmlmO30KaW5wdXQsIGRpdiB7IGhlaWdodDoyZW07ICBib3JkZXItcmFkaXVzOiAxZW07IGZvbnQtc2l6ZToxZW07fQppbnB1dCB7d2lkdGg6Ni44ZW07IHBhZGRpbmc6IDAgMWVtOyAgbWFyZ2luOjAgMC40ZW0gMC40ZW0gMDsgdGV4dC1hbGlnbjpyaWdodDsgYm9yZGVyOm5vbmU7fQpkaXYge3dpZHRoOjJlbTsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6bm9uZTsgbWFyZ2luOjAgMC40ZW0gMC40ZW0gMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyZW07fQpkaXY6YWN0aXZlIHtiYWNrZ3JvdW5kOnJlZDsgY29sb3I6d2hpdGU7fQpkaXY6bnRoLWNoaWxkKDVuICsgMikgeyBiYWNrZ3JvdW5kOiM0QTkwRTI7IGNvbG9yOndoaXRlOyBtYXJnaW4tcmlnaHQ6MDt9Cjwvc3R5bGU+CjxpbnB1dCB0eXBlPSJ0ZXh0Ij48ZGl2IG9uY2xpY2s9ImZpZWxkLnZhbHVlID0gJyciPkM8L2Rpdj48YnI+PGRpdj43PC9kaXY+PGRpdj44PC9kaXY+PGRpdj45PC9kaXY+PGRpdj7DtzwvZGl2Pjxicj48ZGl2PjQ8L2Rpdj48ZGl2PjU8L2Rpdj48ZGl2PjY8L2Rpdj48ZGl2PsOXPC9kaXY+PGJyPjxkaXY+MTwvZGl2Pjxk
@nicholasf
nicholasf / nvm-conditional.md
Last active Sep 14, 2017
Alternative to loading nvm for each prompt
View nvm-conditional.md

Background

It feels too slow to load .nvm for each prompt. Instead I indicate the default version of Node I want to use. Works well everywhere unless I need to use older code.

This function scans for a .nvmrc in the dir you've switched to, if it's present it will:

  • identify the node version
  • load the nvm environment
  • switch to the node version.
View __rust__.md

I'm hosting a private Rust game. All players are welcome but especially those from the coding communities I belong to.

PvP will be encouraged but shaped to occur on weekends and certain weeknights or holidays, as appropriate. PvE will be off initially but turned on when required to enforce this.

I've created https://twitter.com/aest_afterdark to communicate game changes and interact with player pop. Please follow it if you use twitter and use this for server news.

Connection

To connect, start your Rust game, press F1 and type client.connect 45.121.209.83:49285 then hit enter.

View Melbourne Node.js Backend HTTP services development. Contract or Fulltime.md

One of Newscorp's most heavily used data platforms, TCOG, is beginning a rebuild.

TCOG has 6 deployments taking high web traffic to deliver digital content for some of Australia's most downloaded sources of news and media.

The TCOG service loosely fits into a 'backend for the frontend' pattern that provides an API to front end clients to transform and render data from one or more upstream APIs by "smart URLs". See http://samnewman.io/patterns/architectural/bff/ for more information about the pattern.

Over time, the TCOG service has become monolithic. We have designed TCOG 1.5, which will consist of smaller services. We want you to help us build them! This project is a mixture of refactoring the existing and working on greenfield solutions to known problems. The new architectural direction is focussed on service patterns for caching, rendering and data transformation.

In addition, regular BAU work requires communication and support for the surrounding developers who build TCOG extensions to service the

View gist:f7cee90ae4642b120a4fa70bf19ae3cc
# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$PATH
# Path to your oh-my-zsh installation.
export ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="nicholasf"
View gist:2b2efbc4a992d04b5e1627bfc21db1a3
PROMPT='%{$fg_bold[red]%}♪ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
View gist:c14882a8ada491a1ffc9309415371303
extern crate rusoto;
extern crate chrono;
use chrono::*;
use std::default::Default;
use std::io::prelude::*;
use std::fs::File;
View gist:aaa198a3a22973156a6ac8c06d4d548c
50 | let mut f = try!(OpenOptions::new().write(true).open("out.csv"));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected (), found enum `std::result::Result`
|