Ontario Immigrant Nominee Program-OINP

Ontario Immigrant Nominee Program (OINP)

Foreign Worker Stream

Job offer requirements

  1. Full-time and permanent
    • Full-time a minimum of 1,560 hours a year and a minimum of 30 hours of paid work per week.
  2. Eligible occupation
    • Skill Type 0 or Skill Levels A or B of the NOC
NOC Title Skill level or type
2174 Computer programmers and interactive media developers A
2175 Web designers and developers A
- Job Titles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2174 Computer programmers and interactive media developers

animation programmer
application programmer
business application programmer
cloud developer
computer application programmer
computer game developer
computer programmer
detail programmer
electronic business (e-business) software developer
electronic commerce (e-commerce) software developer
electronic data processing (EDP) applications programmer
graphical user interface (GUI) designer
graphical user interface (GUI) developer
interactive media developer
interactive media programmer
mainframe systems programmer
minicomputer systems programmer
mobile applications developer
multimedia developer
multimedia programmer
operating systems programmer
personal computer (PC) application developer
programmer analyst
satellite scientific telecommunications programmer
scientific programmer
software developer
software development programmer
software programmer
special effects programmer
systems programmer
teleprocessing software programmer
Web programmer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2175 Web designers and developers

corporate Webmaster
electronic business (e-business) Web site developer
electronic commerce (e-commerce) Web site developer
Internet site designer
Internet site developer
Intranet site designer
Intranet site developer
Web designer
Web developer
Web integrator
Web manager
Web site designer
Web site developer
Webmaster
  1. Median wage level
    • Wages ($/hour) - TORONTO REGION (ONTARIO) 2018
Occupation (NOC) Low Meidan High
Computer programmers and interactive media developers (2174) 23.08 38.46 57.69
Web designers and developers (2175) 19.00 26.56 50.00
  • https://www.jobbank.gc.ca/trend-analysis/search-wages

    If you are already working in the position, the wage of the job offer must be equal to or greater than the wage level that the employer currently pays you in that position, in addition to meeting or exceeding the median wage level.

    These wage requirements do not apply if you have a collective agreement (a written contract between the employer and a union), in your workplace, that determines your wages.

  1. Position is necessary to employer’s business
  2. Work based in Ontario

Applicant requirements

  1. Work experience or licence or other authorization
    You must have:
    at least two years of paid full-time work experience in the same occupation (same NOC code) as your job offer gained within the five years prior to submitting your application

  2. Valid licence or other authorization (if applicable)

  3. Intention to live in Ontario
  4. Legal status in Canada (if applicable)

Employer requirements

Employer’s Guide

  1. General requirements
    To qualify under the Foreign Worker Stream, your employer must:

    have been in active business for at least three years prior to submitting your application
    have business premises in Ontario where you will work
    have no outstanding orders made against them under the Ontario Employment Standards Act, 2000 or the Occupational Health and Safety Act
    demonstrate that enough effort was made to recruit a Canadian citizen or a permanent resident for the position being offered to you (this only applies if you are currently living outside Canada or working outside of Ontario)

  2. Revenue and employee requirements
    Your employer’s business must also meet the following requirements for the most recently completed fiscal year (the year used for tax or accounting purposes):

    • Greater Toronto Area (City of Toronto, Durham, Halton, York and Peel regions)
      If you will work or report to work at location in the Greater Toronto Area:

      • a minimum of $1,000,000 in total gross annual revenue
      • at least five full-time employees who are Canadian citizens or permanent residents who worked at the location where you will work, or will report to work, for the duration of the most recently completed fiscal year
    • Outside the Greater Toronto Area
      If you will work or report to work at location outside the Greater Toronto Area:

      • a minimum of $500,000 in total gross annual revenue
      • at least three full-time employees who are Canadian citizens or permanent residents who worked at the location where you will work, or will report to work, for the duration of the most recently completed fiscal year
    • Meaning of report to work
      In cases where the applicant will work at more than one location, the location where the applicant will report to work means:

      • the location where the applicant’s immediate supervisor or manager works, or
      • the location of the administrative office where the applicant will receive work assignments
  3. Employer Form
    Your employer must make an application for approval of an employment position by filling out and signing an Employer Form.
    Your employer then must give you the form so you can scan and upload it with your application.

Cost to apply

The application fee covers the cost of processing your application and is:

  • $1,500 if the job offer is outside of the Greater Toronto Area
  • $2,000 if the job offer is within the Greater Toronto Area (City of Toronto, Durham, Halton, York and Peel regions)

    We only accept Visa, Visa Debit, MasterCard and MasterCard Debit.

Application instructions

Once you click “Submit an application”:

  • Choose whether you are a returning user or a new applicant
  • Choose the Employer Job Offer: Foreign Worker Stream
  • If you are a new applicant, you must pre-register with your name and date of birth (not required if you are already registered)
  • Log into your ONe-key account. If you do not have one, click “Sign up now!”
  • Once you’ve logged into your ONe-key account, you will be sent back to the OINP e-Filing Portal
  • Create a profile in the OINP e-Filing Portal
  • Once you’ve completed your profile, click “Finish” and you will be sent to your main page in the e-Filing Portal
  • Click on the file number beside the Employer Job Offer: Foreign Worker Stream to begin your application

Please note:
It takes about three hours to complete your application. You don’t have to do it all at once, but you must submit your application within 14 calendar days after you first register.

Apply

react_tips

