├── .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 |

Summary

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 |

Work Experience

115 | 116 |
117 | November 2021 - Present 118 | Staff Software Engineer, 119 | OneConnect Financial Technology, SG 120 |
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 |
153 | October 2019 - October 2021 154 | R&D Technical Lead, 155 | Jimcon Engineering, SG 156 |
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 |
192 | June 2016 - September 2019 193 | Sr. Engineer, IT Manager, 194 | GeoApplication Engineers, SG 195 |
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 |
228 | July 2015 - June 2016 229 | Sr. Software Engineer, 230 | Shenzhen Gongzuokuai Technology, CN 231 |
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 |
255 | June 2014 - June 2015 256 | Sr. Software Engineer, 257 | Digimaple Enterprise Data Solutions, CN 258 |
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 |

Education

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 |

Interests

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 | --------------------------------------------------------------------------------