├── .gitignore
├── CNAME
├── robots.txt
├── images
└── icons
│ ├── icon-72x72.png
│ ├── icon-96x96.png
│ ├── icon-128x128.png
│ ├── icon-144x144.png
│ ├── icon-152x152.png
│ ├── icon-192x192.png
│ ├── icon-384x384.png
│ └── icon-512x512.png
├── css
├── base.css
├── print.css
└── screen.css
├── manifest.json
├── README.md
└── index.html
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
--------------------------------------------------------------------------------
/CNAME:
--------------------------------------------------------------------------------
1 | oh-my-resume.jeffreytse.net
--------------------------------------------------------------------------------
/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow: /
3 |
--------------------------------------------------------------------------------
/images/icons/icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jeffreytse/oh-my-resume/HEAD/images/icons/icon-72x72.png
--------------------------------------------------------------------------------
/images/icons/icon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jeffreytse/oh-my-resume/HEAD/images/icons/icon-96x96.png
--------------------------------------------------------------------------------
/images/icons/icon-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jeffreytse/oh-my-resume/HEAD/images/icons/icon-128x128.png
--------------------------------------------------------------------------------
/images/icons/icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jeffreytse/oh-my-resume/HEAD/images/icons/icon-144x144.png
--------------------------------------------------------------------------------
/images/icons/icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jeffreytse/oh-my-resume/HEAD/images/icons/icon-152x152.png
--------------------------------------------------------------------------------
/images/icons/icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jeffreytse/oh-my-resume/HEAD/images/icons/icon-192x192.png
--------------------------------------------------------------------------------
/images/icons/icon-384x384.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jeffreytse/oh-my-resume/HEAD/images/icons/icon-384x384.png
--------------------------------------------------------------------------------
/images/icons/icon-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jeffreytse/oh-my-resume/HEAD/images/icons/icon-512x512.png
--------------------------------------------------------------------------------
/css/base.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: "Lucida Grande", Lucida, Verdana, sans-serif;
3 | min-width: 900px;
4 | }
5 |
6 | .company-header {
7 | margin-top: 1.5em;
8 | margin-bottom: 0.5em;
9 | font-size: 1.15em;
10 | }
11 |
12 | .company-header .company {
13 | /* font-size: 1.25em; */
14 | font-weight: bold;
15 | }
16 |
17 | .company-header .position {
18 | font-weight: bold;
19 | }
20 |
21 | .company-header .date {
22 | width: 18em;
23 | display: inline-block;
24 | }
25 |
26 | .role-keywords {
27 | color: #666;
28 | word-break: break-all;
29 | overflow-wrap: break-word;
30 | }
31 |
32 |
--------------------------------------------------------------------------------
/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "oh-my-resume",
3 | "short_name": "oh-my-resume",
4 | "theme_color": "#fff",
5 | "background_color": "#fff",
6 | "display": "browser",
7 | "orientation": "",
8 | "scope": "/",
9 | "start_url": "/",
10 | "icons": [
11 | {
12 | "src": "images/icons/icon-72x72.png",
13 | "sizes": "72x72",
14 | "type": "image/png"
15 | },
16 | {
17 | "src": "images/icons/icon-96x96.png",
18 | "sizes": "96x96",
19 | "type": "image/png"
20 | },
21 | {
22 | "src": "images/icons/icon-128x128.png",
23 | "sizes": "128x128",
24 | "type": "image/png"
25 | },
26 | {
27 | "src": "images/icons/icon-144x144.png",
28 | "sizes": "144x144",
29 | "type": "image/png"
30 | },
31 | {
32 | "src": "images/icons/icon-152x152.png",
33 | "sizes": "152x152",
34 | "type": "image/png"
35 | },
36 | {
37 | "src": "images/icons/icon-192x192.png",
38 | "sizes": "192x192",
39 | "type": "image/png"
40 | },
41 | {
42 | "src": "images/icons/icon-384x384.png",
43 | "sizes": "384x384",
44 | "type": "image/png"
45 | },
46 | {
47 | "src": "images/icons/icon-512x512.png",
48 | "sizes": "512x512",
49 | "type": "image/png"
50 | }
51 | ]
52 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## What's it?
2 |
3 | ```banner
4 | ██████╗ ██╗ ██╗ ███╗ ███╗██╗ ██╗ ██████╗ ███████╗███████╗██╗ ██╗███╗ ███╗███████╗
5 | ██╔═══██╗██║ ██║ ████╗ ████║╚██╗ ██╔╝ ██╔══██╗██╔════╝██╔════╝██║ ██║████╗ ████║██╔════╝
6 | ██║ ██║███████║ ██╔████╔██║ ╚████╔╝ ██████╔╝█████╗ ███████╗██║ ██║██╔████╔██║█████╗
7 | ██║ ██║██╔══██║ ██║╚██╔╝██║ ╚██╔╝ ██╔══██╗██╔══╝ ╚════██║██║ ██║██║╚██╔╝██║██╔══╝
8 | ╚██████╔╝██║ ██║ ██║ ╚═╝ ██║ ██║ ██║ ██║███████╗███████║╚██████╔╝██║ ╚═╝ ██║███████╗
9 | ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝
10 |
11 | ```
12 |
13 | A simple CV to write myself in a pure HTML and CSS which can be published/printed.
14 |
15 | ## Development
16 |
17 | To set up your environment to develop your resume based on this template, run `npm i -g serve && serve`.
18 |
19 | Your website is served and open your browser at `http://localhost:3000`.
20 |
21 | ## Contributing
22 |
23 | Issues and Pull Requests are greatly appreciated. If you've never contributed to an open source project before I'm more than happy to walk you through how to create a pull request.
24 |
25 | You can start by [opening an issue](https://github.com/jeffreytse/oh-my-resume/issues/new) describing the problem that you're looking to resolve and we'll go from there.
26 |
27 | ## License
28 |
29 | This theme is licensed under the [MIT license](https://opensource.org/licenses/mit-license.php) © JeffreyTse.
30 |
31 |
--------------------------------------------------------------------------------
/css/print.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 10px;
3 | font-size: 12px;
4 | }
5 |
6 | #nav,
7 | #footer,
8 | #skills {
9 | display: none;
10 | }
11 |
12 | #page {
13 | border: 0px;
14 | box-shadow: none;
15 | }
16 |
17 | #header {
18 | /* height: 120px; */
19 | color: black;
20 | background: none;
21 | text-align: center;
22 | }
23 |
24 | #header #name {
25 | font-size: 3em;
26 | font-weight: bold;
27 | border-bottom: 2px solid black;
28 | }
29 |
30 | #header #title {
31 | display: none;
32 | }
33 |
34 | #header #address {
35 | margin: 1em;
36 | }
37 |
38 | #header #address a {
39 | margin: 1em;
40 | }
41 |
42 | #header #address-print {
43 | display: inherit;
44 | margin-top: 5px;
45 | }
46 |
47 | #header a {
48 | color: black;
49 | }
50 |
51 | h1 {
52 | font-size: 1.5em;
53 | margin-top: 1.5em;
54 | }
55 |
56 | h2.on-page-header {
57 | margin-top: 50px;
58 | }
59 |
60 | .break-here {
61 | page-break-before: always;
62 | }
63 |
64 | td {
65 | padding: 0px;
66 | padding-left: 5px;
67 | }
68 |
69 | #skill-table td.first {
70 | width: 15em !important;
71 | }
72 |
73 | td.first {
74 | text-align: right;
75 | font-weight: bold;
76 | width: 8em;
77 | vertical-align: top;
78 | }
79 |
80 | td.first:after {
81 | content: ": ";
82 | }
83 |
84 | td {
85 | vertical-align: bottom;
86 | }
87 |
88 | a {
89 | text-decoration: none;
90 | }
91 |
92 | #content {
93 | text-decoration: none;
94 | }
95 |
96 | #content a.non-printed:link {
97 | text-decoration: underline;
98 | color: black;
99 | }
100 |
101 | #content a:not(.non-printed):link:after {
102 | content: " (" attr(href) ") ";
103 | font-style: italic;
104 | }
105 |
106 | /* reshow print only items */
107 | #work-fourv-repeat {
108 | display: block;
109 | }
110 |
111 | #open_source_print {
112 | display: block;
113 | page-break-before: always;
114 | }
115 |
116 | #open_source {
117 | display: none;
118 | }
119 |
120 | /* Print alignment */
121 | #work-fourv-repeat {
122 | display: inherit;
123 | page-break-before: always;
124 | }
125 |
126 | #work-waterfall {
127 | page-break-before: always;
128 | }
129 |
130 | #infoblox_inc {
131 | page-break-before: always;
132 | }
133 |
--------------------------------------------------------------------------------
/css/screen.css:
--------------------------------------------------------------------------------
1 | body {
2 | /* background-color: #999; */
3 | background-color: rgb(217, 217, 217);
4 | font-size: 12px;
5 | margin: 20px;
6 | }
7 |
8 | #page {
9 | position: relative;
10 | background-color: white;
11 | margin-left: auto;
12 | margin-right: auto;
13 | width: 850px;
14 | /* border: 1px solid black; */
15 | box-shadow: 0px 0px 15px 10px rgb(200, 200, 200);
16 | }
17 |
18 | #footer {
19 | padding: 20px;
20 | border-top: 8px solid #bbb;
21 | background-color: rgb(53, 60, 62);
22 | color: white;
23 | text-align: center;
24 | /* font-size: .75em; */
25 | }
26 |
27 | #page a {
28 | color: forestgreen;
29 | }
30 |
31 | #header {
32 | text-align: center;
33 | font-size: 14px;
34 | background-color: #222;
35 | color: white;
36 | height: 145px;
37 | border-bottom: 8px solid #bbb;
38 | padding-left: 5px;
39 | padding-right: 5px;
40 | padding-top: 10px;
41 | }
42 |
43 | #header #name {
44 | font-size: 2.65em;
45 | padding-left: 20px;
46 | padding-top: 20px;
47 | display: inline;
48 | /* float: left; */
49 | }
50 |
51 | #header #title {
52 | font-size: 2em;
53 | }
54 |
55 | #header #address {
56 | margin-top: 5px;
57 | /* float: right; */
58 | /* vertical-align: top; */
59 | /* font-style: italic; */
60 | font-size: 0.8em;
61 | line-height: 2em;
62 | }
63 |
64 | #header #address a {
65 | color: white;
66 | }
67 |
68 | #header #address i.bi:not(:first-child) {
69 | margin-left: 0.75em;
70 | }
71 |
72 | #header #nav {
73 | clear: both;
74 | text-align: center;
75 | /* margin-top: 15px; */
76 | padding-top: 15px;
77 | }
78 |
79 | #header #nav ul {
80 | list-style: none;
81 | padding: 0;
82 | margin: 0;
83 | }
84 |
85 | #header #nav li {
86 | display: inline;
87 | margin-left: 15px;
88 | margin-right: 15px;
89 | }
90 |
91 | #header #nav a {
92 | color: #b3b3b3;
93 | /* text-decoration: none; */
94 | }
95 | #header #nav a:hover {
96 | color: white;
97 | }
98 |
99 | #content {
100 | padding: 5px;
101 | padding-left: 20px;
102 | padding-right: 20px;
103 | color: #4c4c4c;
104 | }
105 |
106 | #content h1 a {
107 | color: #4c4c4c;
108 | }
109 |
110 | .odd {
111 | background-color: #eaeaea;
112 | }
113 |
114 | td {
115 | padding: 5px;
116 | }
117 |
118 | td.first {
119 | width: 10em;
120 | font-weight: bold;
121 | font-size: 1.1em;
122 | }
123 |
124 | #skills .note {
125 | font-size: 0.9em;
126 | color: #b1b1b1;
127 | }
128 |
129 | #skills table {
130 | width: 100%;
131 | }
132 |
133 | .heading {
134 | font-weight: bold;
135 | }
136 |
137 | /* Hide print only elements */
138 | #work-fourv-repeat {
139 | display: none;
140 | }
141 |
142 | #open_source_print {
143 | display: none;
144 | }
145 |
146 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Resume of Jeffrey Tse
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
19 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
38 |
39 |
40 |
41 |
48 |
49 |
50 |
51 |
52 |
81 |
82 |
83 |
84 |
85 |
86 |
87 | Self-sufficient and reliable professional with a bundle of
88 | experience in software engineering. Successfully lead project
89 | teams to build productive and technological products.
90 |
91 |
92 | An enthusiastic open-source technician who fell in love with
93 | computer when I was 10 years old.
94 |
95 |
96 | An Arch Linux Lover and VIMer who is also familiar with Windows
97 | and macOS and passionate about best-practice, code quality,
98 | usability, cloud computing, and latest technologies.
99 |
100 |
101 |
102 | Community Contribution: My GitHub followers are over
103 | 380 , and total project stars are over 3.3K , and
104 | got a few sponsors. As one of the 900 maintainers in the world to
105 | be awarded the
107 | Open Source Sponsorship from GitHub in 2022 .
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
121 |
122 | Java/Spring Framework/SpringBoot/Spring
123 | Cloud/Zookeeper/MySQL/Redis/JavaScript/NodeJS/React/AWS/K8S
124 |
125 |
126 |
127 |
128 | Participate in Core Banking System Products development like
129 | Model Bank, Internal Customer Management System (ICMS), Integrated
130 | Business Platform (IBP), Operation Management System (OM), OCPay
131 | (Payment System).
132 |
133 |
134 |
135 | Play the role of core member of the production team and the
136 | technical interviewer.
137 |
138 |
139 |
140 | Lead and promote the construction of technical standards, review
141 | code changes requests and contribute to software development
142 | guidelines and best practices.
143 |
144 |
145 |
146 | Participate in requirements analysis, system analysis and design
147 | core function code writing, and maintain system core modules.
148 |
149 |
150 |
151 |
152 |
157 |
158 | Ruby(Rails)/C#(.Net
159 | Core)/TypeScript/Java/NodeJS/Vue/React/Electron/Python(Flask)/Aliyun
160 | Cloud/Ansible
161 |
162 |
163 |
164 |
165 | Architected and implemented high availability carpark platform
166 | used for HDB, Shopping Mall, etc. Full continuous deployment
167 | achieving multiple weekly deployments with short term downtime.
168 |
169 |
170 |
171 | Designed and built RTSP video stream distribution and integration,
172 | working alongside servers and databases for functionality.
173 |
174 |
175 |
176 | Designed and built a highly customizable Smart Carpark Kiosk which
177 | supports multiple features like top up with POS, etc.
178 |
179 |
180 |
181 | Participated in delivering projects in full SDLC/Agile methodologies,
182 | maintain efficient, reusable, and reliable code.
183 |
184 |
185 |
186 | Lead the infrastructure construction of KVM-based server
187 | virtualization environment with blade servers.
188 |
189 |
190 |
191 |
196 |
197 | Ruby(Rails)/C#/PHP(Laravel)/JavaScript/NodeJS/Vue/React/PostgreSQL/Docker/Redis/Electron/UML
198 |
199 |
200 |
201 |
202 | Participated in solution architect, Ruby on Rails based Real-time
203 | Instrumentation & Monitoring Data-gathering, and Visual Data System
204 | used for famous constructions like MRT, Tunnel, Site Investigation
205 | and LTA projects.
206 |
207 |
208 |
209 | Instituted Agile TDD/BDD development methodology including Scrum,
210 | Pair programming, Code Review, and Continuous Integration.
211 | Reduced release cycle from quarterly to two weekly, enabling more
212 | focused execution and planning. Ensured completion of all
213 | committed-to work.
214 |
215 |
216 |
217 | Drove and participate in code and document reviews, mentoring team
218 | in best practices.
219 |
220 |
221 |
222 | Lead the infrastructure construction of Xen-based server virtualization
223 | environment with blade servers.
224 |
225 |
226 |
227 |
232 |
233 | C/C++/Duilib/WinAPI/STL/Boost/Cef3/NSIS/Agile
234 |
235 |
236 | Participated in designing and developing Enterprise IM & OA Software.
237 |
238 | Ensure innovative and robust software architecture that meets
239 | software requirement of quality, security, extensibility, etc.
240 |
241 |
242 | Fully developed auto-updater and installer-packing tools with NSIS.
243 |
244 |
245 | Participated in agile software development, and coordinated with
246 | local teams to create the best implementation of the product.
247 |
248 |
249 | Experience in MVVC framework, singleton pattern, shadow tree, observer
250 | pattern, etc.
251 |
252 |
253 |
254 |
259 |
260 | C/C++/MFC/DuiLib/WinAPI/STL/Boost/API Hook/COM Hook/DLL
261 |
262 |
263 |
264 |
265 | Participated in designing and developing Enterprise OA Software
266 | used for enterprises like China Southern Power Grid, etc.
267 |
268 |
269 |
270 | Independently developed core features like Anti-screenshots,
271 | Anti-copying, Transferring Data Encryption, etc.
272 |
273 |
274 |
275 | Developed the key technologies such as APIHook, recognition
276 | algorithm and the pipe communication.
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 | National Software Professional Certificate
285 | Huawei HCIA-Cloud Service Certificate
286 | IBM Senior Software Engineer Course Certificate
287 |
288 | The National Blue Cup in Informatics Silver Prize in province
289 |
290 |
291 | Pan-Zhujiang Nation-Wide University Students Computer Works
292 | Competition Silver Prize, Macao
293 |
294 |
295 | B.E. Software Engineering, Guangxi University for
296 | Nationalities (GUN), 2011-2015, China
297 |
298 |
299 | Award scholarships of GUN, the 1st Prize for Graduation Thesis,
300 | 2015
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 | An enthusiastic open-source technician who loves meditation and
310 | plays the Guitar, the Piano and Photography by self-taught.
311 |
312 |
313 | An open-minded man who loves to learn anything else like the
314 | philosophy of our universe, the morphology of english words, and
315 | think about the essence behind things like how the elevator saves
316 | energy, what is the company's business logic, etc.
317 |
318 |
319 |
320 |
321 |
322 |
330 |
331 |
332 |
333 |
--------------------------------------------------------------------------------