Skip to content
This repository has been archived by the owner on Nov 26, 2020. It is now read-only.

Commit

Permalink
Init commit
Browse files Browse the repository at this point in the history
  • Loading branch information
denistsoi committed Jun 27, 2018
0 parents commit 81a9456
Show file tree
Hide file tree
Showing 30 changed files with 1,061 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules/
11 changes: 11 additions & 0 deletions docs/.vuepress/config.js
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' }
],
}
}
139 changes: 139 additions & 0 deletions docs/cv/readme.md
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.
234 changes: 234 additions & 0 deletions docs/questions/cpp/cpp-school.md
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;
}
```
Loading

0 comments on commit 81a9456

Please sign in to comment.