This repository has been archived by the owner on Nov 26, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 81a9456
Showing
30 changed files
with
1,061 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
node_modules/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
module.exports = { | ||
title: 'Denis Tsoi', | ||
description: 'Code to eat 🍞', | ||
themeConfig: { | ||
nav: [ | ||
{ text: 'CV', link: '/cv' }, | ||
{ text: 'talks', link: '/talks' }, | ||
{ text: 'Github', link: 'https://github.com/denistsoi' } | ||
], | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,139 @@ | ||
|
||
::: tip Summary | ||
Software Developer with 5 years industry experience. | ||
Formerly a Senior Precious Metals Dealer in Hong Kong. | ||
Looking for open-minded group of engineers that **love** to code. | ||
::: | ||
|
||
## Relevant Experience | ||
|
||
### 02/2018 - Present | ||
``` | ||
Software Engineer | ||
Scribe Intelligence | ||
``` | ||
- Added API methods using Express/Sequelize/Postgres. | ||
- Used AWS Lambda functions to act as SQS consumer. | ||
- Used Cloudwatch events to periodically poll. | ||
- Assisted with deploying Gentle realignment app. (based on Kaldi). | ||
- Refactored React web app. | ||
|
||
### 12/2016 - 02/2018 | ||
``` | ||
Software Engineer | ||
GDC/Energybox (Product Team) | ||
``` | ||
- Introduced modern web practices, _webpack/npm/automated build steps etc_. | ||
- Implemented custom Mapbox-gl view for application using open-source map tile providers. | ||
- Built proof of concept to improve data processing pipeline using [nedis](https://github.com/tj/nedis) and pm2 workers. | ||
|
||
### 06/2016 - 12/2016 | ||
``` | ||
Sabbatical | ||
Various | ||
``` | ||
- Freelance Contract work for whub, levels, ruemadame and others. | ||
- Developed using Wordpress and PHP scripts. | ||
- Went travelling. | ||
|
||
### 06/2014 - 06/2016 | ||
``` | ||
Software Engineer | ||
Seed Alpha | ||
``` | ||
- Frontend Developer for Fintech App. | ||
- Web Application using MEVN stack (Vue/Mongo/Express). | ||
- Exposed to Elasticsearch (and implemented ES queries). | ||
- First exposure to Docker. | ||
- Implemented chatbot for 2015 RISE conf. | ||
- Leveraged Heroku, Slack API, Yahoo Finance API and WIT.AI. | ||
|
||
### 01/2014 - 05/2014 | ||
``` | ||
Web Developer | ||
Makible | ||
``` | ||
- Introduced to Golang development. | ||
- Focused mainly on Chrome Extension app using ThreeJS. | ||
- and serial api to communicate with Makibox 3D printer. | ||
|
||
|
||
### 08/2013 - 01/2014 | ||
``` | ||
Junior Developer | ||
Imagination | ||
``` | ||
- Frontend Web Development using AngularJS and SCSS. | ||
- Involved with the development of Pacific Place (Admiralty) Touch Table Interface. | ||
- Worked on IE8 compatibility for CityGate website as part of Swire Properties. | ||
|
||
## Other Experience | ||
|
||
### 05/2010 - 08/2013 | ||
``` | ||
Precious Metals Dealer (Senior) | ||
Various | ||
``` | ||
|
||
- In-charge of training and setting up teams for monitoring precious metals volatility. | ||
- Self-taught programming by automating work flows with VBA scripts. | ||
- Took an interest in programming and enrolled into [General Assembly's Frontend Web Development](#_04-2013-08-2013) first part-time course. | ||
|
||
## Education | ||
|
||
### 04/2013 - 08/2013 | ||
``` | ||
General Assembly, Hong Kong | ||
Frontend Web Development Alumni | ||
``` | ||
|
||
- 10 week part time evening course teaching the fundamentals of frontend web development. | ||
- Was successfully hired as a junior developer for [Imagination](#_08-2013-01-2014) before course completion. | ||
|
||
### 07/2011 - 10/2012 | ||
``` | ||
Chinese University of Hong Kong, Chinese Learning Centre | ||
Foundation Certificate in Putonghua for Non-Native Chinese Speakers | ||
``` | ||
- Evening classes for learning Putonghua. | ||
- Completed 5 modules. | ||
|
||
### 04/2012 - 06/2012 | ||
``` | ||
Chinese University of Hong Kong, School of Continuing Professional Studies. | ||
C/C++ and Project | ||
``` | ||
- Evening classes for learning C and C++. | ||
|
||
### 08/2005 - 07/2008 | ||
``` | ||
BA Economics | ||
Lancaster University | ||
``` | ||
|
||
## Community Experience | ||
|
||
### 05/2018 - 06/2018 | ||
``` | ||
Refugeek, BSD | ||
Javascript Instructor | ||
``` | ||
- (5 weeks) weekly evening workshops teaching javascript fundamentals. | ||
- Built cirriculum based on student knowledge. | ||
- Created a PWA using vuepress to host class materials. | ||
- Sponsored students to attend WebConf 2018. | ||
|
||
### 04/2016 - 01/2018 | ||
``` | ||
Hong Kong Web Developers | ||
Committee Member | ||
``` | ||
- Organised monthly Tech talks/venue with hk community speakers. | ||
- Gave numerous talks on development related topics. | ||
|
||
### 07/2012 - 06/2014 | ||
``` | ||
Dim Sum Labs, Hackerspace | ||
Community Organiser | ||
``` | ||
- Organised events for Hackerspace. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,234 @@ | ||
### C++ Input / Output | ||
|
||
Ref: [link](https://practice.geeksforgeeks.org/problems/c-input-output/0/?ref=self) | ||
|
||
Read 2 integer from stdin and display their product to stdout. | ||
|
||
Input: | ||
The first line of input contains integer T denoting the number of test cases. For each test case, there is a line containing two integers a,b. | ||
|
||
Output: | ||
For each test case, there is a line displaying the product of a and b. | ||
|
||
Constraints: | ||
1<=T<=100 | ||
0<=a,b<=100 | ||
|
||
Example: | ||
Input: | ||
3 | ||
2 6 | ||
3 7 | ||
8 3 | ||
Output: | ||
12 | ||
21 | ||
24 | ||
|
||
``` c++ | ||
#include <iostream> | ||
using namespace std; | ||
|
||
int main() { | ||
//code | ||
|
||
int t, i, input1, input2; | ||
|
||
i = 0; | ||
cin >> t; | ||
|
||
while (i < t) { | ||
cin >> input1 >> input2; | ||
cout << input1 * input2 << endl; | ||
i++; | ||
} | ||
return 0; | ||
} | ||
``` | ||
|
||
### Power of Pow | Even Number | ||
|
||
Ref: [link](https://practice.geeksforgeeks.org/problems/power-of-pow-even-number/0/?ref=self) | ||
|
||
Given a single integer N, your task is to find the sum of the square of first N even natural Numbers. | ||
|
||
Examples: | ||
|
||
Input : 3 | ||
Output : 56 | ||
22 + 42 + 62 = 56 | ||
|
||
Input : 8 | ||
Output : 816 | ||
22 + 42 + 62 + 82 + 102 + 122 + 142 + 162 | ||
Input: | ||
First line of the input contains an integer T, denoting the number of test cases. Then T test case follows. The only line of each test case contains an integer N. | ||
|
||
Output: | ||
For each test case output the required anser on a new line. | ||
|
||
Constraints: | ||
1<=T<=100 | ||
N<=104 | ||
|
||
Example: | ||
Input: | ||
3 | ||
2 | ||
5 | ||
9 | ||
Output: | ||
20 | ||
220 | ||
1140 | ||
|
||
``` cpp | ||
#include <iostream> | ||
#include <math.h> | ||
using namespace std; | ||
|
||
int main() { | ||
//code | ||
int t, i; | ||
cin >> t; | ||
|
||
while (t--) { | ||
cin >> i; | ||
int temp = 0, result = 0; | ||
|
||
for (int c = 1; c <= i; c++) { | ||
temp = c * 2; | ||
result = result + pow(temp, 2); | ||
} | ||
cout << result << endl; | ||
} | ||
return 0; | ||
} | ||
``` | ||
|
||
### odd numbers | ||
|
||
Given a single integer N, your task is to find the sum of the square of first N odd natural Numbers. | ||
|
||
Examples: | ||
|
||
Input : 3 | ||
Output : 35 | ||
12 + 32 + 52 = 35 | ||
|
||
Input : 8 | ||
Output : 680 | ||
12 + 32 + 52 + 72 + 92 + 112 + 132 + 152 | ||
Input: | ||
First line of the input contains an integer T, denoting the number of test cases. Then T test case follows. The only line of each test case contains an integer N. | ||
|
||
Output: | ||
For each test case output the required anser on a new line. | ||
|
||
Constraints: | ||
1<=T<=100 | ||
N<=104 | ||
|
||
Example: | ||
Input: | ||
3 | ||
2 | ||
5 | ||
9 | ||
Output: | ||
|
||
10 | ||
165 | ||
969 | ||
|
||
``` cpp | ||
#include <iostream> | ||
#include <math.h> | ||
using namespace std; | ||
|
||
int main() { | ||
//code | ||
int t, i; | ||
cin >> t; | ||
|
||
while (t--) { | ||
cin >> i; | ||
int temp = 0, result = 0; | ||
|
||
for (int c = 1; c <= i; c++) { | ||
temp = (c * 2) - 1; | ||
result = result + pow(temp, 2); | ||
} | ||
cout << result << endl; | ||
} | ||
return 0; | ||
} | ||
``` | ||
|
||
### isogram | ||
|
||
Ref: [link](https://practice.geeksforgeeks.org/problems/check-if-a-string-is-isogram-or-not/0/?ref=self) | ||
|
||
Given a word or phrase, check if it is isogram or not. An Isogram is a word in which no letter occurs more than once. | ||
|
||
Input: | ||
|
||
The first line of input contains an integer T denoting the number of test cases. Each test case consist of one strings in 'lowercase' only, in a separate line. | ||
Output: | ||
|
||
Print 1 if string is Isogram else print 0. | ||
Constraints: | ||
|
||
1 <= T <= 100 | ||
|
||
1 <= |S| <= 100 | ||
Example: | ||
|
||
Input: | ||
|
||
2 | ||
|
||
machine | ||
|
||
geeks | ||
|
||
Output: | ||
|
||
1 | ||
|
||
0 | ||
|
||
Explanation: | ||
For testcase 2: geeks is not an isogram as 'e' appears twice. Hence we print 0. | ||
|
||
### attempt | ||
``` cpp | ||
#include <iostream> | ||
#include <map> | ||
#include <string> | ||
|
||
using namespace std; | ||
|
||
int main() { | ||
//code | ||
std::map<std::string, int> m; | ||
int t, length; | ||
string str; | ||
cin >> t; | ||
|
||
while (t--) { | ||
std::getline(std::cin, str); | ||
length = str.length(); | ||
if (length > 26) { | ||
return 0; | ||
} | ||
|
||
cout << length << str << endl; | ||
|
||
} | ||
|
||
return 0; | ||
} | ||
``` |
Oops, something went wrong.