-
Notifications
You must be signed in to change notification settings - Fork 0
/
_config.yml
296 lines (251 loc) · 19.7 KB
/
_config.yml
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
# Site
# original repository was sproogen/modern-resume-theme
repository: peter-dye/peter-dye.github.io
favicon: images/favicon.ico
# Content configuration version
version: 2
# Personal info
name: Peter Dye
title: Professional Software Developer
email: peter.dye@uwaterloo.ca
website: peter-dye.github.io
# Dark Mode (true/false/never)
darkmode: false
# Social links
# twitter_username: example
github_username: peter-dye
# dribbble_username: example
# facebook_username: example
# flickr_username: example
# instagram_username: example
# linkedin_username: example
# pinterest_username: example
# youtube_username: example
# googleplus_username: example
# Additional icon links
#additional_links:
#- title: Link name
# icon: Font Awesome brand icon name (eg. fab fa-twitter) (https://fontawesome.com/icons?d=gallery&s=brands&m=free)
# url: Link url (eg. https://google.com)
# - title: another link
# icon: font awesome brand icon name (eg. fab fa-twitter) (https://fontawesome.com/icons?d=gallery&s=brands&m=free)
# url: Link url (eg. https://google.com)
# Google Analytics and Tag Manager
# Using more than one of these may cause issues with reporting
# gtm: "GTM-0000000"
# gtag: "UA-00000000-0"
# google_analytics: "UA-00000000-0"
# About Section
about_title: About Me
about_profile_image: images/profile.jpg
about_content: | # this will include new lines to allow paragraphs
Hello! My name is Peter and I am a Professional Software Developer interested in all areas of software development.
I program in <mark>C#</mark>, <mark>Python</mark>, and <mark>JavaScript</mark>.
I recently graduated from the University of Waterloo where I studied Electrical Engineering with an Option in Computer Engineering. Now I am working as a Software Developer with Brock Solutions developing AutoCAD automation tools.
I have experience and interests in a whole variety of areas! Including:
- <mark>Linux</mark> and <mark>open source software</mark>
- <mark>Web development</mark>
- <mark>Machine learning</mark> and advanced algorithms
- <mark>Relational databases</mark> and <mark>SQL</mark>
- <mark>Git</mark> and <mark>GitHub</mark>
- Learning new langauges; I learned <mark>Rust</mark> for parallel programming
I have good <mark>communication skills</mark> that have been proven many times. I have had outstanding results on technical reports and presentations, and even won an award for the quality of writing in one of my reports! You can see some writing examples in guides I posted for my projects on GitHub. I've also successfully lead some school and work teams.
Some courses that I have really enjoyed (and done well in) are:
- Operating Systems and Systems Programming
- Compilers
- Database Systems
- Robot Dynamics and Control
- Computer Security
- Cooperative and Adaptive Algorithms
- Fundamentals of Computational Intelligence
- Programming for Performance
content:
- title: Projects
layout: list
content:
- layout: top-middle
# border: weak
title: ButtBot
# link: github.com/peter-dye/ButtBot
# link_text: Link Text
additional_links:
- title: peter-dye/ButtBot
icon: fab fa-github
url: github.com/peter-dye/ButtBot
quote: >
An autonomous cigarette butt collection and disposal robot.
description: | # this will include new lines to allow paragraphs
ButtBot is an autonomous ground vehicle that drives around a given space and uses computer vision to identify and collect cigarette butts. The brain of the robot is a <mark>Linux</mark> based [NVIDIA Jetson Nano](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-nano/){:target="_blank"}. The smarts of the robot are written in <mark>Python</mark> and make use of many popular libraries. For the computer vision and deep learning we use <mark>OpenCV</mark>, <mark>TensorFlow</mark>, and <mark>Keras</mark>. The project also makes use of <mark>multithreading</mark> and <mark>multiprocessing</mark> to manage and coordinate the different functions of the robot. This was my fourth-year capstone project that I worked on with 4 of my peers, with myself and one other project member taking responsibility for all the software componenets.
- layout: top-middle
title: Calculux
additional_links:
- title: peter-dye/Calculux
icon: fab fa-github
url: github.com/peter-dye/Calculux
quote: >
Calculator Delux, the most convenient desktop calculator app for engineers.
description: | # this will include new lines to allow paragraphs
Calculux is a desktop calculator app I developed becuase existing apps did not provide the features that I wanted. Calculux allows you to access every single button on the calculator using only the numpad, Alt modifier, and the Control (Windows) or Command (MacOS) modifier keys. This eliminates slow and clumsy mouse movements. Calculux also implements math capabilities that most other off-the-shelf calculator apps don't, such as complex number calculations. I developed Calculux in <mark>Python</mark>, and used <mark>PyQt5</mark> to develop the graphical interface with the [<mark>Qt</mark>](https://www.qt.io/){:target="_blank"} framework. I used the [<mark>fman build system</mark>](https://build-system.fman.io/){:target="_blank"} to package the application and make installers for both Windows and MacOS. I learned a lot about desktop application development from this project, especially regarding packaging and distributing apps. I released Calculux as an open source project under the GNU GPL v3.
- layout: top-middle
title: Pong
github: peter-dye/pong
additional_links:
- title: peter-dye/pong
icon: fab fa-github
url: github.com/peter-dye/pong
quote: >
Online mutliplayer implementation of the classic arcade game Pong.
description: | # this will include new lines to allow paragraphs
I built pong because I wanted to experiment with developing a real-time <mark>cloud-based</mark> multiplayer game that is playable over the internet. In pong, anyone can create a game and send the code to their friend so they can join and battle it out... 70's style! I developed pong with <mark>JavaScript</mark>, using <mark>React</mark> for the frontend and <mark>Node.js</mark> for the backend. The content is served with <mark>Express</mark> and the real-time communication is implemented with <mark>Socket.io</mark>. Pong runs on an <mark>Azure</mark> server and is available for anyone to play. Checkout the GitHub link above to read more about the architecture and see the guide that I made or how to setup an Azure server to run the game.
- layout: top-middle
title: PD40 Keyboard
additional_links:
- title: peter-dye/pd40-keyboard
icon: fab fa-github
url: github.com/peter-dye/pd40-keyboard
quote: >
My 40% ortholinear low profile keyboard that I designed and built.
description: | # this will include new lines to allow paragraphs
The PD40 is a bluetooth keyboard that I designed and built from scratch. It is a handwired 40% ortholinear layout, and it uses Kailh Choc switches for a low profile (specifically linear red switches if you were wondering). The keyboard runs on an Adafruit Feather 32u4, and uses the [QMK](https://qmk.fm/){:target="_blank"} firmware written in <mark>C</mark>. This keyboard is highly optimized for writing code because it makes all the normal syntax characters available with minimal finger movement. I used [FreeCAD](https://www.freecadweb.org/){:target="_blank"} to design and <mark>3D print</mark> the top and bottom of the case. The switches are all handwired, which means I had to solder the diodes and wires to each switch individually to make the matrix. The QMK firmware is specifically designed for computer input devices, so all I had to do here was write the configuration code for a new keyboard implementation. I was new to the keyboard hobby when I built this so <mark>I wrote a detailed guide</mark> on how to build the PD40, which you can find in the GitHub repository.
################################################################################
- title: Open Source Contributions
layout: text
content: | # this will include new lines to allow paragraphs
I really like the ideals of the open source community and I try to use open source software as much as I can in my work and personal life. My open source contributions thus far have been to improve documentation for software that I was using.
- Clarity and code example corrections to the .NET API docs.
- Grammar/clarity contribution to SciKit-learn docs.
- Miscellaneous fixes to course content for my university Programming for Performance course.
################################################################################
- title: Experience
layout: list
content:
- layout: left
title: Brock Solutions
sub_title: Software Developer
caption: May 2021 - Present
link: brocksolutions.com
quote: >
Brock Solutions is an engineering solutions and professional services company specializing in the design, build and implementation of real-time solutions for broad based industrial/manufacturing and transportation/logistics organizations globally.
description: | # this will include new lines to allow paragraphs
- Reduced AutoCAD drafting time by developing sophisticated automation tools in <mark>C#</mark> to generate 60% of required drawings.
- Increased software insights by starting initiative to add <mark>logging</mark> to new and existing automation tools using Serilog.
- Ensured software quality with <mark>unit tests</mark> in NUnit and utilized <mark>dependency injection</mark> with Unity for a testable architecture.
- Improved execution time of drawing cross-referencing software by 90% through <mark>profiler guided optimizations</mark>.
- Refactored existing code base organization to match <mark>C#</mark> and .NET best practices.
- Developed N-ary tree node reduction algorithm given leaf nodes with unordered known ancestors.
- layout: left
title: Tidal Medical
sub_title: Software Lead (Co-op)
caption: Sept 2020 - Dec 2020
link: tidalmedical.com
quote: >
Tidal Medical is a dynamic new startup in the medical imaging technology field.
description: | # this will include new lines to allow paragraphs
- Architected <mark>multithreaded Python</mark> application to reconstruct, record, and view medical images at 13 frames/second.
- Used Qt through PyQt5, and pyqtgraph, as well as [Cython](https://cython.org/){:target="_blank"} for real time images.
- Successfully <mark>lead 3-person software team</mark> in developing the first prototype of a medical imaging system.
- Modelled advanced image reconstruction algorithms in MATLAB/[Octave](https://octave.sourceforge.io/){:target="_blank"}.
- Developed fast embedded system communications between <mark>Python</mark> application and a FPGA using the [SPI](https://en.wikipedia.org/wiki/Serial_Peripheral_Interface){:target="_blank"} protocol.
- layout: left
title: Brock Solutions
sub_title: Controls Engineering (Co-op)
caption: Sept - Dec 2019
link: brocksolutions.com
quote: >
Brock Solutions is an engineering solutions and professional services company specializing in the design, build and implementation of real-time solutions for broad based industrial/manufacturing and transportation/logistics organizations globally.
description: | # this will include new lines to allow paragraphs
- Significantly decreased PLC tag generation time by developing <mark>Python</mark> script to automate the process.
- Learned about the whole software development cycle for PLCs.
- Performed QA and controls systems validation with PICS and AutoMod simulation programs.
- Gained lots of experience programming with Ladder Logic to solve a variety of controls problems.
- Implemented controls solutions using inter-PLC communication and redundant PLC systems.
- layout: left
title: Smith + Andersen
sub_title: Junior Electrical Designer (Co-op)
caption: Jan - Apr 2019
link: smithandandersen.com
quote: >
Smith + Andersen is a trusted Canadian mechanical and electrical consultanting engineering firm, reaching new levels of engineering and design excellence in the communications, security, and audiovisual fields.
description: | # this will include new lines to allow paragraphs
- Improved communication techniques to manage competing deadlines through upwards management.
- Deepened experience in electrical system design techniques, as well as in the consulting industry as a whole.
- Performed site visits to map existing conditions and investigate design solutions.
- Expanded and improved on skills gained from working at Stantec.
- layout: left
title: Stantec
sub_title: Electrical Design Assistant (Co-op)
caption: May - Aug 2018
link: stantec.com
quote: >
Designers, engineers, scientists, and project managers, innovating together at the intersection of community, creativity, and client relationships. Designing with community in mind.
description: | # this will include new lines to allow paragraphs
- Developed feeder size calculator in Excel to increase efficiency of feeder sizing by 80%.
- Experience working on new construction and tenant fit-out for office, retail, warehouse, hospitals and airports.
- Designed building systems such as power, lighting, fire alarm and security in accordance with the OESC, OBC, and NFC.
- Well versed in modelling building electrical systems using Revit and AutoCAD.
- Coordinated with architects, interior designers, mechanical, and structural teams for seamless design.
- layout: left
title: NAV CANADA
sub_title: Engineering Student (Co-op)
caption: Jan - Apr & Sept - Dec 2018
link: navcanada.ca
quote: >
Canada's Air Navigation Service Provider, keeping airplanes safe from coast to coast.
description: | # this will include new lines to allow paragraphs
- Developed a <mark>local network</mark> data logger for weather sensors by using PHP and <mark>MySQL</mark> running on a <mark>Raspberry Pi server</mark>.
- Developed a <mark>JavaScript</mark> algorithm to graph data gathered from a precipitation sensor over a specified period.
- Created and modified technical schematics in AutoCAD while adhering to company standards.
- Designed a power supply to be integrated into an existing system.
- Authored technical documentation for installation and upkeep of airport weather systems.
################################################################################
- title: Education
layout: list
content:
- layout: left
border: weak
title: University of Waterloo
sub_title: Bachelor of Applied Science <br/> Major in Electrical Engineering <br/> Option in Computer Engineering
caption: Sept 2016 - Apr 2021
quote: >
Canada's most innovative university, with a world renowned engineering faculty, and a co-op program that is second to none.
description: | # this will include new lines to allow paragraphs
I majored in Electrical Engineering and completed an additional Option in Computer Engineering. This allowed me to gain valuable exposure to both hardware and software, although I focused on software for my upper-year courses. I enjoyed my academics and did well in them; I usually ranked near the top of my class. My cumulative average was <mark>86.3%</mark> and my fourth-year average was <mark>90.9%</mark>. Have a look at my [transcript](../images/transcript.pdf){:target="_blank"} if you are interested!
Outside of academics, I was heavily involved in campus life. I dedicated large amounts of time to the Engineering Society, and served as VP Finance where I managed our termly operating budget of approximately $80,000, along with other society operations. I also organized various events, was elected as a class Academic Representative, chaired Engineering Society meetings, and sat on the Engineering Society board of directors.
I also taught 50 students the basics of the <mark>Linux</mark> command line by organizing and running a technical workshop.
My favourite invovlment at university has to be as an orientation leader. I was able to welcome multiple years of new students and help organize and run fun orientation weeks for everyone who participated.
I also attended engineering conferences to broaden my knowledge and make new connections. They were:
- Professional Engineers Ontario conference (provincial).
- Canadian Federation of Engineering Students Congress (national).
- Participated in the case study competition and placed second.
- Conference for Sustainability in Engineering (national).
- Participated in the case study competition and placed third.
- layout: left
title: Professional Development
# sub_title:
# caption:
quote: >
"The more that you read, the more things you will know. The more that you learn, the more places you’ll go.” - Dr. Seuss
description: | # this will include new lines to allow paragraphs
Personally I learn best from books, so I wanted to kickstart my software development career by reading some books that contain years of experience from some very smart minds.
[Code Complete](https://www.goodreads.com/en/book/show/4845.Code_Complete): This book is all about code construction. It deals with low level implementation details relevant to the everyday writing of code such as variable naming, functions and parameters, classes, and above all, readability. My main takeaway was that readability is the most important and one of the hardest things to achieve in a complex software system.
[The Clean Coder](https://www.goodreads.com/book/show/10284614-the-clean-coder): This book is all about being a professional as a software developer. The book talks about the best way to handle various office situations, working in teams, mentoring and being mentored, and working efficiently as a software developer. My main takeaway was that professional programmers need to constantly be practicing their craft, in addition to what they do at work.
[The Pragmatic Programmer](https://www.goodreads.com/book/show/4099.The_Pragmatic_Programmer): This book focuses on building robust software. It covers programming techniques for software that is easy to maintain, such as decoupling and reducing duplication. It discusses interesting paradigms to avoid errors (such as design by contract) and possible actions to take if errors are present at runtime. My main takeaway is that software should be made as configurable as possible so that future changes have minimal impact on only one area of the code base.
################################################################################
- title: A Little More About Me
layout: text
content: | # this will include new lines to allow paragraphs
Some of my other interests and hobbies are:
- Flying airplanes and sailplanes; I have two pilots licenses!
- Cooking and baking; I love trying new techniques and working with new ingredients!
- Biking; especially mountain biking and downhilling!
- Skiing; the bigger the mountain the better!
- Reading and learning; I enjoy a good book, especially sci-fi, and love to investigate new things!
# Footer
footer_show_references: false
# Build settings
remote_theme: peter-dye/modern-resume-theme
sass:
sass_dir: _sass
style: compressed
plugins:
- jekyll-seo-tag