Skip to content

Instantly share code, notes, and snippets.

View nicholasf's full-sized avatar

Nicholas Faiz nicholasf

View GitHub Profile
@nicholasf
nicholasf / Melbourne Node.js Backend HTTP services development. 6 month contract.md
Last active January 7, 2019 22:42
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 August 16, 2018 00:45
Melbourne Node.js Backend HTTP services development. 6 month contract

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.
https://itty.bitty.site/#Calculator/data:text/html;charset=utf-8;base64,PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KYm9keSB7bWFyZ2luOjR2bWluIGF1dG87IHdpZHRoOjc0dm1pbjsgYmFja2dyb3VuZDojZWVlOyBmb250LXNpemU6IDh2bWluOyBmb250LWZhbWlseTpzYW5zLXNlcmlmO30KaW5wdXQsIGRpdiB7IGhlaWdodDoyZW07ICBib3JkZXItcmFkaXVzOiAxZW07IGZvbnQtc2l6ZToxZW07fQppbnB1dCB7d2lkdGg6Ni44ZW07IHBhZGRpbmc6IDAgMWVtOyAgbWFyZ2luOjAgMC40ZW0gMC40ZW0gMDsgdGV4dC1hbGlnbjpyaWdodDsgYm9yZGVyOm5vbmU7fQpkaXYge3dpZHRoOjJlbTsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6bm9uZTsgbWFyZ2luOjAgMC40ZW0gMC40ZW0gMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyZW07fQpkaXY6YWN0aXZlIHtiYWNrZ3JvdW5kOnJlZDsgY29sb3I6d2hpdGU7fQpkaXY6bnRoLWNoaWxkKDVuICsgMikgeyBiYWNrZ3JvdW5kOiM0QTkwRTI7IGNvbG9yOndoaXRlOyBtYXJnaW4tcmlnaHQ6MDt9Cjwvc3R5bGU+CjxpbnB1dCB0eXBlPSJ0ZXh0Ij48ZGl2IG9uY2xpY2s9ImZpZWxkLnZhbHVlID0gJyciPkM8L2Rpdj48YnI+PGRpdj43PC9kaXY+PGRpdj44PC9kaXY+PGRpdj45PC9kaXY+PGRpdj7DtzwvZGl2Pjxicj48ZGl2PjQ8L2Rpdj48ZGl2PjU8L2Rpdj48ZGl2PjY8L2Rpdj48ZGl2PsOXPC9kaXY+PGJyPjxkaXY+MTwvZGl2Pjxk

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.

@nicholasf
nicholasf / nvm-conditional.md
Last active September 14, 2017 07:29
Alternative to loading nvm for each prompt

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.

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

# 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"
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]%})"
extern crate rusoto;
extern crate chrono;
use chrono::*;
use std::default::Default;
use std::io::prelude::*;
use std::fs::File;
50 | let mut f = try!(OpenOptions::new().write(true).open("out.csv"));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected (), found enum `std::result::Result`
|