Skip to content

Instantly share code, notes, and snippets.

View browny's full-sized avatar
👨‍💻

Browny Lin browny

👨‍💻
View GitHub Profile
@browny
browny / why_career_ladder_is_so_important.md
Last active December 18, 2022 02:19
Why career ladder is so important

最近團隊一位資深的夥伴同時也是 function lead 要畢業前往人生下一個旅程了,心中雖然不捨但還是祝福。在了解他做出這個決定的過程中,也讓我意識到,團隊或是組織需要為成員指引「方向感」的重要性:「繼續待在這個團隊當中,我可以在三年/五年後看到什麼?」;「如果我希望在這間公司進到下一個 level,我還需要做些什麼?」。或許這本來是每個人在職場上應該定期自我檢視的工作,但我們常因為手上有無止盡的待辦清單又或者沒有一個比較清晰的框架去思考,就變成了一個被忽視的問題。

這讓我回想到,幾週前我還和主管討論過在公司的 R&D 單位上推行 career ladder 這件事,career ladder 這個東西在國外科技公司算是一個標配,不同 level 的工程師能夠對應拿到多少 package 在網上也有很多資訊。和薪水/獎勵作綁定當然可以提升工程師們往上精進的動力,不過我覺得這個 ladder 更重要的意義在於提供一份「方向感」,而且是一份「透明且公平」的方向感

因此,想說趁著這次慘痛的經驗,趕快把這個洞補起來,上網找了一些資料 [1], [2],拿了個範本就開始動工了 (我參考的是這個範本 [3] 的 google sheet 版本 [4]),大概花了兩週的時間,也和幾位 function lead 一起共同編修這份 career ladder sheet,終於有了一個初步的版本。

最近,我也開始將這份 career ladder 用在和團隊的 1:1 上,大致上會依序詢問 member 下列幾個問題:

**1. 你覺得自己目前的水平位在哪個 level 2. 如果要往下一個 level 前進,你覺得你還需要補強哪些地方 or 我們還可以如何幫助你

@browny
browny / gist:b878d52b1710a2157f8ab57df06f16e1
Last active April 8, 2021 02:28
2days_arch_cert_qwiklabs
## Day1
- Google Cloud Essentials
- A Tour of Qwiklabs and Google Cloud (1)
- Creating a Virtual Machine (5)
- Compute Engine: Qwik Start - Windows (6)
- Getting Started with Cloud Shell and gcloud (2)
- Kubernetes Engine: Qwik Start (14)
- Set Up Network and HTTP Load Balancers
@browny
browny / streaiming-data-processing.md
Last active February 23, 2021 07:40
streaiming-data-processing.md
  • Enable services
gcloud services enable pubsub.googleapis.com
gcloud services enable dataflow.googleapis.com
  • Create workstation machine
@browny
browny / gcs-proxy.go
Created January 15, 2021 00:48
gcs-proxy.go
package main
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"strconv"
"strings"
"sync"
@browny
browny / dataproc_workflow_templates_demo.md
Last active January 7, 2021 01:35
Dataproc Workflow Templates demo
# install parallel first (sudo apt-get install -y parallel)
JOB_NUM=10
NAME_FILTER='*'
# stop instances
gcloud compute instances list --filter=name:$NAME_FILTER | awk '/RUNNING/ {printf "gcloud -q compute instances stop %s --zone %s;\n", $1, $2 > "stop-instances.txt" }'
parallel --jobs $JOB_NUM < stop-instances.txt
# remove delete protection
@browny
browny / PubSub101.md
Created February 12, 2020 20:14
Labs of PubSub101

Lab1. Publish Streaming Data into Pub/Sub

  1. Preparation
gcloud compute instances create training-vm \
  --zone=asia-east1-b --machine-type=n1-standard-1 \
  --metadata=startup-script-url=gs://cloud-training/initscripts/init-script-sdp-1.sh \
  --scopes=https://www.googleapis.com/auth/cloud-platform \
 --image-family=debian-9 --image-project=debian-cloud
@browny
browny / web-server.py
Created December 9, 2019 03:35
web-server.py
import tornado.ioloop
import tornado.web
import socket
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hostname: " + socket.gethostname())
def make_app():
return tornado.web.Application([
@browny
browny / GKE101-Lab.md
Last active August 12, 2019 06:40
Labs of GKE101

Lab1

Introduction to Containers and Docker

Run the web server manually

# Provision a ubuntu VM
gcloud compute --project=infra101 instances create vm-based \
# Configuration for Alacritty, the GPU enhanced terminal emulator.
# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty itself.
#env:
# TERM variable
#
# This value is used to set the `$TERM` environment variable for
# each instance of Alacritty. If it is not present, alacritty will