Giter Site home page Giter Site logo

barkinet / engineering-blog Goto Github PK

View Code? Open in Web Editor NEW

This project forked from grab/engineering-blog

0.0 2.0 0.0 10.64 MB

๐Ÿ“ We write about our technologies and the problems we handle at scale.

Home Page: http://engineering.grab.com

License: MIT License

Ruby 10.05% HTML 41.17% CSS 43.26% JavaScript 5.52%

engineering-blog's Introduction

Grab Engineering Blog

Welcome to Grab's official engineering blog where we share the good engineering practices in Grab and the things we engineers do that can benefit other engineers in the industry. Comments and feedback are welcome!

Getting Started

The blog runs on Jekyll, an awesome static site builder that is written in Ruby. To get started, clone the repository and run the following steps:

$ gem install bundler
$ bundle install
$ bundle exec jekyll serve

Navigate to http://localhost:4000 to view the blog. A process runs in the background to watch for changes made to the code. Simply refresh the page to see the updated changes. If you are new to Jekyll, we would recommend that you check out their detailed documentation here.

Contributing

Interested in writing a blog entry to the blog? Simply fork the repository and make a pull request with the new entry, a markdown file in the _posts folder with the name YYYY-MM-DD-your-title.md.

Adding Authors

If you are a new author, add your bio to _data/authors.yml, for example:

lian-yuanlin: # This is the ID of the author
  name: Lian Yuanlin
  thumbnail: /img/authors/lian-yuanlin.jpg # Use a remote image or add your own image
  github: alienchow # Github Username (optional)

Writing your post

Each post should have the following front matter defined:

Property Explanation Example
layout The layout template from the _layouts directory. We only have post for now. post
id Unique id for each blog entry. This is used by Disqus to uniquely identify posts and should not be modified if a Disqus thread for that post already exists. curious-case-of-the-phantom-instance
title Title of blog entry The Curious Case of The Phantom Instance
date Date of entry in DDDD-MM-YY HH:MM:SS format 2015-12-28 04:39:00
authors YAML list of author IDs. The author bio will be retrieved from _data/authors.yml and displayed within the post. [lian-yuanlin, ...]
categories YAML list of categories, sorted alphabetically. Only use existing categories in _data/categories.yml. [Engineering]
tags YAML list of tags, sorted alphabetically. Please check existing tags on /tags and reuse where possible. [AWS, Golang]
cover_photo Relative URL to the FB open graph image /img/grab-vietnam-careers-week/son-hai.jpg
comments Whether to display Disqus comments box. Why would you set this to false? true
excerpt Your catchy excerpt that will be shown on the list of blog entries page. Wrap your excerpt in quotes if it spans across multiple lines. "Here at the Grab Engineering team, we have built our entire backend stack on top of Amazon Web Services (AWS). Over time, it was inevitable that some habits have started to form when perceiving our backend monitoring statistics."

Proceed to write your blog entry in Github-flavoured Markdown format. Should you want to add images to your blog entry, the files should be added to the img/<post-id> folder.

When you are done with your entry, simply make a pull request and ping us in the #eng-bloggers Slack channel to request for a review!

That's it, happy blogging!

Deployment

Since we are using custom plugins (such as for authors), Github will not build and deploy the generated site for us. We use a custom gem jgd meant for deploying Jekyll pages manually. Simply run this command to build the site and pushes it to the gh-pages branch.

$ jgd

License

MIT License

engineering-blog's People

Contributors

corsc avatar hudaninja avatar lowjoel avatar yangshun avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.