Eslint config for react

  • https://www.npmjs.com/package/eslint-config-react-app

    1
    npm install --save-dev eslint-config-react-app babel-eslint@9.x eslint@5.x eslint-plugin-flowtype@2.x eslint-plugin-import@2.x eslint-plugin-jsx-a11y@6.x eslint-plugin-react@7.x eslint-plugin-react-hooks@1.5.0
  • At least set these four things
    – semicolon
    – quotes
    – tailing comma
    – line break

  • .eslintrc.json

    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
    "extends": "react-app",
    "rules": {
    "semi": ["error", "always"],
    "quotes": ["error", "single"],
    "comma-dangle": ["error", "always-multiline"],
    "linebreak-style": ["error", "unix"]
    }
    }

mysql

ERROR 1298 (HY000): Unknown or incorrect time zone: ‘Asia/Manila’

  • Cause

mysql.timezone is empty

  • Solution
1
2
3
4
5
6
$ mysql_tzinfo_to_sql /usr/share/zoneinfo/|mysql -u root mysql -p
Enter password:
Warning: Unable to load '/usr/share/zoneinfo//iso3166.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo//leap-seconds.list' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo//zone.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo//zone1970.tab' as time zone. Skipping it.

fluent-plugin-xxxx

Alias

1
2
alias fluentd='/opt/td-agent/embedded/bin/fluentd'
alias fluentd-test='fluentd --dry-run -c /etc/td-agent/td-agent.conf'

test

1
fluentd-test

restart

1
service td-agent restart

fluent-plugin-grep

1
2
3
NOTE: grep filter is now a built-in plugin. Use the built-in plugin instead of installing this plugin.

Or, you may find https://github.com/sonots/fluent-plugin-filter_where is more useful.

fluent-plugin-beats

1
apt install ruby-dev rubygems
1
2
3
td-agent-gem list --all
td-agent-gem install fluent-plugin-beats --explain
td-agent-gem install fluent-plugin-beats

Forwarding over SSL

fluent-plugin-secure-forward is deprecated. use a built-in plugin in-forward tsl.

Receiver

  • generate Cert
1
2
3
cd /etc/td-agent
mkdir certs
openssl req -new -x509 -sha256 -days 1095 -newkey rsa:2048 -keyout certs/fluentd.key -out certs/fluentd.crt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<source>
@type forward
port 24224
bind 0.0.0.0
<transport tls>
version TLSv1_2
ciphers ALL:!aNULL:!eNULL:!SSLv2
insecure false

cert_path /etc/td-agent/certs/fluentd.crt
private_key_path /etc/td-agent/certs/fluentd.key
private_key_passphrase MY_PASSPHRASE
client_cert_auth false

</transport>
</source>

<match forward.**>
@type stdout
</match>

Sender

use a built-in out_forward.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<match forward.**>
@type forward
send_timeout 60s
recover_wait 10s
hard_timeout 60s
transport tls
tls_cert_path certs/fluentd.crt
tls_verify_hostname false

<server>
name myserver1
host 192.168.1.3
port 24224
weight 60
</server>

<secondary>
@type file
path /var/log/fluent/forward-failed
</secondary>
</match>

References

PHP cs fixer for vim

install

1
2
3
4
5
sudo apt install php-codesniffer

git clone https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git /opt/WordPress-Coding-Standards

sudo phpcs --config-set installed_paths /opt/WordPress-Coding-Standards
1
2
~$ phpcs -i
The installed coding standards are PEAR, PSR2, Squiz, Zend, PSR1, MySource, WordPress-Core, WordPress, WordPress-Docs, WordPress-VIP and WordPress-Extra

Install bundle for vim

  • ~/.vimrc
1
2
3
4
Bundle 'joonty/vim-phpqa.git'
let g:phpqa_codesniffer_args = "--standard=WordPress"
let g:phpqa_messdetector_autorun = 0
let g:phpqa_codesniffer_autorun = 0

Run

1
phpcs --standard=WordPress ./wp-includes/wp-db.php
1
watch 'phpcs --standard=WordPress ./wp-includes/wp-db.php'

Elasticsearch + Fluentd + Kibana

Installation && Configuration

nginx

  • nginx.conf

    1
    2
    3
    4
    5
    6
    7
    8

    http {
    ...
    log_format logdata '$remote_addr [$time_iso8601] '
    '"$request" $status $body_bytes_sent '
    '"$http_user_agent" "$request_body"';
    ...
    }
  • sites/casndy.conf

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ...

    location /log/push {
    access_log /var/log/nginx/candy_access.log logdata;
    proxy_pass http://127.0.0.1/postdata;
    }

    location = /postdata {
    # turn off logging here to avoid double logging
    access_log off;
    return 200;
    }
    # https://stackoverflow.com/questions/17609472/really-logging-the-post-request-body-instead-of-with-nginx

    ...
    • test
    1
    2
    3
    4
    5
    6
    7
    8
    $ curl -H 'Content-Type: application/json' -X POST http://candylog.local.cd/log/push -d '{"error":"test error"}'
    <html>
    <head><title>404 Not Found</title></head>
    <body>
    <center><h1>404 Not Found</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    • access_log
    1
    172.20.0.1 - - [15/Nov/2018:18:10:17 +0000] "POST /log/push HTTP/1.1" 404 146 "-" "curl/7.58.0" "{\x22error\x22:\x22test error\x22}"

fluentd

  • fluent.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

<source>
@type tail
tag nginx.access
format nginx
format /^(?<remote>[0-9\.]{7,17}) \[(?<time>[^ ]+)\] "([^"]+)" [0-9]{3} [0-9]+ "(?<agent>[^"]+)" "(?<message>{.*})"$/
path /var/log/nginx/candy_access.log
pos_file /var/log/nginx/candy_access.log.pos
</source>

<match **>
@type elasticsearch
host elasticsearch
port 9200
logstash_format true
flush_interval 5s
#index_name fluentd
type_name fluentd
</match>