-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
302 lines (296 loc) · 16.6 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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello! from Hawkeye</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__html"><hr>
<table>
<thead>
<tr>
<th align="left">Hawkeye Tenderwolf <em style="font-weight: normal;">a.k.a. Derek DeRaps</em></th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">(678) 404-1990 | <a href="mailto:[email protected]">[email protected]</a></td>
</tr>
<tr>
<td align="left">Cherokee land (present-day Asheville, North Carolina)</td>
</tr>
<tr>
<td align="left">GitHub <a href="https://github.com/hawkeyetwolf">@hawkeyetwolf</a></td>
</tr>
<tr>
<td align="left">Drupal <a href="https://www.drupal.org/u/hawkeyetwolf">@hawkeye.twolf</a></td>
</tr>
</tbody>
</table><hr>
<h2 id="abouthawkeye">about:hawkeye</h2>
<p>A few things about me: I enjoy cycling and working on my steel-framed Salsa Pistola. I like writing in my journal; it helps me sort out how I’m feeling about things. I love reading fiction but only do so occasionally because, once I start, I have trouble putting it down. I listen to history podcasts, mostly while working in the yard. I live on a farm in Mars Hill, NC with 8 humans, 7 donkeys, 3 goats, 2 sheep, 2 cats, and 1 german shephard. I am an uncle thrice over. I crowdsource beautiful chillstep playlists via Hype Machine, 8tracks, and IndieShuffle.</p>
<p>My primary code editors are <strong>vim</strong> and the GitHub interface. I am proudly not a full-stack developer but enjoy learning at all the levels. I am big on <strong>git hygiene</strong>. I geek out on hunting down and finding creative, efficient solutions to canceling technical debt. I take great pleasure in writing and reviewing elegant, <strong>object-oriented</strong> code. I am an expert in <strong>Paragraphs</strong> and <strong>component-based Drupal integrations</strong>.</p>
<hr>
<h2 id="qualifications">Qualifications</h2>
<p><strong>Acquia Certified Developer</strong><br>
<em>June 2014</em></p>
<p><strong>B.S. in Computer Science</strong><br>
Georgia Institute of Technology<br>
<em>December 2008</em></p>
<hr>
<h2 id="drupal-projects">Drupal projects</h2>
<h4 id="architect-and-lead-developer"><em>Architect and lead developer</em></h4>
<p><a href="https://www.sjwater.com/"><strong>San Jose Water</strong></a> (2018)<br>
Implemented WCAG 2.0 <strong>accessibility</strong> standards that achieved a SiteImprove score close to 100 and saved the client from pending lawsuits. The project also represented a big leap forward in <strong>editorial UX</strong> for our team, having learned much from the pain points of previous D8 + Paragraphs implementations.</p>
<p><a href="http://live-visionapi.at.kalamuna.com/"><strong>Google Vision API + Content Moderation</strong></a> (2018)<br>
Collaborated with Google and Pantheon to demonstrate the capabilities of Google Vision in a Drupal environment. Not much to see in the demo site above; check out the source (see “code samples” below) or request an authenticated-user walk-through.</p>
<p><a href="https://www.fairtradecertified.org/"><strong>Fair Trade USA</strong></a> (2017)<br>
Executed a website redesign that included Salesforce integration points.</p>
<p><a href="https://dentistry.ucsf.edu/"><strong>UCSF School of Dentistry</strong></a> (2017)<br>
Migrated legacy content. Ported Kalagraphs (see “code samples” below) from Drupal 7 to Drupal 8.</p>
<h4 id="drupal-8-expertise-consultant"><em>Drupal expertise consultant</em></h4>
<p><a href="https://blog.kalamuna.com"><strong>Kalamuna.com blog</strong></a> (2016)<br>
Launched one of the first public-facing Drupal 8 sites at Kalamuna.</p>
<hr>
<h2 id="drupal-code-samples">Drupal code samples</h2>
<p><a href="https://gitlab.com/hawkeyetwolf/visionapi/tree/master/web/modules/custom/visionapi"><strong>Google Vision API + Content Moderation</strong></a><br>
Explore the module found at the GitLab link above to see how I integrated Google Vision API with Content Moderation. Public webinar demo <a href="https://pantheon.io/resources/artificial-intelligence-your-cms">forthcoming</a>.</p>
<p><a href="https://github.com/kalamuna/drupal-project"><strong>drupal-project</strong></a> and <a href="https://github.com/kalamuna/kalaconfig"><strong>kalaconfig</strong></a><br>
Composer template and custom module that combine to provide a robust starting point for new projects. It saves 10’s of hours of initial configuration and continues demonstrating value throughout the life of the project by automating config splits for each environment (local, dev, test, prod).</p>
<p><a href="https://github.com/kalamuna/kalagraphs"><strong>Kalagraphs</strong></a><br>
Facilitates rapid development of components from a styleguide (e.g., kss or Pattern Lab) to implementation (Drupal via Paragraphs).</p>
<p><a href="https://github.com/kalamuna/autogrow_textarea"><strong>Autogrow Textarea</strong></a><br>
Adds <a href="https://github.com/ro31337/jquery.ns-autogrow">jQuery NS-Autogrow</a> to Drupal’s textarea Form API element.</p>
<p><a href="https://github.com/kalamuna/drupal-vm"><strong>Drupal VM</strong></a><br>
This fork of Drupal VM supported both client and vendor team members through several Drupal builds.</p>
<hr>
<h2 id="positions">Positions</h2>
<table>
<thead>
<tr>
<th>Position</th>
<th>Organization</th>
<th>Location</th>
<th>Years</th>
</tr>
</thead>
<tbody>
<tr>
<td>Senior Developer</td>
<td>Lullabot</td>
<td>Distributed</td>
<td>2018 → …</td>
</tr>
<tr>
<td>Senior Architect</td>
<td>Kalamuna</td>
<td>Oakland, California</td>
<td>2016 → 2018</td>
</tr>
<tr>
<td>Senior Drupal Developer</td>
<td>Mediacurrent</td>
<td>Atlanta, Georgia</td>
<td>2013 → 2016</td>
</tr>
<tr>
<td>IT Business Analyst</td>
<td>Georgia Tech</td>
<td>Atlanta, Georgia</td>
<td>2010 → 2012</td>
</tr>
<tr>
<td>Ecology Field Research Assistant</td>
<td>University of Florida</td>
<td>Healy, Alaska</td>
<td>2009</td>
</tr>
<tr>
<td>.NET Developer</td>
<td>DyT Systems</td>
<td>Santiago, Chile</td>
<td>2007</td>
</tr>
<tr>
<td>Ruby on Rails Developer</td>
<td>Injury Board</td>
<td>Tampa, Florida</td>
<td>2005</td>
</tr>
<tr>
<td>MMA Instructor</td>
<td>Bill Heimberger’s Martial Arts</td>
<td>Tampa, Florida</td>
<td>2003 → 2004</td>
</tr>
</tbody>
</table><hr>
<h2 id="other-noteworthy-projects">Other noteworthy projects</h2>
<p><a href="https://insights.famsf.org/"><strong>Fine Arts Museum of San Francisco "Insights"</strong></a> (2018)<br>
When the client’s budget and priorities did not allow for a Drupal back-end, we worked with their technical staff to create a yaml-based content solution. This empowered our team to focus on delivering the front-end experience FAMSF desired while providing just the right amount of content flexibility. Hosted as a static website on Netlify.</p>
<p><a href="https://www.sfhsa.org/"><strong>City and County of San Francisco Human Services Agency</strong></a> (2017)<br>
Led a multi-disciplinary team that included client developers.</p>
<p><a href="https://www.progenity.com/"><strong>Progenity.com</strong></a> (2017)<br>
Implemented the outcomes of a complete brand redesign. Created the first version of Kalagraphs (see “code samples” above).</p>
<p><a href="https://www.ucsfdentalcenter.org"><strong>UCSF Dental Center</strong></a> (2016)<br>
Leveraged the <a href="https://www.drupal.org/project/group">Groups</a> module to support just the right amount of subsite content flexibility and custom branding.</p>
<p><strong>Weather.com</strong> (2015)<br>
Crafted a suite of editorial tools to support The Weather Channel’s global team of editors. Configured Drupal to provide a highly-cachable base page with ESI tags that delivered personalized weather content from the edge. Gained experience in <em><strong>migration</strong></em> of legacy content, <em><strong>Batch + Queue API</strong></em> processing, Panels plumbing, <em><strong>i18n</strong></em> (internationalization), Entity <em><strong>Translation</strong></em>, and WYSIWYG rich media (embeddable entities).</p>
<p><strong>Habitat for Humanity</strong> (2015)<br>
Worked to build client trust by first showing success with a few small engagements. Provided training to empower their development team. Implemented a “content server” workflow to allow their editors to stage content in one environment and then deploy it to production. Successfully established a strong working relationship that set up the organization for success in a full redesign.</p>
<p><strong>Georgia Tech Research Institute</strong> (2015)<br>
Led a team in building an intranet to facilitate inter-departmental communication and compliance. Utilized installation profiles and programmatic content creation to standardize the team’s development environments in lieu of passing around databases with sensitive data.</p>
<p><a href="http://tetramer.yerkes.emory.edu"><strong>Emory University, Tetramer Core Facility</strong></a> (2014)<br>
Streamlined the client’s unit production workflow with a <em><strong>Drupal Commerce</strong></em> implementation that automated their order intake process. Built an object-oriented, bi-directional synchronization framework to keep their website up to date with the staff’s FileMaker database.</p>
<hr>
<h2 id="presentations">Presentations</h2>
<table>
<thead>
<tr>
<th>Title</th>
<th>Location</th>
<th>Year</th>
<th>Links</th>
</tr>
</thead>
<tbody>
<tr>
<td>Using “<strong>drupal-project</strong>” with Composer to Craft your Perfect Start-State</td>
<td>DrupalCamp Florida<br>DrupalCamp Chattanooga<br>DrupalCamp Asheville</td>
<td>2018</td>
<td><a href="https://www.drupalasheville.com/2018/session/how-using-drupal-project-composer-craft-your-perfect-start-state">session</a>, <a href="https://slides.com/derekderaps/drupal-project">slides</a></td>
</tr>
<tr>
<td>When “Good” Is Good Enough: How Perfectionism Is Holding You Back</td>
<td>DrupalCon Dublin</td>
<td>2016</td>
<td><a href="https://events.drupal.org/dublin2016/sessions/when-good-good-enough-how-perfectionism-holding-you-back">session</a></td>
</tr>
<tr>
<td>Design- & Content-First <strong>Prototyping</strong> with <strong>Kalastatic</strong></td>
<td>DrupalCamp Florida</td>
<td>2016</td>
<td><a href="https://www.fldrupal.camp/sessions/approved/florida-drupalcamp-2016/design-theming-front-end-development/rapid-prototyping">session</a>, <a href="https://docs.google.com/presentation/d/120IdD69J4xULVrVvYmsRzCSjk_yRiSsWQqatod3o1io">slides</a></td>
</tr>
<tr>
<td><strong>Drupal 8</strong> and <strong>Symfony2</strong>: Not so scary!</td>
<td>DrupalCamp Atlanta<br>DrupalCamp Asheville</td>
<td>2015</td>
<td><a href="http://drupalcampatlanta.com/2015-drupalcamp-atlanta/sessions/drupal-8-and-symfony2-not-so-scary">session</a>, <a href="http://slides.com/derekderaps/d8#/">slides</a></td>
</tr>
<tr>
<td>Layout Nirvana with <strong>Classy Panels Styles</strong></td>
<td>DrupalCamp Atlanta</td>
<td>2014</td>
<td><a href="http://drupalcampatlanta.com/2014-drupalcamp-atlanta/sessions/layout-nirvana-classy-panel-styles">session</a></td>
</tr>
<tr>
<td>Classy Panel Styles</td>
<td>DrupalCamp Florida</td>
<td>2014</td>
<td></td>
</tr>
<tr>
<td>Workflow Tools</td>
<td>Atlanta Drupal User Group</td>
<td>2014</td>
<td></td>
</tr>
<tr>
<td>A Drupal 8 Vocab Lesson</td>
<td>Mediacurrent webinar</td>
<td>2013</td>
<td><a href="https://www.mediacurrent.com/blog/intro-drupal-8-vocabulary">session</a></td>
</tr>
<tr>
<td>Drupal 8: Moving from <strong>Features</strong> to <strong>Configuration Management</strong></td>
<td>Mediacurrent webinar</td>
<td>2013</td>
<td></td>
</tr>
<tr>
<td>Use <strong>Workflow Tools</strong> to Deploy your Content</td>
<td>DrupalCamp Atlanta</td>
<td>2013</td>
<td><a href="https://www.mediacurrent.com/blog/using-workflow-tools-deploy-your-content-and-code">session</a>, <a href="http://www.slideshare.net/mediacurrent/dcatl-2013-wf-tools-presentation">slides</a></td>
</tr>
<tr>
<td>Better Local Development with <strong>Vagrant</strong></td>
<td>DrupalCamp Chattanooga</td>
<td>2013</td>
<td><a href="https://www.mediacurrent.com/blog/better-local-development-vagrant">session</a></td>
</tr>
<tr>
<td><strong>FileMaker</strong> & Drupal</td>
<td>DrupalCamp Florida</td>
<td>2013</td>
<td><a href="http://2013.fldrupalcamp.org/session/case-study-integration-filemaker-and-drupal">session</a>, <a href="http://www.slideshare.net/mediacurrent/filemakerdrupal-synchronization">slides</a></td>
</tr>
</tbody>
</table><hr>
<h2 id="posts">Posts</h2>
<ul>
<li><a href="https://blog.kalamuna.com/news/drupal-8-core-content-moderation-module-beware-permissions-gotcha-when-re-using-workflows">Drupal 8 core Content Moderation module BEWARE! Permissions “gotcha” when re-using Workflows across content types</a></li>
<li><a href="https://blog.kalamuna.com/news/how-using-drupal-project-craft-your-perfect-start-state">How-to: Using Drupal-Project to Craft Your Perfect Start State</a></li>
<li><a href="https://blog.kalamuna.com/news/help-why-does-composer-keep-installing-drupal-85-beta-instead-stable-version">Help! Why does Composer keep installing Drupal 8.5 “BETA” instead of the stable version?</a></li>
<li><a href="https://blog.kalamuna.com/news/design-driven-drupal-paragraphs-bricks-and-other-metaphors">Design-Driven Drupal with Paragraphs, Bricks, and Other Metaphors</a></li>
<li><a href="https://blog.kalamuna.com/news/special-case-dev-stability-flag-funtimes-composer">The Special Case of the “dev” Stability Flag: Funtimes with Composer!</a></li>
<li><strong><a href="https://www.mediacurrent.com/blog/entity-metadata-wrapper">Death To Field Arrays!</a></strong> <em>*Top three google result for <strong>"Entity Metadata Wrapper"</strong></em></li>
<li><a href="https://www.mediacurrent.com/blog/make-your-drush-aliases-work-local-and-remote">Level Up your Drush-Fu with Aliases that Work Across All Environments</a></li>
<li><a href="https://www.mediacurrent.com/blog/how-to-improve-output-from-remote-drush-commands">How to Prettify The Output from your Remote Drush Commands</a></li>
<li><a href="https://www.mediacurrent.com/blog/dont-send-testing-emails-real-users">Protect Thyself! Don’t Send Testing Emails to Real Users</a></li>
<li><a href="https://www.mediacurrent.com/blog/better-access-denied-403-page-panels">A Better Access Denied (403) Page with Panels</a></li>
<li><a href="https://www.mediacurrent.com/blog/best-practice-applying-drupal-updates-production-website">Best Practice: Applying Drupal Updates to a Production Website</a></li>
<li>Filemaker and Drupal: <a href="https://www.mediacurrent.com/blog/featured-recipe-filemaker-and-drupal">part one</a> | <a href="https://www.mediacurrent.com/blog/9-steps-sync-your-filemaker-data-drupal">part two</a></li>
</ul>
<hr>
<h2 id="drupal-community-contributions">Drupal Community Contributions</h2>
<p><em>Maintainer</em></p>
<ul>
<li><a href="https://www.drupal.org/project/twigshim">Twigshim</a></li>
<li><a href="https://www.drupal.org/project/kalastatic">Kalastatic</a></li>
<li><a href="https://www.drupal.org/project/kalatheme">Kalatheme</a></li>
<li><a href="https://www.drupal.org/project/classy_panel_styles">Classy Panel Styles</a></li>
<li><a href="https://www.drupal.org/project/ctools_empty_field">CTools Empty Field Access Plugin</a></li>
<li><a href="https://www.drupal.org/sandbox/derek.deraps/2394265">Environment Manager</a></li>
</ul>
<p><em>Patches / Issue Credits</em></p>
<ul>
<li><a href="https://www.drupal.org/project/drupal/issues/2850540">Drupal 8</a></li>
<li><a href="https://www.drupal.org/project/layout_initiative">Drupal 8 Layout Initiative</a></li>
<li><a href="https://www.drupal.org/project/geocoder/issues/2024809">Geocoder</a></li>
<li><a href="https://www.drupal.org/project/node_expire">Node Expire</a></li>
<li><a href="https://www.drupal.org/project/wf">Workflow Tools</a></li>
<li><a href="https://www.drupal.org/project/vimrc">Vim Plugin For Drupal</a></li>
<li><a href="https://www.drupal.org/project/ultimate_cron">Ultimate Cron</a></li>
<li><a href="https://www.drupal.org/project/node_title_help_text">Node title help text</a></li>
<li><a href="https://www.drupal.org/project/media/issues/2612190">Media</a></li>
<li><a href="https://www.drupal.org/project/menu_breadcrumb">Menu Breadcrumb</a></li>
<li><a href="https://www.drupal.org/project/tfa">Two-factor Authentication (TFA)</a></li>
</ul>
<p><em>Patches Pending</em></p>
<ul>
<li>@font-your-face</li>
<li>Autocompleteinator</li>
<li>Content locking</li>
<li>Deploy</li>
<li>Entity Dependency</li>
<li>Field Property</li>
<li>Media</li>
<li>Menu Icons</li>
<li>Metatag</li>
<li>Queue UI</li>
<li>Reference Field Option Limit</li>
<li>Ultimate Cron</li>
<li>UUID</li>
<li>Views filter view</li>
<li>Views Slideshow</li>
<li>Voting API</li>
<li>Wysifield</li>
</ul>
<hr>
</div>
</body>
</html>