1 | <html> |
2 | <head> |
3 | $meta |
4 | <style> |
5 | @import url('https://fonts.googleapis.com/css?family=Chivo:400,900,700i&display=swap'); |
6 | @import url('https://fonts.googleapis.com/css?family=Fira+Sans:400,400i,700,700i&display=swap'); |
7 | *, *::before, *::after { |
8 | box-sizing: border-box; |
9 | } |
10 | * { |
11 | margin: 0; |
12 | } |
13 | html, body { |
14 | height: 100%; |
15 | } |
16 | body { |
17 | line-height: 1.5; |
18 | -webkit-font-smoothing: antialiased; |
19 | } |
20 | img, picture, video, canvas, svg { |
21 | display: block; |
22 | max-width: 100%; |
23 | } |
24 | input, button, textarea, select { |
25 | font: inherit; |
26 | } |
27 | p, h1, h2, h3, h4, h5, h6 { |
28 | overflow-wrap: break-word; |
29 | } |
30 | #root, #__next { |
31 | isolation: isolate; |
32 | } |
33 | </style> |
34 | <style> |
35 |
|
36 | body { |
37 | display: flex; |
38 | flex-flow: column; |
39 | color: #252525; |
40 | font-family: "Fira Sans", sans-serif; |
41 | font-size: 16px; |
42 | } |
43 | a { |
44 | color: #0077a4; |
45 | text-decoration: none; |
46 | } |
47 | a:hover { |
48 | text-decoration: underline; |
49 | } |
50 | a:visited { |
51 | color: #a06780; |
52 | } |
53 | header a, header a:visited { |
54 | color: #252525; |
55 | text-decoration: none; |
56 | } |
57 | header a:hover { |
58 | text-decoration: underline; |
59 | } |
60 | header div.banner-image { |
61 | width: 100%; |
62 | height: 200px; |
63 | background-color: #497fc6; |
64 | background-image: url(/static/images/river.jpg); |
65 | background-size: cover; |
66 | background-position: 50% 30%; |
67 | } |
68 | header div.topbar-container { |
69 | width: 100%; |
70 | padding: 16px; |
71 | font-family: 'Chivo'; |
72 | } |
73 | header ul.topbar { |
74 | display: flex; |
75 | flex-wrap: wrap; |
76 | max-width: 1000px; |
77 | margin: 0 auto; |
78 | padding: 0; |
79 | list-style: none; |
80 | border-bottom: 2px solid #ccc; |
81 | } |
82 | header ul.topbar li { |
83 | display: inline-block; |
84 | white-space: nowrap; |
85 | font-size: 24px; |
86 | } |
87 | header ul.topbar li.hfill { |
88 | flex: 1; |
89 | } |
90 | header ul.topbar li svg{ |
91 | display: inline-block; |
92 | height: 24px; |
93 | vertical-align: middle; |
94 | } |
95 | header ul.topbar li a:hover { |
96 | position: relative; |
97 | top: 1px; |
98 | } |
99 | header ul.topbar li:not(:last-of-type):not(.hfill) { |
100 | margin-right: 12px; |
101 | } |
102 | header ul.topbar div.wrap-group { |
103 | margin-left: 12px; |
104 | } |
105 |
|
106 | div.content-container { |
107 | display: flex; |
108 | flex-flow: column; |
109 | flex: 1; |
110 | width: 100%; |
111 | padding: 0 16px; |
112 | } |
113 | div.content-body { |
114 | max-width: 1000px; |
115 | margin: 0 auto; |
116 | } |
117 | div.content-body p { |
118 | line-height: 1.5; |
119 | margin-bottom: 16px; |
120 | word-wrap: break; |
121 | } |
122 | div.content-body p:first-of-type::first-line { |
123 | font-size: 24px; |
124 | line-height: 2; |
125 | } |
126 | div.content-container div.vfill { |
127 | flex: 1; |
128 | } |
129 | div.content-container footer { |
130 | max-width: 1000px; |
131 | width: 100%; |
132 | margin: 8px auto 128px auto; |
133 | text-align: center; |
134 | border-top: 2px solid #ccc; |
135 | padding-top: 16px; |
136 | } |
137 |
|
138 | img.inline { |
139 | display: inline-block; |
140 | } |
141 |
|
142 | figure.float-left { |
143 | float: left; |
144 | position: relative; |
145 | left: -100px; |
146 | margin: 0 -84px 8px 0; |
147 | } |
148 | figure.float-right { |
149 | float: right; |
150 | position: relative; |
151 | right: -100px; |
152 | margin: 0 0 8px -84px; |
153 | } |
154 | figure.inline { |
155 | float: none; |
156 | width: 100%; |
157 | margin: 0 auto; |
158 | } |
159 | figure figcaption { |
160 | text-align: center; |
161 | font-size: 12px; |
162 | margin-top: 4px; |
163 | color: #656565; |
164 | } |
165 | img.small { |
166 | max-height: 320px; |
167 | } |
168 | img.medium { |
169 | max-height: 480px; |
170 | } |
171 | @media only screen and (max-width: 1400px) { |
172 | figure.float-left { |
173 | position: inherit; |
174 | left: 0; |
175 | margin: 0 16px 8px 0; |
176 | } |
177 | figure.float-right { |
178 | position: inherit; |
179 | right: 0; |
180 | margin: 0 0 8px 16px; |
181 | } |
182 | figure { |
183 | max-width: 50%; |
184 | } |
185 | } |
186 | @media only screen and (max-width: 1000px) { |
187 | figure.wrap { |
188 | display: inline-block; |
189 | max-width: 100%; |
190 | width: 100%; |
191 | } |
192 | figure.wrap img { |
193 | margin: 0 auto; |
194 | } |
195 | } |
196 | @media only screen and (max-width: 900px) { |
197 | header ul.topbar div.wrap-group { |
198 | margin-left: 0; |
199 | margin-right: 16px; |
200 | display: inline-block; |
201 | } |
202 | header ul.topbar li.hfill { |
203 | flex: none; |
204 | } |
205 | header ul.topbar li:not(.title) { |
206 | font-size: 20px; |
207 | padding: 2px 0; |
208 | vertical-align: middle; |
209 | } |
210 | } |
211 | </style> |
212 |
|
213 | <script src="https://unpkg.com/feather-icons"></script> |
214 |
|
215 | <meta name="viewport" content="width=device-width, initial-scale=1"> |
216 | </head> |
217 |
|
218 | <body> |
219 | <header> |
220 | <div class="banner-image"></div> |
221 | <div class="topbar-container"> |
222 | <ul class="topbar"> |
223 | <li class="title"><b><a href="/">JOSH STOCKIN</a></b></li> |
224 | <div class="wrap-group"> |
225 | <li><a href="/blog">Blog</a></li> |
226 | <li><a href="https://git.joshstock.in">Git</a></li> |
227 | <li><a href="/projects">Projects</a></li> |
228 | <li><a href="/resume">Resume</a></li> |
229 | </div> |
230 | <li class="hfill"></li> |
231 | <div class="wrap-group"> |
232 | <li><a href="https://github.com/JoshuaS3"><i data-feather="github"></i></a></li> |
233 | <li><a href="https://gitlab.com/JoshuaS3"><i data-feather="gitlab"></i></a></li> |
234 | <li><a href="https://www.linkedin.com/in/joshstockin"><i data-feather="linkedin"></i></a></li> |
235 | <li><a href="https://www.youtube.com/channel/UC72_Shtp0psr4sUSw_KaG5A"><i data-feather="youtube"></i></a></li> |
236 | <li><a href="https://twitter.com/JoshStockin"><i data-feather="twitter"></i></a></li> |
237 | <li><a href="mailto:josh@joshstock.in"><i data-feather="at-sign"></i></a></li> |
238 | </div> |
239 | </ul> |
240 | </div> |
241 | </header> |
242 |
|
243 | <div class="content-container"> |
244 | <div class="content-body"> |
245 | <figure class="float-left"> |
246 | <img class="medium" src="/static/images/IMG_4956.JPG"/> |
247 | </figure> |
248 | <p><b><img class="inline" src="/static/svg/wave.svg" style="height: 1.5em"/> Hello!</b> I'm <i>Josh Stockin</i>, an 18-year-old |
249 | <b>Systems Engineering & Design</b> student at the |
250 | <u>University of Illinois, Urbana-Champaign</u>, |
251 | specializing in Computer Science. I'm a massive nerd and |
252 | have spent roughly the past decade doing hobby work in |
253 | computer software and hardware engineering, having begun |
254 | with game development and 3D animation stuffs on the Roblox |
255 | platform sometime around 2012. When I'm not studying or |
256 | working, I'll be reading or doing hobby projects. Sometimes |
257 | I'll go by the alias 'joshuas3' online.</p> |
258 | <p>I have practical and applicable experience in programming |
259 | and design for <a |
260 | href="https://git.joshstock.in/auto-plow">robotics</a>, |
261 | embedded systems, <a |
262 | href="https://git.joshstock.in/lognestmonster">low-level |
263 | libraries</a>, <a |
264 | href="https://git.joshstock.in/ncurses-minesweeper">general |
265 | user |
266 | applications</a>, |
267 | <a |
268 | href="https://git.joshstock.in/s3-bsync">tool/utility |
269 | applications</a>, |
270 | <a |
271 | href="https://git.joshstock.in/resty-gitweb">web |
272 | development</a>, |
273 | and |
274 | more, |
275 | with |
276 | programming |
277 | languages |
278 | including |
279 | C, Python, and |
280 | Lua. I've taken |
281 | several CTE courses |
282 | on woodworking, |
283 | AutoCAD drafting, and |
284 | 3D printing.</p> |
285 | <figure class="float-right wrap"> |
286 | <img class="small" src="/static/images/esp32.jpg"/> |
287 | <figcaption>Closeup shot of the removable electronics board controlling the snow plow.</figcaption> |
288 | </figure> |
289 | <p>This website is basically supposed to provide some amount of |
290 | structured, public-facing, semi-professional information on |
291 | me. The <a href="/blog">Blog</a> page will consist of some |
292 | of my ramblings on whatever I write about, but mostly |
293 | technical project writeups. The <a |
294 | href="https://git.joshstock.in">Git</a> |
295 | subdomain contains my self-hosted Git repositories with |
296 | options for downloading. The <a |
297 | href="/projects">Projects</a> |
298 | page will serve as a portfolio, hosting media and roadmaps |
299 | and potentially sparing some technical information for the |
300 | Git READMEs and project writeups.</p> |
301 | <p>I graduated from Reed-Custer High School in May 2022. At |
302 | RCHS, I earned the Illinois State Scholar award and became |
303 | a finalist for the National Merit Scholarship. I |
304 | volunteered for the RCHS Recycling Club and participated in |
305 | the Math Team. On the April 2021 SAT, I earned a 790 in |
306 | math and 730 in EBRW. During high school, I took several |
307 | courses at Joliet Junior College part-time and for dual |
308 | credit. As of mid-2022, I will enter my freshman year at |
309 | UIUC with some 30 credit hours. I'm currently |
310 | working at RCHS as an Information Technology Associate, |
311 | following an internship during the school year. I've |
312 | previously worked fast food and butchery.</p> |
313 | <figure class="float-left"> |
314 | <img class="small" src="/static/images/rc-plow.jpg"/> |
315 | <figcaption>Snow plow parked in driveway sometime around early 2021.</figcaption> |
316 | </figure> |
317 | <p>Oh, and I'm also a survivor of <a href="/static/images/scoliosis.png">severe scoliosis</a>.</p> |
318 | <p>My informal capstone project has to be the remote controlled |
319 | snow plow I built with my father. Because of my spinal |
320 | disability, shoveling snow is difficult for me, so we |
321 | decided to build a robot to do it instead. We used an ESP32 |
322 | to control relays, solenoids, and motor controllers to |
323 | direct electric wheelchair motors and linear actuators. My |
324 | father designed the drive chain and did most of the |
325 | welding, while I did the programming and electrical work. |
326 | It's still a work in progress and is likely to see multiple |
327 | revisions in the future. Nevertheless, it works well |
328 | considering what we made it from. You can find the |
329 | (admittedly poorly written) ESP32 source code |
330 | <a href="https://git.joshstock.in/auto-plow">here</a>. |
331 | I've been meaning to rewrite it for a while.</p> |
332 | <p>Thanks for reading! You can best contact me via email at <a |
333 | href="mailto:josh@joshstock.in">josh@joshstock.in</a>. I'll |
334 | usually reply within a day or two.</p> |
335 |
|
336 | </div> |
337 | <div class="vfill"></div> |
338 | <footer> |
339 | <p>https://joshstock.in © 2022 Joshua Stockin</p> |
340 | <p><a href="mailto:josh@joshstock.in">josh@joshstock.in</a> / <a href="mailto:stockin2@illinois.edu">stockin2@illinois.edu</a> / <code>joshuas3#<i>9641</i></code></p> |
341 | </footer> |
342 | </div> |
343 | <script> feather.replace() </script> |
344 | </body> |
345 | </html> |
346 |
|