-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
357 lines (354 loc) · 16.4 KB
/
index.html
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'/>
<meta name='description' content='William Lo personal website | Software engineering student at the Univeristy of Waterloo' />
<meta name='author' content='William Lo' />
<meta name='keywords' content='William, Lo, William Lo, software, software engineer, programmer, developer' />
<link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href='font-awesome/css/font-awesome.min.css' rel='stylesheet'></link>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.7/css/materialize.min.css">
<link href='css/main.css' rel='stylesheet' />
<title> William Lo | Welcome! </title>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js'></script>
<script async src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.2/js/materialize.min.js"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-84793306-1', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<header>
<div class='header'>
<div class='container'>
<div class='row'>
<div class='col s12'>
<h1>William Lo</h1>
<h4>Aspiring Software Engineer</h4>
</div>
<div class='btnRow row'>
<div class='col s4 m2 offset-m3'>
<a class='linkBtn waves-effect waves-grey btn-large btn-floating'
href='./file-uploads/william-resume.pdf'
target='_blank'>
<i class='fa fa-file-text-o' aria-hidden='true'></i>
</a>
</div>
<div class='col s4 m2'>
<a class='linkBtn waves-effect waves-grey btn-large btn-floating'
href='https://github.com/Will-Lo'
target='_blank'>
<i class='fa fa-github' aria-hidden='true'></i>
</a>
</div>
<div class='col s4 m2'>
<a class='linkBtn waves-effect waves-grey btn-large btn-floating'
href='http://www.linkedin.com/in/williamlo97'
target='_blank'>
<i class='fa fa-linkedin' aria-hidden='true'></i>
</a>
</div>
</div>
</div>
</div>
</div>
</header>
<main>
<div class='container'>
<div class='section row'>
<h2>About me</h2>
<div class='col s12 m6 l4 profilePic'>
<img src='images/self-pic.jpg' />
</div>
<div class='col s12 m6 l8'>
<p>
I'm William, a student studying Software Engineering at the University of Waterloo. I've worked with a variety of different technologies, ranging from full stack web development to mobile development to distributed systems. By broadening my skills in different fields, I hope to be able to contribute and gain new perspectives when tackling different challenges in the future.
</p>
<p>
In my free time, I enjoy hacking on random projects, mentoring younger students, and playing Super Smash Bros Ultimate.
</p>
</div>
</div>
<div class='section row'>
<h2>Experience</h2>
<div class='row'>
<div class='card horizontal hoverable'>
<div class='card-image sideImage'>
<img class='cardImage' src='./images/nvidia.jpg' />
</div>
<div class='card-stacked'>
<div class='card-content'>
<b class='jobTitle'>Cloud Infrastructure Intern at Nvidia</b>
<p class='jobDesc'>At Nvidia, I worked as part of the Cloud Mapping Infrastructure team under the autonomous vehicles organization. I developed microservices with Go, gRPC, PostgreSQL, and AWS S3 to create workflows for HD maps so clients could create modifications, fuse data, and version their maps. I also worked on segmenting the maps and loading them through geolocation queries to support partial loads and sharding of maps.
</p>
</div>
</div>
</div>
</div>
<div class='row'>
<div class='card horizontal hoverable'>
<div class='card-image sideImage'>
<img class='cardImage' src='./images/dd_v_logo.png' />
</div>
<div class='card-stacked'>
<div class='card-content'>
<b class='jobTitle'>Software Engineering Intern at Datadog</b>
<p class='jobDesc'>At Datadog, I developed multiple features for web integrations such as the Slack, webhooks, and Jira. I also developed two new web integrations, one for Google Hangouts Chat to send notifications from Datadog, and another for Travis CI to collect metrics. I also worked on improving the notification system, which consists with Redis queues and Python workers, to skip repeatedly failed notifications.
</p>
</div>
</div>
</div>
</div>
<div class='row'>
<div class='card horizontal hoverable'>
<div class='card-image sideImage'>
<img class='cardImage' src='./images/zenreach_logo.png' />
</div>
<div class='card-stacked'>
<div class='card-content'>
<b class='jobTitle'>Full Stack Web Developer at Zenreach</b>
<p class='jobDesc'>I developed features across the tech stack and pushed them to production, including a UI rework for the main dashboard, integrations with an intercom system and AB testing, and a new onboarding and user sign up flow. I also worked in Go to create a shared API layer that will help reduce code duplication across multiple projects and microservices.
</p>
</div>
</div>
</div>
</div>
<div class='row'>
<div class='card horizontal hoverable'>
<div class='card-image sideImage'>
<img class='cardImage' src='./images/tribalscale_logo.png' />
</div>
<div class='card-stacked'>
<div class='card-content'>
<b class='jobTitle'>Agile Software Engineer at TribalScale</b>
<p class='jobDesc'>I worked on multiple platforms ranging from web, mobile, and IoT. I developed new websites for TribalScale and Athos with server-side React.js. Afterwards I worked on a CI/CD pipeline and an internal Android app. Finally, I refactored and developed a cross-platform golf app for Google Home and Amazon Alexa, where I improved the name recognition and support for new game modes.
</p>
</div>
</div>
</div>
</div>
<div class='row'>
<div class='card horizontal hoverable'>
<div class='card-image sideImage'>
<img class='cardImage' src='./images/innovasium.jpg' />
</div>
<div class='card-stacked'>
<div class='card-content'>
<b class='jobTitle'>Web App Developer at Innovasium Digital</b>
<p class='jobDesc'>I led a group of co-op students to develop a web composer that builds web portals and dashboards. I focused on refactoring the application infrastructure to use multiple Rails API calls and Redux for state management. I used React.js for the front-end to develop features such as a rich text editor with Draft.js, graphs with HighCharts.js, forms, and file management systems.
</p>
</div>
</div>
</div>
</div>
<div class='row'>
<div class='card horizontal hoverable'>
<div class='card-image sideImage'>
<img class='cardImage' src='./images/quanser.jpg' />
</div>
<div class='card-stacked'>
<div class='card-content'>
<b class='jobTitle'>Software Engineering Intern at Quanser</b>
<p class='jobDesc'>In grade 11, my high school's robotics team's sponsor, Quanser, gave me an offer to be an intern at their company to learn more about robotics and control systems. During my time there, I tested and built features for Arduino, Raspberry Pi, and myRIO systems. I also developed software that controlled a robotic system with a Microsoft Kinect, which was featured at the company's academic keynote in NI Week 2014.
</p>
</div>
</div>
</div>
</div>
</div>
<div class='row'>
<h2>Portfolio</h2>
<div class='row'>
<div class='col s12 m6 l4'>
<div class='card hoverable'>
<div class='card-image waves-effect waves-block waves-light'>
<img class='activator' src='./images/gogogo.jpg'>
</div>
<div class='cardContent activator'>
<span class='card-title grey-text text-darken-4'>Go Go Go
<i class='material-icons right'>more_vert</i>
<p class='activator'>An Online Go Board Game, written in Go and React.js</p>
</span>
</div>
<div class='card-reveal'>
<span class='card-title grey-text text-darken-4'>Go Go Go
<i class='material-icons right'>close</i>
</span>
<p>
I'm currently working together with my friends to develop an online Go board game. I manage the front-end infrastructure and the game rendering, as well as some of the API calls to the server.
</p>
<p><strong>Tools: </strong>React.js, Golang</p>
</div>
<div class='card-action'>
<a class='link' href='https://github.com/SEkiSoft/gogogo-web' target='blank'>
Github
</a>
</div>
</div>
</div>
<div class='col s12 m6 l4'>
<div class='card hoverable'>
<div class='card-image waves-effect waves-block waves-light'>
<img class='activator' src='./images/messenger.jpg'>
</div>
<div class='cardContent activator'>
<span class='card-title grey-text text-darken-4'>Cat Facts Bot
<i class='material-icons right'>more_vert</i>
<p class='activator'>A fun messenger bot that spews out cat facts and puns</p>
</span>
</div>
<div class='card-reveal'>
<span class='card-title grey-text text-darken-4'>Cat Facts Bot
<i class='material-icons right'>close</i>
</span>
<p>
When Facebook released their messenger platform in April 2016, I thought it'd be fun to test it out with a bot I always wanted to create, a cat facts bot (inspired after the prank). Although it lacks the ability to spam users, it uses some aspects of machine learning and natural language processing to send responses. I used Facebook's supported Wit.ai to build the AI and train the bot. Try talking to it!
</p>
<p><strong>Tools: </strong>Node.js, Facebook API</p>
</div>
<div class='card-action'>
<a class='link' href='https://github.com/Will-Lo/Cat-Facts-Chatbot' target='blank'>
Github
</a>
<a class='link' href='https://www.facebook.com/Cat-Facts-Bot-1537899319849708/?fref=ts' target='blank'>
App page
</a>
</div>
</div>
</div>
<div class='col s12 m6 l4'>
<div class='card hoverable'>
<div class='card-image waves-effect waves-block waves-light'>
<img class='activator' src='./images/coder.jpg'>
</div>
<div class='cardContent activator'>
<span class='card-title grey-text text-darken-4'>Code/r
<i class='material-icons right'>more_vert</i>
<p>A web app that interprets written python code</p>
</span>
</div>
<div class='card-reveal'>
<span class='card-title grey-text text-darken-4'>Code/r
<i class='material-icons right'>close</i>
</span>
<p>
Some programmers believe that one of the best ways to practice programming is by writing down code on paper. This web application takes a url of a picture of python code and applies machine learning and image processing to execute the code in the browser. It also includes an embedded python text-editor for any modifications.
</p>
<p>
Made during MFST Hacks
</p>
<p><strong>Tools: </strong>Nodejs, Microsoft Azure API </p>
</div>
<div class='card-action'>
<a class='link' href='https://github.com/Will-Lo/Coder' target='blank'>
Github
</a>
<a class='link' href='http://python-coder.herokuapp.com/' target='blank'>
App Page
</a>
</div>
</div>
</div>
</div>
<div class='row'>
<div class='col s12 m6 l4'>
<div class='card hoverable'>
<div class='card-image waves-effect waves-block waves-light'>
<img class='activator' src='./images/frc_robot.jpg'>
</div>
<div class='cardContent activator'>
<span class='card-title activator grey-text text-darken-4'>FIRST Robotics
<i class='material-icons right'>more_vert</i>
<p>High school robotics lead programmer and captain</p>
</span>
</div>
<div class='card-reveal'>
<span class='card-title grey-text text-darken-4'>FIRST Robotics
<i class='material-icons right'>close</i>
</span>
<p>I collaborated with a team to build, wire, and program the robot in 6.5 weeks every year for 4 years. Although I primarily focused on the programming aspect, I also took part in building, electricals, coaching, and outreach.</p>
<p>We won numerous awards with the team including Regional Winners, Regional Finalists, Innovation in Control, Creativity, Entrepreneurship, and Rookie All Stars.</p>
<p><strong>Tools: </strong>Labview, Arduino</p>
</div>
<div class='card-action'>
<a class='link' href='https://github.com/frcteam4001' target='blank'>
Github
</a>
</div>
</div>
</div>
<div class='col s12 m6 l4'>
<div class='card hoverable'>
<div class='card-image waves-effect waves-block waves-light'>
<img class='activator' src='./images/wat-product.jpg'>
</div>
<div class='cardContent activator'>
<span class='card-title grey-text text-darken-4'>WAT Product
<i class='material-icons right'>more_vert</i>
<p>A web application that analyzes the sentiments towards products</p>
</span>
</div>
<div class='card-reveal'>
<span class='card-title grey-text text-darken-4'>WAT Product
<i class='material-icons right'>close</i>
</span>
<p>I worked together with my friends to create our first web application for the IBM Developer Challenge. It uses IBM Watson's News Analytics to analyze multiple news articles, and the Alchemy Language API to gauge the positivity of the article.</p>
<p><strong>Tools: </strong>Node.js, Express, IBM Alchemy API</p>
</div>
<div class='card-action'>
<a class='link' href='https://github.com/ian952/WatProduct' target='blank'>
Github
</a>
</div>
</div>
</div>
<div class='col s12 m6 l4'>
<div class='card hoverable'>
<div class='card-image waves-effect waves-block waves-light'>
<img class='activator' src='./images/food_finder.jpg'>
</div>
<div class='cardContent activator'>
<span class='card-title grey-text text-darken-4'>Food Finds
<i class='material-icons right'>more_vert</i>
<p>A mobile app for finding recipes</p>
</span>
</div>
<div class='card-reveal'>
<span class='card-title activator grey-text text-darken-4'>Food Finds
<i class='material-icons right'>close</i>
</span>
<p>A mobile application that prompts the user to enter any ingredient or description, and returns relevant recipes based on the user's search query.</p>
<p><strong>Tools: </strong>Python, Kivy, Edamam API</p>
</div>
<div class='card-action'>
<a class='link' href='https://github.com/Will-Lo/Food-API.git' target='blank'>
Github
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<footer class="page-footer">
<div class="container">
<div class="row">
<div class="col l6 s12">
<h5 class="white-text">Contact Me</h5>
<ul>
<li>
<a class="grey-text text-lighten-3">
<i class='fa fa-envelope-o' aria-hidden='true'></i>
[email protected]</a></li>
</ul>
</div>
</div>
</footer>
</body>
</html>