-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
472 lines (397 loc) · 22.5 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
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>Ze Yuan Zhang</title>
<meta content="" name="description">
<meta content="" name="keywords">
<!-- Favicons -->
<link href="assets/img/favicon.png" rel="icon">
<link href="assets/img/apple-touch-icon.png" rel="apple-touch-icon">
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Raleway:300,300i,400,400i,500,500i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
<!-- Vendor CSS Files -->
<link href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="assets/vendor/icofont/icofont.min.css" rel="stylesheet">
<link href="assets/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
<!-- Main CSS File -->
<link href="assets/css/style.css" rel="stylesheet">
<script src="assets/vendor/jquery/jquery.min.js"></script>
<script src="assets/vendor/modernizr/modernizr.js"></script>
<script>
// Loading GIF
$(window).load(function() {
$(".se-pre-con").fadeOut("slow");
$('.credits').hide();
$('.credits').removeAttr('hidden');
$('.credits').fadeIn("slow");
});
</script>
</head>
<!-- Loading GIF -->
<div class="se-pre-con">
<img src="/assets/img/loading.gif">
</div>
<body>
<!-- ======= Header ======= -->
<header id="header" class="opacity95">
<div class="container">
<h1><a href="/">Ze Yuan Zhang</a></h1>
<h2 class="descrip">Software Engineer and <span>Entrepreneur</span></h2>
<!-- <h2 class="descrip">Software Engineer and Entrepreneur</h2> -->
<nav class="nav-menu d-none d-lg-block">
<ul>
<li class="active"><a href="#header">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#experience">Experience</a></li>
<li><a href="#projects">Projects</a></li>
</ul>
</nav><!-- .nav-menu -->
<div class="social-links">
<a href="https://github.com/gavin2059/" class="github" target="_blank"><i class="bx bxl-github"></i><span>GitHub</span></a>
<br>
<a href="https://www.linkedin.com/in/zeyuanzhang/" class="linkedin" target="_blank"><i class="icofont-linkedin"></i><span>LinkedIn</span></a>
<br>
<a href="assets/Resume.pdf" class="resume" target="_blank"><i class="icofont-clip-board"></i><span>Resume</span></a>
<br>
<a class="email"><i class="icofont-mail-box"></i><span>Email</span></a>
</div>
</div>
</header><!-- End Header -->
<!-- <div class="credits" hidden>
Art By <a href="https://www.deviantart.com/jessicawoulfe">Jessica Woulfe</a>
</div> -->
<!-- ======= About Section ======= -->
<section id="about" class="about">
<!-- ======= About Me ======= -->
<div class="about-me container">
<div class="section-title">
<h2>about</h2>
<p>Hello!</p>
</div>
<div class="row">
<div class="col-lg-4" data-aos="fade-right">
<img src="assets/img/me.jpg" class="img-fluid photo" alt="">
</div>
<div class="col-lg-8 pt-4 pt-lg-0 content" data-aos="fade-left">
<h3>Software Engineer & Entrepreneur</h3>
<p>
Hi, my name is Ze Yuan (Gavin) Zhang. Nice to meet you!
<br/>
I graduated from Rice University in December 2022 with a B.S. in Computer Science.
<br />
Currently, I am making any NFT rentable without collateral at
<b>
<a href="https://zipzap.net" target="_blank"> zipzap.net.</a>
</b>
</p>
<p>
I am especially passionate about music and on the lookout for intersections between it and software!
</p>
</div>
</div>
<div class="section-title">
<h2>Skills</h2>
</div>
<div class="row">
<div class="col-lg-4">
<ul><strong>Languages</strong>
<li><i class="icofont-rounded-right"></i>Python, Java, C++, Solidity</li>
<li><i class="icofont-rounded-right"></i>HTML, CSS, Javascript</li>
<li><i class="icofont-rounded-right"></i>ChucK, MATLAB, SQL, Assembly</li>
</ul>
</div>
<div class="col-lg-4">
<ul><strong>Tools & Frameworks</strong>
<li><i class="icofont-rounded-right"></i>Keras, TensorFlow, OpenCV</li>
<li><i class="icofont-rounded-right"></i>React, Flask, Express, Docker</li>
<li><i class="icofont-rounded-right"></i>Firebase, MongoDB</li>
<li><i class="icofont-rounded-right"></i>Ethers, Hardhat</li>
<li><i class="icofont-rounded-right"></i>JUCE, Librosa</li>
</ul>
</div>
<div class="col-lg-4">
<ul><strong>Foundations</strong>
<li><i class="icofont-rounded-right"></i>Data Structures & Algorithms</li>
<li><i class="icofont-rounded-right"></i>Distributed Systems</li>
<li><i class="icofont-rounded-right"></i>Probabilistic Algorithms</li>
<li><i class="icofont-rounded-right"></i>Computer Systems</li>
</ul>
</div>
</div>
</div><!-- End About Me -->
</section><!-- End About Section -->
<!-- ======= experiences Section ======= -->
<section id="experience" class="experience">
<div class="container">
<div class="section-title">
<h2>experience</h2>
<p>My experience</p>
</div>
<div class="container">
<div class="row">
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-database"></i><span> Jan 2023 - Present</span></div>
<h4>Co-Founder & Engineer, ZipZap LLC</h4>
<p>
ZipZap allows anyone to rent any NFT, collateral free, using our patent pending Proxy Wallet technology.
</p>
<p>
The Proxy Wallet is essentially a custodial wallet with built-in asset protection controlled by ZipZap.
To implement it, our team is creating microservices and multi-chain dApps using Docker, Express, React, Firebase, and more.
We're also developing modular, self-connecting, and upgradable smart contracts using Solidity, Hardhat, and Ethers.
Finally, we are creating an Ethereum JSON-RPC compatible browser extension to allow users to connect their Proxy Wallet to any dApp.
</p>
<p>
So far, ZipZap has been a great experience showing me the challenges and rewards of running a startup, and the process of
innovation and overcoming technical obstacles.
</p>
<p>
Come check us out at
<b>
<a href="https://zipzap.net" target="_blank">zipzap.net!</a>
</b>
</p>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-food-basket"></i><span> May 2022 - July 2022</span></div>
<h4>Software Engineer Intern, MealMe</h4>
<p>
MealMe is a Silicon-Valley startup providing a search-engine-like service for ordering from delivery apps such as Uber Eats and Instacart.
</p>
<p>
At MealMe, I protected over $10,000 USD of profits each month by making several backend updates (confidential).
Additionally, I enabled and live-tested anonymous SMS and calls using SignalWire to connect users and delivery drivers.
I also increased the app's speed by over 50% in some cases by optimizing restaurants and images shown.
</p>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-bird-flying"></i><span> May 2021 - July 2021</span></div>
<h4>Software Engineer Intern, InfoBird</h4>
<p>
Based in Beijing, InfoBird provides customer engagement services to hundreds of companies. At InfoBird, I designed an OCR server reading
serial numbers in images sent from customers. This helped automate customer service quality assurance.
</p>
<p>
I created the server mainly using OpenCV, Paddle, and Flask. The server was based off a MobileNetV3 model which I tuned using 2000+ images from clients.
Overall, I improved its accuracy from 75% to 90%. I also improved its accuracy by 45% on diagonal text using Canny and Hough transformations.
I especially enjoyed the unique experience of working in a Chinese environment.
</p>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-hard-disk"></i><span> Feb 2020 - Aug 2020</span></div>
<h4>Research Assistant, Rice University</h4>
<p>
I worked with Dr. Peter J. Varman to implement Fair-EDF, an earliest-deadline-first request scheduler seeking to fulfill the same percentage of requests from different clients. This involved using exploring different linear regression and decision tree models to predict SSD processing times which are used in the algorithm to predict whether put a request in the low priority queue.
</p>
<p>
Using a decision tree with 4 nodes per branch, we were able to accomplish fast training (0.14s on a training set of 5000+ requests, 52000 observations/second) with a 15% error on average on a YACSIM simulated SSD receiving requests from a single client.
</p>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-search-stock"></i><span> Sep 2019 - Dec 2020</span></div>
<h4>Analyst, Rice Undergraduate Investment Fund</h4>
<p>
I was a member of the Porfolio Review section, which manages and oversees the fund's holdings. During my time with the fund, I worked with the Industrials and Energy sectors. In each sector, I gave updates on stocks we hold, industry overviews, and semesterly reports. I also worked with each sector's team on qualitative research and qualitative (DCF) analysis for buy and sell pitches.
In Energy, I protected a return of 44% on the stock CLB by pitching to hold it rather than sell it.
</p>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-speed-meter"></i><span> Sep 2019 - May 2020</span></div>
<h4>Member, Rice Hyperloop Propulsion Team</h4>
<p>
As a member of the Propulsion team, I helped recreate the prototype of a cold gas thrust chamber for our model train by producing schematics of various parts on SolidWorks, machining them, and finding suitable components to use for building the prototype.
</p>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-music-notes"></i><span> April 2016 - April 2019</span></div>
<h4>General Manager, UNA Community Youth Band</h4>
<p>
I was a percussionist and pianist for the UNA Youth Band, a concert band run by youth in the Vancouver area focused on providing students who were not able to be part of a school band a similar opportunity. As a promoter in 2017 and 2018, and manager in 2019, I increased the band's size by 33% by streamlining the recruiting process with a list of local music instructors. As the manager, I organized 12 concerts, the rehearsal venue, and distribution of volunteer hours to 20+ students. I also contributed to making the website and our budget.
</p>
</div>
</div>
</div>
</div>
</section><!-- End experiences Section -->
<!-- ======= projects Section ======= -->
<section id="projects" class="projects">
<div class="container">
<div class="section-title">
<h2>projects</h2>
<p>My Projects</p>
</div>
<div class="container">
<div class="row">
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-sound-wave"></i><span> Nov 2023 - Present</span></div>
<h4>Equalizer Plugin</h4>
<p>
I created an audio equalizer with lowcut, highcut, peak filters compatible with all major platforms using C++ and JUCE.
To render the spectrum analyzer, I used the Fast Fourier Transform.
Currently, I'm prototyping a noise reduction feature with Spectral Subtraction, Wiener Filtering,
and the Redundant Convolutional Encoder-Decoder Network in Python with Librosa.
</p>
<div class="social-links repo">
<a href="https://github.com/gavin2059/SimpleEQ" target="_blank"><i class="bx bxl-github"></i><span>Repo.</span></a>
</div>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-cloudapp"></i><span> Aug 2022 - Dec 2022</span></div>
<h4>Simple S3</h4>
<p>
As a team of 4 peers under the guidance of Dr. Dan Wallach, we designed a distributed storage system similar to Amazon S3 using master-worker nodes architecture.
We then implemented it as a secure and horizontally scalable system using AWS, Flask, and Swagger.
Our system could double or half its nodes on-demand with through-put scaling nearly linearly with worker count.
It could protect uploaded contents under node
Additionally, we created a responsive dashboard using React and ChakraUI for monitoring health and performance metrics.
</p>
<div class="social-links repo">
<a href="https://github.com/RiceComp413-Fall2022/S4" target="_blank"><i class="bx bxl-github"></i><span>Repo.</span></a>
</div>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-brand-shell"></i><span> Jan 2022 - May 2022</span></div>
<h4>Shell Hydraulics Stick-Slip Analysis</h4>
<p>
Stick-Slip in pistons is a dangerous and wasteful phenomenon where the piston begins to vibrate intensely and erratically.
I analyzed Stick-Slip in pistons by coordinating a team of peers and working with mentors from Shell Hydraulics.
</p>
<p>
Together, we experimented with 300+ files using Detrended Fluctuation Analysis and Wavelet Transform.
We Classified files for varying degrees, intervals of Stick-Slip with Fast Fourier Transform and Hampel Identifier
We also created a user-friendly dashboard for anyone to test inputted data for Stick-Slip using Streamlit.
</p>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-chat"></i><span> Dec 2021</span></div>
<h4>ChatApp</h4>
<p>
In this nightmarish class project, I implemented a Java RMI messaging app using model-view-controller and publisher-subscriber systems.
I designed and presented API with type-narrowing on message types, which was then voted for class-wide (100+ students) usage.
I also incorporated visitor and factory design patterns to allow processing of unknown message types.
</p>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-camera"></i><span> Jun 2021</span></div>
<h4>OpenCV Gesture Detection</h4>
<p>
To correct bad habits such as hair-pulling, I created an app that pings users whenever it detects certain gestures.
To do this, I collected data for a webcam based gesture recognition model using Mediapipe and OpenCV.
Then, I trained a 4 stage scikit-learn pipeline featuring logistic regression, gradient boosting classifier, etc.
In the end, it could detect 5 gestures in real-time using Mediapipe, OpenCV with 88% accuracy.
Unfortunately, I am still pulling my hair sometimes.
</p>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-loop"></i><span> Dec 2020</span></div>
<h4>(no)Pedal</h4>
<p>
Recently, I started playing the guitar, and wanted to make a completely digital substitute to a physical loop pedal that can be used anywhere, with an electronic or acoustic guitar. I've created a version that is somewhat functional, but due to the inaccurate timing of Javascript's task scheduling, I will need to re-write the code using web-audio libraries such as Tone.js. I also need to trim the leading and trailing silence in recordings (when users move hands between the guitar and 'pedal'), add mobile compatibility, and improve audio quality (possibly through a noise gate and EQing recordings).
</p>
<div class="social-links repo">
<a href="https://github.com/gavin2059/nopedal" target="_blank"><i class="bx bxl-github"></i><span>Repo.</span></a>
<a href="https://gavin2059.github.io/nopedal/" target="_blank"><i class="icofont-music"></i><span>Try it!</span></a>
</div>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-eye-alt"></i><span> Dec 2020</span></div>
<h4>Who's Distracted?</h4>
<p>
With a group of 2 other friends, I made a Google Chrome extension for study groups which keeps people focused by publicy shaming them if they get distracted ;). If a user visits a non-productive website, all other users in the same lobby as them will be alerted. I primarily programmed the front-end, which consists of the lobby joining and alert interface, and tracking and communicating user activity with a Flask server via socket.io. I also helped with writing the Flask server which communicating with users grouped into lobbies, and detecting whether a user is distracted by processing URLs they visit with a list of 'distracting' websites.
</p>
<div class="social-links repo">
<a href="https://github.com/gavin2059/distracted" target="_blank"><i class="bx bxl-github"></i><span>Repo.</span></a>
</div>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-computer"></i><span> Dec 2020</span></div>
<h4>This Website</h4>
<p>
To show what I'm doing and get some practice with web development, I made this website using Bootstrap and jQuery.
While it is made from a template, by personalizing the built-in features and functionality, as well as adding my own,
I became much more comfortable working with front-end web design.
</p>
<div class="social-links repo">
<a href="https://github.com/gavin2059/portfolio" target="_blank"><i class="bx bxl-github"></i><span>Repo.</span></a>
</div>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="bx bxl-python"></i><span> Aug 2020 - Nov 2020</span></div>
<h4>Python Testcase Generator</h4>
<p>
I wrote a program in Java to generate a concise set of test cases to ensure a correct implementation for Python programs given a set of reference implementations. The program parses a config file, recursively generates a large set of test cases, then uses the greedy 'solution' of the hitting set problem to reduce said set to a significantly smaller set of test cases, while ensuring that the concise set of tests will catch all buggy implementations.
</p>
<div class="social-links repo">
<!--
<a href="https://github.com/gavin2059/"><i class="bx bxl-github"></i><span>Repo.</span></a>
-->
</div>
</div>
</div>
<hr>
<div class= "d-flex align-items-stretch">
<div class="icon-box">
<div class="icon"><i class="icofont-table-tennis"></i><span> Jun 2020 - July 2020</span></div>
<h4>Bluetooth Controllable Table Tennis Robot</h4>
<p>
I designed a table tennis serving robot with a phone companion app to configure hitting patterns, spins, speeds via programming, circuit design, mechanical design. This involved creating an Arduino program and mobile app, a custom circuit involving DC and Servo motors and H-Bridges to control the robot.
Currently, I've completed the circuit and coding, but the physical robot itself, which I built with a few friends, is still incomplete. I plan on finishing it some time in the near future.
</p>
</div>
</div>
</div>
</div>
</section><!-- End projects Section -->
<!-- Vendor JS Files -->
<script src="assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="assets/vendor/jquery.easing/jquery.easing.min.js"></script>
<!-- Main JS File -->
<script src="assets/js/main.js"></script>
</body>
</html>