gaboesquivel 6.3.2 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/chunk-5UDS4FFQ.mjs +3424 -0
  2. package/dist/chunk-RJIWM26U.mjs +3343 -0
  3. package/dist/chunk-Z3G5JSGW.mjs +3268 -0
  4. package/dist/cli.js +437 -281
  5. package/dist/cli.mjs +1 -1
  6. package/dist/content/cv/ai.md +9 -9
  7. package/dist/content/cv/full.md +1 -1
  8. package/dist/content/cv/fullstack.md +6 -6
  9. package/dist/content/cv/web3.md +11 -10
  10. package/dist/content/experience/bitlauncher.md +12 -4
  11. package/dist/content/experience/eos-costa-rica.md +2 -1
  12. package/dist/content/experience/knowledge.md +1 -0
  13. package/dist/content/experience/legalagent.md +4 -2
  14. package/dist/content/experience/opyn.md +2 -2
  15. package/dist/content/experience/raremint.md +1 -1
  16. package/dist/content/experience/ztx.md +3 -0
  17. package/dist/content/projects/4tius-fitness-data-tracker.md +3 -4
  18. package/dist/content/projects/amc-yeah-tv-facebook-app.md +10 -3
  19. package/dist/content/projects/amex-money-talk.md +9 -3
  20. package/dist/content/projects/arinc-microfids.md +10 -4
  21. package/dist/content/projects/asoblockchain.md +4 -5
  22. package/dist/content/projects/bitlauncher.md +1 -1
  23. package/dist/content/projects/bureau-of-trade-beta.md +13 -10
  24. package/dist/content/projects/capoeira-abolicao.md +2 -3
  25. package/dist/content/projects/chaingraph.md +5 -6
  26. package/dist/content/projects/costa-rica-js.md +7 -7
  27. package/dist/content/projects/cryptocantinacr.md +5 -5
  28. package/dist/content/projects/earth.md +2 -2
  29. package/dist/content/projects/eat-arcade.md +2 -3
  30. package/dist/content/projects/elder-scrolls-online.md +12 -8
  31. package/dist/content/projects/emanate.md +4 -4
  32. package/dist/content/projects/eos-costa-rica.md +2 -2
  33. package/dist/content/projects/fantasy-tennis.md +2 -3
  34. package/dist/content/projects/fantasy-top-shots.md +8 -11
  35. package/dist/content/projects/gridium.md +12 -6
  36. package/dist/content/projects/jockey-hollow-bar-and-kitchen-menu-kiosk-app.md +7 -5
  37. package/dist/content/projects/jockey-hollow-bar-and-kitchen.md +8 -2
  38. package/dist/content/projects/make-sense-labs.md +4 -5
  39. package/dist/content/projects/masterbots.md +1 -1
  40. package/dist/content/projects/mobtion.md +2 -2
  41. package/dist/content/projects/opyn.md +4 -4
  42. package/dist/content/projects/photo-and-go.md +6 -2
  43. package/dist/content/projects/proparques.md +1 -1
  44. package/dist/content/projects/raremint.md +2 -2
  45. package/dist/content/projects/substrate-contracts-ui.md +3 -5
  46. package/dist/content/projects/tikr.md +5 -6
  47. package/dist/content/projects/tractor-supply.md +5 -5
  48. package/dist/content/projects/wizard-world.md +2 -2
  49. package/dist/content/tech/docker.md +2 -2
  50. package/dist/content/tech/ethereum.md +1 -1
  51. package/dist/content/tech/ethersjs.md +3 -3
  52. package/dist/content/tech/expo.md +2 -3
  53. package/dist/content/tech/foundry.md +3 -3
  54. package/dist/content/tech/javascript.md +2 -2
  55. package/dist/content/tech/react-native.md +4 -4
  56. package/dist/content/tech/reactjs.md +1 -1
  57. package/dist/content/tech/redis.md +3 -3
  58. package/dist/content/tech/serverless.md +3 -3
  59. package/dist/content/tech/solidity.md +1 -1
  60. package/dist/content/tech/tailwind.md +2 -2
  61. package/dist/content/tech/terraform.md +1 -1
  62. package/dist/content/tech/typescript.md +2 -2
  63. package/dist/content/tech/wagmi.md +2 -2
  64. package/dist/cv.json +16 -16
  65. package/dist/experience.json +13 -9
  66. package/dist/index.js +466 -306
  67. package/dist/index.mjs +30 -26
  68. package/dist/projects.json +110 -128
  69. package/dist/tech.json +25 -26
  70. package/package.json +2 -2
  71. package/readme.md +5 -2
@@ -0,0 +1,3343 @@
1
+ // src/generated/projects.ts
2
+ var projects = [
3
+ {
4
+ title: "4Tius Fitness Data Tracker",
5
+ slug: "4tius-fitness-data-tracker",
6
+ description: "A Fitbit-connected fitness data platform with a responsive analytics dashboard and secure API.",
7
+ tech: [
8
+ "NodeJS",
9
+ "AWS",
10
+ "MongoDB",
11
+ "AngularJS"
12
+ ],
13
+ type: [
14
+ "contract",
15
+ "frontend",
16
+ "backend",
17
+ "fullstack"
18
+ ],
19
+ image: "https://gaboesquivel.com/images/work/4tius.jpg",
20
+ images: [],
21
+ achievements: [
22
+ "Designed and developed a fitness data tracking system with Fitbit integration.",
23
+ "Built a responsive web dashboard for real-time analytics and monitoring.",
24
+ "Implemented secure API endpoints between the app and fitness devices."
25
+ ],
26
+ story: [
27
+ "The 4Tius app is a Fitbit-connected fitness data platform with a web dashboard and API. I led the web application and the backend that ingested device data.",
28
+ "I designed the responsive dashboard where users tracked their progress through realtime fitness analytics, fed by the Fitbit integration, and built the secure API endpoints between the app and the devices."
29
+ ],
30
+ order: 30,
31
+ year: 2013,
32
+ markdown: '---\ntitle: "4Tius Fitness Data Tracker"\nslug: "4tius-fitness-data-tracker"\ndescription: "A Fitbit-connected fitness data platform with a responsive analytics dashboard and secure API."\ntech:\n - NodeJS\n - AWS\n - MongoDB\n - AngularJS\ntype:\n - contract\n - frontend\n - backend\n - fullstack\nimage: "https://gaboesquivel.com/images/work/4tius.jpg"\n\n\nimages: []\nachievements:\n - Designed and developed a fitness data tracking system with Fitbit integration.\n - Built a responsive web dashboard for real-time analytics and monitoring.\n - Implemented secure API endpoints between the app and fitness devices.\nstory:\n - The 4Tius app is a Fitbit-connected fitness data platform with a web dashboard and API. I led the web application and the backend that ingested device data.\n - I designed the responsive dashboard where users tracked their progress through realtime fitness analytics, fed by the Fitbit integration, and built the secure API endpoints between the app and the devices.\norder: 30\nyear: 2013\n---\n\n# 4Tius Fitness Data Tracker\n\nA Fitbit-connected fitness data platform with a responsive analytics dashboard and secure API.\n',
33
+ markdownPath: "content/projects/4tius-fitness-data-tracker.md"
34
+ },
35
+ {
36
+ title: "AMC Yeah TV Facebook App",
37
+ slug: "amc-yeah-tv-facebook-app",
38
+ description: "An interactive movie-streaming experience with chapter navigation, Facebook integration, in-player content, and Brightcove tooling.",
39
+ role: "Lead UI Engineer",
40
+ tech: [
41
+ "PHP",
42
+ "Facebook API",
43
+ "AJAX",
44
+ "Handlebars",
45
+ "Brightcove API",
46
+ "require.js",
47
+ "CSS"
48
+ ],
49
+ type: [
50
+ "full-time",
51
+ "lead",
52
+ "frontend",
53
+ "institution"
54
+ ],
55
+ link: "http://yeahtv.com",
56
+ image: "https://gaboesquivel.com/images/work/yeahtv.jpg",
57
+ images: [],
58
+ achievements: [
59
+ "Designed and built the frontend architecture for an interactive movie player.",
60
+ "Integrated Brightcove for streaming, chapter playback, and back-office editing.",
61
+ "Implemented Facebook API features for identity, sharing, and in-player content."
62
+ ],
63
+ story: [
64
+ "YEAH! was AMC's interactive streaming movie service: classic genre films with chapter navigation and bonus content inside the player. I owned the frontend architecture.",
65
+ "I integrated the player with Facebook for identity and sharing, and the back office with Brightcove for streaming and editing. Each curated film carried 400+ interactive elements: trivia, interviews, quizzes.",
66
+ "Five frontend engineers sat between AMC's creative team and the backend team. The screen had to play the film and the extras without fighting the player."
67
+ ],
68
+ experienceCompany: "AMC Networks",
69
+ order: 22,
70
+ year: 2012,
71
+ markdown: `---
72
+ title: "AMC Yeah TV Facebook App"
73
+ slug: "amc-yeah-tv-facebook-app"
74
+ description: "An interactive movie-streaming experience with chapter navigation, Facebook integration, in-player content, and Brightcove tooling."
75
+ role: "Lead UI Engineer"
76
+ tech:
77
+ - PHP
78
+ - Facebook API
79
+ - AJAX
80
+ - Handlebars
81
+ - Brightcove API
82
+ - require.js
83
+ - CSS
84
+ type:
85
+ - full-time
86
+ - lead
87
+ - frontend
88
+ - institution
89
+ link: "http://yeahtv.com"
90
+ image: "https://gaboesquivel.com/images/work/yeahtv.jpg"
91
+
92
+
93
+ images: []
94
+ achievements:
95
+ - Designed and built the frontend architecture for an interactive movie player.
96
+ - Integrated Brightcove for streaming, chapter playback, and back-office editing.
97
+ - Implemented Facebook API features for identity, sharing, and in-player content.
98
+ story:
99
+ - "YEAH! was AMC's interactive streaming movie service: classic genre films with chapter navigation and bonus content inside the player. I owned the frontend architecture."
100
+ - "I integrated the player with Facebook for identity and sharing, and the back office with Brightcove for streaming and editing. Each curated film carried 400+ interactive elements: trivia, interviews, quizzes."
101
+ - Five frontend engineers sat between AMC's creative team and the backend team. The screen had to play the film and the extras without fighting the player.
102
+ experienceCompany: "AMC Networks"
103
+ order: 22
104
+ year: 2012
105
+ ---
106
+
107
+ # AMC Yeah TV Facebook App
108
+
109
+ An interactive movie-streaming experience with chapter navigation, Facebook integration, in-player content, and Brightcove tooling.
110
+ `,
111
+ markdownPath: "content/projects/amc-yeah-tv-facebook-app.md"
112
+ },
113
+ {
114
+ title: "American Express",
115
+ slug: "american-express",
116
+ description: "American Express cardmember and marketing web experiences with responsive interfaces, experimentation, and analytics.",
117
+ role: "UI Engineer",
118
+ tech: [
119
+ "JSP (Struts)",
120
+ "Omniture",
121
+ "Adobe mBox",
122
+ "Facebook API",
123
+ "Dojo",
124
+ "jQuery",
125
+ "CSS",
126
+ "AJAX"
127
+ ],
128
+ type: [
129
+ "full-time",
130
+ "frontend",
131
+ "institution"
132
+ ],
133
+ link: "https://www.americanexpress.com/",
134
+ image: "https://gaboesquivel.com/images/work/amex.jpg",
135
+ images: [],
136
+ achievements: [
137
+ "Moved the frontend from Dojo to jQuery.",
138
+ "Built credit-card marketing screens: comparison sliders and landing pages.",
139
+ "Wired responsive layouts, A/B testing, and analytics."
140
+ ],
141
+ story: [
142
+ "At American Express I built cardmember and marketing web experiences: comparison sliders, landing pages, responsive layouts, A/B testing, and analytics.",
143
+ "I helped move a large frontend from Dojo to jQuery while keeping experimentation and measurement in place on live financial surfaces."
144
+ ],
145
+ experienceCompany: "American Express",
146
+ order: 19,
147
+ year: 2010,
148
+ markdown: `---
149
+ title: "American Express"
150
+ slug: "american-express"
151
+ description: "American Express cardmember and marketing web experiences with responsive interfaces, experimentation, and analytics."
152
+ role: "UI Engineer"
153
+ tech:
154
+ - JSP (Struts)
155
+ - Omniture
156
+ - Adobe mBox
157
+ - Facebook API
158
+ - Dojo
159
+ - jQuery
160
+ - CSS
161
+ - AJAX
162
+ type:
163
+ - full-time
164
+ - frontend
165
+ - institution
166
+ link: "https://www.americanexpress.com/"
167
+ image: "https://gaboesquivel.com/images/work/amex.jpg"
168
+
169
+
170
+ images: []
171
+ achievements:
172
+ - Moved the frontend from Dojo to jQuery.
173
+ - 'Built credit-card marketing screens: comparison sliders and landing pages.'
174
+ - Wired responsive layouts, A/B testing, and analytics.
175
+ story:
176
+ - "At American Express I built cardmember and marketing web experiences: comparison sliders, landing pages, responsive layouts, A/B testing, and analytics."
177
+ - I helped move a large frontend from Dojo to jQuery while keeping experimentation and measurement in place on live financial surfaces.
178
+ experienceCompany: "American Express"
179
+ order: 19
180
+ year: 2010
181
+ ---
182
+
183
+ # American Express
184
+
185
+ American Express cardmember and marketing web experiences with responsive interfaces, experimentation, and analytics.
186
+ `,
187
+ markdownPath: "content/projects/american-express.md"
188
+ },
189
+ {
190
+ title: "AMEX Money Talk",
191
+ slug: "amex-money-talk",
192
+ description: "An American Express family-finance campaign centered on conversations between parents and teenagers.",
193
+ tech: [
194
+ "JavaScript",
195
+ "CSS"
196
+ ],
197
+ type: [
198
+ "other",
199
+ "frontend",
200
+ "institution"
201
+ ],
202
+ link: "https://www.youtube.com/watch?v=a2vDoYyXIJQ",
203
+ image: "https://gaboesquivel.com/images/work/money-talk.jpg",
204
+ images: [],
205
+ achievements: [
206
+ "Built the campaign landing page for American Express National Money Night Talk.",
207
+ "Built a responsive landing page that held up on phones as well as desktops."
208
+ ],
209
+ story: [
210
+ "I built the landing page for American Express National Money Night Talk, a campaign about financial conversations between parents and teenagers."
211
+ ],
212
+ experienceCompany: "American Express",
213
+ order: 20,
214
+ year: 2010,
215
+ markdown: '---\ntitle: "AMEX Money Talk"\nslug: "amex-money-talk"\ndescription: "An American Express family-finance campaign centered on conversations between parents and teenagers."\ntech:\n - JavaScript\n - CSS\ntype:\n - other\n - frontend\n - institution\nexperienceCompany: "American Express"\nlink: "https://www.youtube.com/watch?v=a2vDoYyXIJQ"\nimage: "https://gaboesquivel.com/images/work/money-talk.jpg"\n\n\nimages: []\nachievements:\n - Built the campaign landing page for American Express National Money Night Talk.\n - Built a responsive landing page that held up on phones as well as desktops.\nstory:\n - I built the landing page for American Express National Money Night Talk, a campaign about financial conversations between parents and teenagers.\norder: 20\nyear: 2010\n---\n\n# AMEX Money Talk\n\nAn American Express family-finance campaign centered on conversations between parents and teenagers.\n',
216
+ markdownPath: "content/projects/amex-money-talk.md"
217
+ },
218
+ {
219
+ title: "ARINC Microfids",
220
+ slug: "arinc-microfids",
221
+ description: "A realtime flight-information display for hotels and airport businesses, backed by Ruby on Rails.",
222
+ tech: [
223
+ "Ruby on Rails",
224
+ "AngularJS",
225
+ "Faye",
226
+ "LESS",
227
+ "Heroku"
228
+ ],
229
+ type: [
230
+ "contract",
231
+ "frontend"
232
+ ],
233
+ image: "https://gaboesquivel.com/images/work/arinc.png",
234
+ images: [],
235
+ achievements: [
236
+ "Developed a real-time flight information display system.",
237
+ "Connected the Ruby on Rails backend to AngularJS so flight data updated without a page reload.",
238
+ "Tuned frontend performance for realtime updates."
239
+ ],
240
+ story: [
241
+ "ARINC Microfids is a flight-information display for hotels and airport businesses, backed by Ruby on Rails. I built the frontend and the integration that kept the boards current.",
242
+ "I connected the Rails backend to the AngularJS frontend and used Faye for realtime messaging, so flight changes reached the boards travelers were reading without a reload."
243
+ ],
244
+ order: 35,
245
+ year: 2013,
246
+ markdown: '---\ntitle: "ARINC Microfids"\nslug: "arinc-microfids"\ndescription: "A realtime flight-information display for hotels and airport businesses, backed by Ruby on Rails."\ntech:\n - Ruby on Rails\n - AngularJS\n - Faye\n - LESS\n - Heroku\ntype:\n - contract\n - frontend\nimage: "https://gaboesquivel.com/images/work/arinc.png"\n\n\nimages: []\nachievements:\n - Developed a real-time flight information display system.\n - Connected the Ruby on Rails backend to AngularJS so flight data updated without a page reload.\n - Tuned frontend performance for realtime updates.\nstory:\n - ARINC Microfids is a flight-information display for hotels and airport businesses, backed by Ruby on Rails. I built the frontend and the integration that kept the boards current.\n - I connected the Rails backend to the AngularJS frontend and used Faye for realtime messaging, so flight changes reached the boards travelers were reading without a reload.\norder: 35\nyear: 2013\n---\n\n# ARINC Microfids\n\nA realtime flight-information display for hotels and airport businesses, backed by Ruby on Rails.\n',
247
+ markdownPath: "content/projects/arinc-microfids.md"
248
+ },
249
+ {
250
+ title: "AsoBlockchain",
251
+ slug: "asoblockchain",
252
+ description: "A Costa Rican nonprofit association for blockchain education, industry collaboration, events, and policy engagement.",
253
+ tech: [
254
+ "Blockchain"
255
+ ],
256
+ type: [
257
+ "other",
258
+ "lead"
259
+ ],
260
+ link: "https://asoblockchain.org",
261
+ image: "https://gaboesquivel.com/images/2018/06/blockchain-costa-rica.jpg",
262
+ video: "https://www.youtube.com/watch?v=-1y0fGs8Xgw",
263
+ images: [
264
+ "https://gaboesquivel.com/images/work/ticoblockchain.jpg",
265
+ "https://gaboesquivel.com/images/2019/02/ticoblockchain_eosio_workshop.jpg"
266
+ ],
267
+ achievements: [
268
+ "Co-founded Costa Rica's first blockchain association in 2017.",
269
+ "Established educational partnerships with ADEN International Business School and ULACIT.",
270
+ "Started CryptoCantinaCR, a weekly meetup that later became a formal education program.",
271
+ "Organized TicoBlockchain, Costa Rica's first international crypto and blockchain conference.",
272
+ "Developed advocacy programs for blockchain policy and regulation.",
273
+ "Ran educational programs, industry partnerships, and community events for members."
274
+ ],
275
+ story: [
276
+ "AsoBlockchain is a Costa Rican nonprofit for blockchain education, industry collaboration, events, and policy. As a co-founder, I helped set the organization's direction and first programs.",
277
+ "I helped start CryptoCantinaCR and TicoBlockchain as education and gathering points, and worked on partnerships with ADEN Business School and ULACIT so there was somewhere to learn the technology.",
278
+ "I also took part in policy discussions around regulation, representing members while keeping the association's work on education, partnerships, and events."
279
+ ],
280
+ related: [
281
+ {
282
+ url: "2019-03-ticoblockchain-2019-recap",
283
+ title: "TicoBlockchain 2019 Recap",
284
+ publishedAt: "2019-03-01"
285
+ },
286
+ {
287
+ url: "2019-01-international-crypto-conference-in-costa-rica",
288
+ title: "International Crypto Conference in Costa Rica",
289
+ publishedAt: "2019-01-01"
290
+ },
291
+ {
292
+ url: "2018-07-costa-rica-crypto-cantina",
293
+ title: "Costa Rica Crypto Cantina",
294
+ publishedAt: "2018-07-01"
295
+ },
296
+ {
297
+ url: "2018-06-blockchain-technology-in-costa-rica",
298
+ title: "Blockchain Technology in Costa Rica",
299
+ publishedAt: "2018-06-01"
300
+ }
301
+ ],
302
+ order: 46,
303
+ year: 2017,
304
+ markdown: `---
305
+ title: "AsoBlockchain"
306
+ slug: "asoblockchain"
307
+ description: "A Costa Rican nonprofit association for blockchain education, industry collaboration, events, and policy engagement."
308
+ tech:
309
+ - Blockchain
310
+ type:
311
+ - other
312
+ - lead
313
+ link: "https://asoblockchain.org"
314
+ image: "https://gaboesquivel.com/images/2018/06/blockchain-costa-rica.jpg"
315
+
316
+ video: "https://www.youtube.com/watch?v=-1y0fGs8Xgw"
317
+ images:
318
+ - https://gaboesquivel.com/images/work/ticoblockchain.jpg
319
+ - https://gaboesquivel.com/images/2019/02/ticoblockchain_eosio_workshop.jpg
320
+ achievements:
321
+ - Co-founded Costa Rica's first blockchain association in 2017.
322
+ - Established educational partnerships with ADEN International Business School and ULACIT.
323
+ - Started CryptoCantinaCR, a weekly meetup that later became a formal education program.
324
+ - Organized TicoBlockchain, Costa Rica's first international crypto and blockchain conference.
325
+ - Developed advocacy programs for blockchain policy and regulation.
326
+ - Ran educational programs, industry partnerships, and community events for members.
327
+ story:
328
+ - AsoBlockchain is a Costa Rican nonprofit for blockchain education, industry collaboration, events, and policy. As a co-founder, I helped set the organization's direction and first programs.
329
+ - I helped start CryptoCantinaCR and TicoBlockchain as education and gathering points, and worked on partnerships with ADEN Business School and ULACIT so there was somewhere to learn the technology.
330
+ - I also took part in policy discussions around regulation, representing members while keeping the association's work on education, partnerships, and events.
331
+ related:
332
+ - url: "2019-03-ticoblockchain-2019-recap"
333
+ title: "TicoBlockchain 2019 Recap"
334
+ publishedAt: "2019-03-01"
335
+ - url: "2019-01-international-crypto-conference-in-costa-rica"
336
+ title: "International Crypto Conference in Costa Rica"
337
+ publishedAt: "2019-01-01"
338
+ - url: "2018-07-costa-rica-crypto-cantina"
339
+ title: "Costa Rica Crypto Cantina"
340
+ publishedAt: "2018-07-01"
341
+ - url: "2018-06-blockchain-technology-in-costa-rica"
342
+ title: "Blockchain Technology in Costa Rica"
343
+ publishedAt: "2018-06-01"
344
+ order: 46
345
+ year: 2017
346
+ ---
347
+
348
+ # AsoBlockchain
349
+
350
+ A Costa Rican nonprofit association for blockchain education, industry collaboration, events, and policy engagement.
351
+ `,
352
+ markdownPath: "content/projects/asoblockchain.md"
353
+ },
354
+ {
355
+ title: "Bitcash",
356
+ slug: "bitcashbank",
357
+ description: "A fiat-to-stablecoin and cryptocurrency exchange with peer-to-peer trading, realtime chat, browser signing, and EOS data.",
358
+ role: "Lead Engineer",
359
+ tech: [
360
+ "Antelope",
361
+ "C++",
362
+ "ReactJS",
363
+ "WebAuthN",
364
+ "Biometrics",
365
+ "GCP",
366
+ "NodeJS",
367
+ "GraphQL",
368
+ "PostgreSQL",
369
+ "Supabase",
370
+ "TypeScript",
371
+ "Tailwind",
372
+ "Stitches",
373
+ "Zustand"
374
+ ],
375
+ type: [
376
+ "web3",
377
+ "part-time",
378
+ "lead",
379
+ "frontend",
380
+ "backend",
381
+ "fullstack",
382
+ "mobile",
383
+ "startup"
384
+ ],
385
+ link: "https://bitcash.org",
386
+ image: "https://gaboesquivel.com/images/work/bitcash-bank.png",
387
+ repo: "https://github.com/bitcashorg",
388
+ video: "https://www.youtube.com/watch?v=2JuHy_w0Ct4",
389
+ images: [],
390
+ achievements: [
391
+ "Architected the React, Vite, Node.js, PostgreSQL, Hasura, and Google Cloud stack.",
392
+ "Built the peer-to-peer exchange, realtime chat, and matching engine.",
393
+ "Built a realtime EOS indexer with Node.js worker threads, binary deserialization, and PostgreSQL.",
394
+ "Built WebAuthn key management for in-browser transaction signing without an external wallet.",
395
+ "Added EOS contract multisig while BitcashDAO voting was still being built."
396
+ ],
397
+ story: [
398
+ "Bitcash was a fiat-to-stablecoin and crypto exchange. I architected the stack and built the peer-to-peer exchange, realtime chat, and matching engine.",
399
+ "Browser signing without an external wallet was the constraint. QR signature requests over Supabase subscriptions and webhooks later let bitlauncher.ai and other partner apps authenticate and sign through the Bitcash session.",
400
+ "The exchange never found traction past about 500 users, mostly in developing-country markets. Marketing and distribution stayed behind the product."
401
+ ],
402
+ experienceCompany: "Bitcash",
403
+ order: 7,
404
+ year: 2020,
405
+ markdown: '---\ntitle: "Bitcash"\nslug: "bitcashbank"\ndescription: "A fiat-to-stablecoin and cryptocurrency exchange with peer-to-peer trading, realtime chat, browser signing, and EOS data."\nrole: "Lead Engineer"\ntech:\n - Antelope\n - C++\n - ReactJS\n - WebAuthN\n - Biometrics\n - GCP\n - NodeJS\n - GraphQL\n - PostgreSQL\n - Supabase\n - TypeScript\n - Tailwind\n - Stitches\n - Zustand\ntype:\n - web3\n - part-time\n - lead\n - frontend\n - backend\n - fullstack\n - mobile\n - startup\nlink: "https://bitcash.org"\nimage: "https://gaboesquivel.com/images/work/bitcash-bank.png"\nrepo: "https://github.com/bitcashorg"\nvideo: "https://www.youtube.com/watch?v=2JuHy_w0Ct4"\nimages: []\nachievements:\n - Architected the React, Vite, Node.js, PostgreSQL, Hasura, and Google Cloud stack.\n - Built the peer-to-peer exchange, realtime chat, and matching engine.\n - Built a realtime EOS indexer with Node.js worker threads, binary deserialization, and PostgreSQL.\n - Built WebAuthn key management for in-browser transaction signing without an external wallet.\n - Added EOS contract multisig while BitcashDAO voting was still being built.\nstory:\n - Bitcash was a fiat-to-stablecoin and crypto exchange. I architected the stack and built the peer-to-peer exchange, realtime chat, and matching engine.\n - Browser signing without an external wallet was the constraint. QR signature requests over Supabase subscriptions and webhooks later let bitlauncher.ai and other partner apps authenticate and sign through the Bitcash session.\n - The exchange never found traction past about 500 users, mostly in developing-country markets. Marketing and distribution stayed behind the product.\nexperienceCompany: "Bitcash"\norder: 7\nyear: 2020\n---\n\n# Bitcash\n\nA fiat-to-stablecoin and cryptocurrency exchange with peer-to-peer trading, realtime chat, browser signing, and EOS data.\n',
406
+ markdownPath: "content/projects/bitcashbank.md"
407
+ },
408
+ {
409
+ title: "Bitlauncher",
410
+ slug: "bitlauncher",
411
+ description: "AI and crypto launchpad for token sales, batch auctions, cross-chain wallets, bridges, indexed market data, and AI-assisted investor tools.",
412
+ role: "Product Engineer",
413
+ tech: [
414
+ "TypeScript",
415
+ "Solidity",
416
+ "Hardhat",
417
+ "Antelope",
418
+ "NextJS",
419
+ "ReactJS",
420
+ "Viem",
421
+ "Wagmi",
422
+ "NodeJS",
423
+ "PostgreSQL",
424
+ "Ethereum",
425
+ "GCP",
426
+ "Docker",
427
+ "Alchemy",
428
+ "Trigger",
429
+ "Supabase",
430
+ "ShadcnUI",
431
+ "Tailwind",
432
+ "TanStack Query",
433
+ "Zod",
434
+ "nuqs",
435
+ "OpenAI",
436
+ "AI SDK",
437
+ "Artificial Intelligence"
438
+ ],
439
+ type: [
440
+ "web3",
441
+ "ai",
442
+ "oss",
443
+ "full-time",
444
+ "lead",
445
+ "defi",
446
+ "featured",
447
+ "frontend",
448
+ "backend",
449
+ "fullstack",
450
+ "startup"
451
+ ],
452
+ link: "https://bitlauncher.ai",
453
+ image: "https://gaboesquivel.com/images/work/bitlauncher.png",
454
+ repo: "https://github.com/bitcashorg/smartevm",
455
+ video: "https://www.youtube.com/watch?v=U6vn3KOEwcQ",
456
+ images: [],
457
+ achievements: [
458
+ "Architected the platform on Next.js 14, Supabase, viem, wagmi, Alchemy, Trigger.dev, and shadcn/ui.",
459
+ "Built a token bridge for swapping USDT, USDC, and BITUSD to USDCred so bids could settle in protocol tokens.",
460
+ "Indexed transactions in Supabase for queries, realtime subscriptions, and aggregate market data.",
461
+ "Deployed Gnosis auction Solidity contracts to EOS EVM and developed a bidding interface with real-time updates via Supabase subscriptions.",
462
+ "Created a wallet interface that displays real-time EVM balances through Wagmi token balance subscriptions and EOS token balances via RPC polling.",
463
+ "Built a custom indexer for EOS EVM using Node.js, Viem EVM event subscriptions, and dFuse stream for EOS.",
464
+ "Developed the chatbot at bitlauncher.ai, with tool calls for current news and YouTube content, and RAG for longer answers.",
465
+ "Implemented Masterbots prompting and AI-assisted internationalization.",
466
+ "Automated the AI-assisted workflow with v0.dev, Claude Sonnet, Cursor, and SourceryAI."
467
+ ],
468
+ story: [
469
+ "Bitlauncher was an AI and crypto launchpad I helped form with a business partner. I owned product direction, scope, technical decisions, and delivery from concept through implementation.",
470
+ "The engineering team had two full-time developers, with up to five part-time contributors working on specific tickets. I coordinated delivery while remaining hands-on across the stack.",
471
+ "The product combined onchain auctions, wallet and bridge flows, indexed market data, and AI tools for project research. My work covered the boundaries between those systems rather than a single layer."
472
+ ],
473
+ related: [
474
+ {
475
+ url: "2024-07-viem-wagmi-ethers",
476
+ title: "Viem, Wagmi, and Ethers",
477
+ publishedAt: "2024-07-01"
478
+ },
479
+ {
480
+ url: "2024-07-ai-and-web3",
481
+ title: "AI and Web3",
482
+ publishedAt: "2024-07-01"
483
+ },
484
+ {
485
+ url: "2025-11-web3-and-ai",
486
+ title: "Web3 and AI",
487
+ publishedAt: "2025-11-01"
488
+ }
489
+ ],
490
+ experienceCompany: "Bitlauncher",
491
+ order: 3,
492
+ year: 2023,
493
+ markdown: '---\ntitle: "Bitlauncher"\nslug: "bitlauncher"\ndescription: "AI and crypto launchpad for token sales, batch auctions, cross-chain wallets, bridges, indexed market data, and AI-assisted investor tools."\nrole: "Product Engineer"\ntech:\n - TypeScript\n - Solidity\n - Hardhat\n - Antelope\n - NextJS\n - ReactJS\n - Viem\n - Wagmi\n - NodeJS\n - PostgreSQL\n - Ethereum\n - GCP\n - Docker\n - Alchemy\n - Trigger\n - Supabase\n - ShadcnUI\n - Tailwind\n - TanStack Query\n - Zod\n - nuqs\n - OpenAI\n - AI SDK\n - Artificial Intelligence\ntype:\n - web3\n - ai\n - oss\n - full-time\n - lead\n - defi\n - featured\n - frontend\n - backend\n - fullstack\n - startup\nlink: "https://bitlauncher.ai"\nimage: "https://gaboesquivel.com/images/work/bitlauncher.png"\nrepo: "https://github.com/bitcashorg/smartevm"\nvideo: "https://www.youtube.com/watch?v=U6vn3KOEwcQ"\nimages: []\nachievements:\n - Architected the platform on Next.js 14, Supabase, viem, wagmi, Alchemy, Trigger.dev, and shadcn/ui.\n - Built a token bridge for swapping USDT, USDC, and BITUSD to USDCred so bids could settle in protocol tokens.\n - Indexed transactions in Supabase for queries, realtime subscriptions, and aggregate market data.\n - Deployed Gnosis auction Solidity contracts to EOS EVM and developed a bidding interface with real-time updates via Supabase subscriptions.\n - Created a wallet interface that displays real-time EVM balances through Wagmi token balance subscriptions and EOS token balances via RPC polling.\n - Built a custom indexer for EOS EVM using Node.js, Viem EVM event subscriptions, and dFuse stream for EOS.\n - Developed the chatbot at bitlauncher.ai, with tool calls for current news and YouTube content, and RAG for longer answers.\n - Implemented Masterbots prompting and AI-assisted internationalization.\n - Automated the AI-assisted workflow with v0.dev, Claude Sonnet, Cursor, and SourceryAI.\nstory:\n - Bitlauncher was an AI and crypto launchpad I helped form with a business partner. I owned product direction, scope, technical decisions, and delivery from concept through implementation.\n - The engineering team had two full-time developers, with up to five part-time contributors working on specific tickets. I coordinated delivery while remaining hands-on across the stack.\n - The product combined onchain auctions, wallet and bridge flows, indexed market data, and AI tools for project research. My work covered the boundaries between those systems rather than a single layer.\nexperienceCompany: "Bitlauncher"\norder: 3\nyear: 2023\nrelated:\n - url: "2024-07-viem-wagmi-ethers"\n title: "Viem, Wagmi, and Ethers"\n publishedAt: "2024-07-01"\n - url: "2024-07-ai-and-web3"\n title: "AI and Web3"\n publishedAt: "2024-07-01"\n - url: "2025-11-web3-and-ai"\n title: "Web3 and AI"\n publishedAt: "2025-11-01"\n---\n\n# Bitlauncher\n\nAI and crypto launchpad for token sales, batch auctions, cross-chain wallets, bridges, indexed market data, and AI-assisted investor tools.\n',
494
+ markdownPath: "content/projects/bitlauncher.md"
495
+ },
496
+ {
497
+ title: "Bureau of Trade (Beta)",
498
+ slug: "bureau-of-trade-beta",
499
+ description: "An online store with an eBay-backed catalog, responsive browsing, and animated product interfaces.",
500
+ tech: [
501
+ "PHP",
502
+ "eBay API",
503
+ "AJAX",
504
+ "jQuery",
505
+ "CSS"
506
+ ],
507
+ type: [
508
+ "contract",
509
+ "frontend"
510
+ ],
511
+ link: "http://www.gridium.com/products/portfolio-manager/",
512
+ image: "https://gaboesquivel.com/images/work/bureau-of-trade.jpg",
513
+ images: [],
514
+ achievements: [
515
+ "Built a responsive e-commerce frontend on eBay's API.",
516
+ "Built UI animations for product browsing and page transitions.",
517
+ "Tuned site performance for faster product browsing."
518
+ ],
519
+ story: [
520
+ "Bureau of Trade (Beta) was an online store whose catalog came from eBay's API, so the shop could list products without managing its own inventory. I was the only full-stack developer, and most of my work sat in the frontend: responsive layouts, animations, and the eBay integration.",
521
+ "Because product data arrived from an external API, I built the browsing interface and page transitions around it and tuned performance so product pages loaded faster."
522
+ ],
523
+ order: 27,
524
+ year: 2013,
525
+ markdown: `---
526
+ title: "Bureau of Trade (Beta)"
527
+ slug: "bureau-of-trade-beta"
528
+ description: "An online store with an eBay-backed catalog, responsive browsing, and animated product interfaces."
529
+ tech:
530
+ - PHP
531
+ - eBay API
532
+ - AJAX
533
+ - jQuery
534
+ - CSS
535
+ type:
536
+ - contract
537
+ - frontend
538
+ link: "http://www.gridium.com/products/portfolio-manager/"
539
+ image: "https://gaboesquivel.com/images/work/bureau-of-trade.jpg"
540
+
541
+
542
+ images: []
543
+ achievements:
544
+ - Built a responsive e-commerce frontend on eBay's API.
545
+ - Built UI animations for product browsing and page transitions.
546
+ - Tuned site performance for faster product browsing.
547
+ story:
548
+ - "Bureau of Trade (Beta) was an online store whose catalog came from eBay's API, so the shop could list products without managing its own inventory. I was the only full-stack developer, and most of my work sat in the frontend: responsive layouts, animations, and the eBay integration."
549
+ - Because product data arrived from an external API, I built the browsing interface and page transitions around it and tuned performance so product pages loaded faster.
550
+ order: 27
551
+ year: 2013
552
+ ---
553
+
554
+ # Bureau of Trade (Beta)
555
+
556
+ An online store with an eBay-backed catalog, responsive browsing, and animated product interfaces.
557
+ `,
558
+ markdownPath: "content/projects/bureau-of-trade-beta.md"
559
+ },
560
+ {
561
+ title: "Capoeira Abolicao",
562
+ slug: "capoeira-abolicao",
563
+ description: "A promotional WordPress site for Capoeira Aboli\xE7\xE3o: instructors, activities, and the group's international presence.",
564
+ tech: [
565
+ "JavaScript",
566
+ "Wordpress",
567
+ "CSS",
568
+ "Bootstrap"
569
+ ],
570
+ type: [
571
+ "other",
572
+ "frontend"
573
+ ],
574
+ link: "https://capoieraabolicao.com",
575
+ image: "https://gaboesquivel.com/images/work/abolicao.jpg",
576
+ images: [],
577
+ achievements: [
578
+ "Designed and developed a responsive website for Capoeira Aboli\xE7\xE3o.",
579
+ "Implemented interactive elements to showcase community events.",
580
+ "Tuned page weight so the site loaded on the connections people actually had."
581
+ ],
582
+ story: [
583
+ "Capoeira Aboli\xE7\xE3o is a Brazilian martial arts group. I volunteered to design and build their promotional website, which presents the group's professors, activities, and international presence.",
584
+ "I built it as a responsive site with JavaScript, WordPress, CSS, and Bootstrap, with interactive elements for community events and Capoeira fundamentals aimed at both current members and prospective students."
585
+ ],
586
+ order: 36,
587
+ year: 2008,
588
+ markdown: `---
589
+ title: "Capoeira Abolicao"
590
+ slug: "capoeira-abolicao"
591
+ description: "A promotional WordPress site for Capoeira Aboli\xE7\xE3o: instructors, activities, and the group's international presence."
592
+ tech:
593
+ - JavaScript
594
+ - Wordpress
595
+ - CSS
596
+ - Bootstrap
597
+ type:
598
+ - other
599
+ - frontend
600
+ link: "https://capoieraabolicao.com"
601
+ image: "https://gaboesquivel.com/images/work/abolicao.jpg"
602
+
603
+
604
+ images: []
605
+ achievements:
606
+ - Designed and developed a responsive website for Capoeira Aboli\xE7\xE3o.
607
+ - Implemented interactive elements to showcase community events.
608
+ - Tuned page weight so the site loaded on the connections people actually had.
609
+ story:
610
+ - Capoeira Aboli\xE7\xE3o is a Brazilian martial arts group. I volunteered to design and build their promotional website, which presents the group's professors, activities, and international presence.
611
+ - I built it as a responsive site with JavaScript, WordPress, CSS, and Bootstrap, with interactive elements for community events and Capoeira fundamentals aimed at both current members and prospective students.
612
+ order: 36
613
+ year: 2008
614
+ ---
615
+
616
+ # Capoeira Abolicao
617
+
618
+ A promotional WordPress site for Capoeira Aboli\xE7\xE3o: instructors, activities, and the group's international presence.
619
+ `,
620
+ markdownPath: "content/projects/capoeira-abolicao.md"
621
+ },
622
+ {
623
+ title: "ChainGraph",
624
+ slug: "chaingraph",
625
+ description: "An open-source GraphQL toolkit for indexing, streaming, and querying EOSIO and Antelope blockchain data.",
626
+ tech: [
627
+ "Antelope",
628
+ "NodeJS",
629
+ "Docker",
630
+ "GraphQL",
631
+ "GCP",
632
+ "RXJS",
633
+ "TypeScript",
634
+ "PostgreSQL"
635
+ ],
636
+ type: [
637
+ "web3",
638
+ "oss",
639
+ "backend"
640
+ ],
641
+ link: "https://chaingraph.io",
642
+ image: "https://gaboesquivel.com/images/work/chaingraph.png",
643
+ repo: "https://github.com/blockmatic/chaingraph",
644
+ images: [],
645
+ achievements: [
646
+ "Built a realtime GraphQL subscription toolkit for EOSIO and Antelope chains.",
647
+ "Implemented chain data indexing and event streaming.",
648
+ "Designed one GraphQL interface for querying multiple blockchain networks."
649
+ ],
650
+ story: [
651
+ "ChainGraph is an open-source GraphQL toolkit for EOSIO and Antelope applications, with realtime subscriptions and queries across multiple chains.",
652
+ "I built it as a side project while working at Bitcash and owned the architecture, technology choices, and implementation, including the package that streams chain data to subscribers in realtime."
653
+ ],
654
+ order: 10,
655
+ year: 2020,
656
+ markdown: '---\ntitle: "ChainGraph"\nslug: "chaingraph"\ndescription: "An open-source GraphQL toolkit for indexing, streaming, and querying EOSIO and Antelope blockchain data."\ntech:\n - Antelope\n - NodeJS\n - Docker\n - GraphQL\n - GCP\n - RXJS\n - TypeScript\n - PostgreSQL\ntype:\n - web3\n - oss\n - backend\nlink: "https://chaingraph.io"\nimage: "https://gaboesquivel.com/images/work/chaingraph.png"\nrepo: "https://github.com/blockmatic/chaingraph"\n\nimages: []\nachievements:\n - Built a realtime GraphQL subscription toolkit for EOSIO and Antelope chains.\n - Implemented chain data indexing and event streaming.\n - Designed one GraphQL interface for querying multiple blockchain networks.\nstory:\n - ChainGraph is an open-source GraphQL toolkit for EOSIO and Antelope applications, with realtime subscriptions and queries across multiple chains.\n - I built it as a side project while working at Bitcash and owned the architecture, technology choices, and implementation, including the package that streams chain data to subscribers in realtime.\norder: 10\nyear: 2020\n---\n\n# ChainGraph\n\nAn open-source GraphQL toolkit for indexing, streaming, and querying EOSIO and Antelope blockchain data.\n',
657
+ markdownPath: "content/projects/chaingraph.md"
658
+ },
659
+ {
660
+ title: "Costa Rica JS",
661
+ slug: "costa-rica-js",
662
+ description: "A JavaScript community founded in 2010 that grew past 2,000 developers through meetups, NodeSchool, and JSConf Costa Rica.",
663
+ tech: [
664
+ "JavaScript",
665
+ "NodeJS"
666
+ ],
667
+ type: [
668
+ "other",
669
+ "lead"
670
+ ],
671
+ link: "https://www.meetup.com/costaricajs/",
672
+ image: "https://gaboesquivel.com/images/bio/nodeschool-costa-rica.jpg",
673
+ video: "https://vimeo.com/167755778",
674
+ images: [
675
+ "https://gaboesquivel.com/images/work/gaboesquivel-javascript-costarica.png",
676
+ "https://gaboesquivel.com/images/gabo-workshop.jpg",
677
+ "https://gaboesquivel.com/images/work/nodeschool.jpg",
678
+ "https://gaboesquivel.com/images/work/nodeschool-1.jpg",
679
+ "https://gaboesquivel.com/images/2016/05/paintballjs.jpg",
680
+ "https://gaboesquivel.com/images/work/gaboesquivel-presentation.jpg"
681
+ ],
682
+ achievements: [
683
+ "Founded Costa Rica JS in 2010 and grew it past 2,000 developers.",
684
+ "Organized regular meetups, workshops, NodeSchool events, and JSConf Costa Rica.",
685
+ "Ran hands-on workshops as Node.js and modern web frameworks arrived in the region."
686
+ ],
687
+ story: [
688
+ "Costa Rica JS is a JavaScript community I founded in 2010. It grew past 2,000 developers through meetups, NodeSchool, and JSConf Costa Rica.",
689
+ "As founder I organized the meetups, workshops, and conferences. The point was practical skill-building as Node.js and modern web frameworks arrived, not a networking club with a speaker at the front.",
690
+ "The community became a place people used to learn, hire, and get hired. Workshops stayed hands-on so the knowledge transferred."
691
+ ],
692
+ related: [
693
+ {
694
+ url: "2016-06-nodeschool-international-day",
695
+ title: "NodeSchool International Day",
696
+ publishedAt: "2016-06-01"
697
+ },
698
+ {
699
+ url: "2015-5-paintball.js-recap",
700
+ title: "Paintball.js Recap",
701
+ publishedAt: "2015-05-01"
702
+ },
703
+ {
704
+ url: "2014-01-developing-software-in-costa-rica",
705
+ title: "Developing Software in Costa Rica",
706
+ publishedAt: "2014-01-01"
707
+ }
708
+ ],
709
+ order: 45,
710
+ year: 2010,
711
+ markdown: '---\ntitle: "Costa Rica JS"\nslug: "costa-rica-js"\ndescription: "A JavaScript community founded in 2010 that grew past 2,000 developers through meetups, NodeSchool, and JSConf Costa Rica."\ntech:\n - JavaScript\n - NodeJS\ntype:\n - other\n - lead\nlink: "https://www.meetup.com/costaricajs/"\nimage: "https://gaboesquivel.com/images/bio/nodeschool-costa-rica.jpg"\n\nvideo: "https://vimeo.com/167755778"\nimages:\n - https://gaboesquivel.com/images/work/gaboesquivel-javascript-costarica.png\n - https://gaboesquivel.com/images/gabo-workshop.jpg\n - https://gaboesquivel.com/images/work/nodeschool.jpg\n - https://gaboesquivel.com/images/work/nodeschool-1.jpg\n - https://gaboesquivel.com/images/2016/05/paintballjs.jpg\n - https://gaboesquivel.com/images/work/gaboesquivel-presentation.jpg\nachievements:\n - Founded Costa Rica JS in 2010 and grew it past 2,000 developers.\n - Organized regular meetups, workshops, NodeSchool events, and JSConf Costa Rica.\n - Ran hands-on workshops as Node.js and modern web frameworks arrived in the region.\nstory:\n - Costa Rica JS is a JavaScript community I founded in 2010. It grew past 2,000 developers through meetups, NodeSchool, and JSConf Costa Rica.\n - As founder I organized the meetups, workshops, and conferences. The point was practical skill-building as Node.js and modern web frameworks arrived, not a networking club with a speaker at the front.\n - The community became a place people used to learn, hire, and get hired. Workshops stayed hands-on so the knowledge transferred.\nrelated:\n - url: "2016-06-nodeschool-international-day"\n title: "NodeSchool International Day"\n publishedAt: "2016-06-01"\n - url: "2015-5-paintball.js-recap"\n title: "Paintball.js Recap"\n publishedAt: "2015-05-01"\n - url: "2014-01-developing-software-in-costa-rica"\n title: "Developing Software in Costa Rica"\n publishedAt: "2014-01-01"\norder: 45\nyear: 2010\n---\n\n# Costa Rica JS\n\nA JavaScript community founded in 2010 that grew past 2,000 developers through meetups, NodeSchool, and JSConf Costa Rica.\n',
712
+ markdownPath: "content/projects/costa-rica-js.md"
713
+ },
714
+ {
715
+ title: "CryptoCantinaCR",
716
+ slug: "cryptocantinacr",
717
+ description: "A weekly Costa Rican meetup for open discussion about blockchain, cryptography, and cryptocurrency.",
718
+ tech: [
719
+ "Blockchain"
720
+ ],
721
+ type: [
722
+ "other",
723
+ "lead"
724
+ ],
725
+ link: "https://criptocantina.org",
726
+ image: "https://gaboesquivel.com/images/work/cryptocantina.png",
727
+ images: [
728
+ "https://gaboesquivel.com/images/work/cryptocantina-multi.jpg",
729
+ "https://gaboesquivel.com/images/work/cryptocantina-london-room-2.jpg",
730
+ "https://gaboesquivel.com/images/work/cryptocantina-london-room.jpg",
731
+ "https://gaboesquivel.com/images/work/cryptocantina-london-room-3.jpg",
732
+ "https://gaboesquivel.com/images/work/cryptocantina-london-room-4.jpg"
733
+ ],
734
+ achievements: [
735
+ "Started a weekly Thursday meetup in September 2018 at Central Pub in Paseo Col\xF3n.",
736
+ "Kept the format informal: open discussion instead of presentations or talks.",
737
+ "Brought together people working on blockchain, cryptography, and cryptocurrency in Costa Rica.",
738
+ "Handed the initiative to Karla C\xF3rdoba as it became CriptoCantina.org, a structured education program."
739
+ ],
740
+ story: [
741
+ "CryptoCantinaCR started as a Thursday after-office meetup I helped start in 2018 at Central Pub in Paseo Col\xF3n. It brought together people working on blockchain, cryptography, and cryptocurrency in Costa Rica to talk without a stage.",
742
+ "I kept the format informal on purpose, with no presentations or talks, because the point was conversation rather than filling a speaker calendar.",
743
+ "The meetup later became CriptoCantina.org, a structured education program led by Karla C\xF3rdoba. I started the weekly gathering; she turned it into the school."
744
+ ],
745
+ related: [
746
+ {
747
+ url: "https://gaboesquivel.com/blog/2018-07-costa-rica-crypto-cantina",
748
+ title: "Costa Rica Crypto Cantina",
749
+ publishedAt: "2018-07-01"
750
+ }
751
+ ],
752
+ order: 47,
753
+ year: 2018,
754
+ markdown: '---\ntitle: "CryptoCantinaCR"\nslug: "cryptocantinacr"\ndescription: "A weekly Costa Rican meetup for open discussion about blockchain, cryptography, and cryptocurrency."\ntech:\n - Blockchain\ntype:\n - other\n - lead\nlink: "https://criptocantina.org"\nimage: "https://gaboesquivel.com/images/work/cryptocantina.png"\n\n\nimages:\n - https://gaboesquivel.com/images/work/cryptocantina-multi.jpg\n - https://gaboesquivel.com/images/work/cryptocantina-london-room-2.jpg\n - https://gaboesquivel.com/images/work/cryptocantina-london-room.jpg\n - https://gaboesquivel.com/images/work/cryptocantina-london-room-3.jpg\n - https://gaboesquivel.com/images/work/cryptocantina-london-room-4.jpg\nachievements:\n - Started a weekly Thursday meetup in September 2018 at Central Pub in Paseo Col\xF3n.\n - "Kept the format informal: open discussion instead of presentations or talks."\n - Brought together people working on blockchain, cryptography, and cryptocurrency in Costa Rica.\n - Handed the initiative to Karla C\xF3rdoba as it became CriptoCantina.org, a structured education program.\nstory:\n - "CryptoCantinaCR started as a Thursday after-office meetup I helped start in 2018 at Central Pub in Paseo Col\xF3n. It brought together people working on blockchain, cryptography, and cryptocurrency in Costa Rica to talk without a stage."\n - I kept the format informal on purpose, with no presentations or talks, because the point was conversation rather than filling a speaker calendar.\n - The meetup later became CriptoCantina.org, a structured education program led by Karla C\xF3rdoba. I started the weekly gathering; she turned it into the school.\nrelated:\n - url: "https://gaboesquivel.com/blog/2018-07-costa-rica-crypto-cantina"\n title: "Costa Rica Crypto Cantina"\n publishedAt: "2018-07-01"\norder: 47\nyear: 2018\n---\n\n# CryptoCantinaCR\n\nA weekly Costa Rican meetup for open discussion about blockchain, cryptography, and cryptocurrency.\n',
755
+ markdownPath: "content/projects/cryptocantinacr.md"
756
+ },
757
+ {
758
+ title: "Earth",
759
+ slug: "earth",
760
+ description: "EARTH University's website, WordPress content system, responsive blog, and newsletter for agricultural-science education.",
761
+ tech: [
762
+ "JavaScript",
763
+ "CSS",
764
+ "Wordpress"
765
+ ],
766
+ type: [
767
+ "other",
768
+ "frontend"
769
+ ],
770
+ image: "https://gaboesquivel.com/images/work/wordpress-earth-pai.jpg",
771
+ images: [],
772
+ achievements: [
773
+ "Developed a content management system for EARTH University's website.",
774
+ "Designed a responsive and accessible blog for the university community."
775
+ ],
776
+ story: [
777
+ "I built EARTH University's WordPress site, blog, and newsletter while at IntergraphiDesign, my first development job."
778
+ ],
779
+ order: 38,
780
+ year: 2008,
781
+ markdown: `---
782
+ title: "Earth"
783
+ slug: "earth"
784
+ description: "EARTH University's website, WordPress content system, responsive blog, and newsletter for agricultural-science education."
785
+ tech:
786
+ - JavaScript
787
+ - CSS
788
+ - Wordpress
789
+ type:
790
+ - other
791
+ - frontend
792
+ image: "https://gaboesquivel.com/images/work/wordpress-earth-pai.jpg"
793
+
794
+
795
+ images: []
796
+ achievements:
797
+ - Developed a content management system for EARTH University's website.
798
+ - Designed a responsive and accessible blog for the university community.
799
+ story:
800
+ - I built EARTH University's WordPress site, blog, and newsletter while at IntergraphiDesign, my first development job.
801
+ order: 38
802
+ year: 2008
803
+ ---
804
+
805
+ # Earth
806
+
807
+ EARTH University's website, WordPress content system, responsive blog, and newsletter for agricultural-science education.
808
+ `,
809
+ markdownPath: "content/projects/earth.md"
810
+ },
811
+ {
812
+ title: "Eat Arcade",
813
+ slug: "eat-arcade",
814
+ description: "An SMS restaurant subscription service combining curated dishes, text messaging, online payments, and a web application.",
815
+ tech: [
816
+ "NodeJS",
817
+ "AngularJS",
818
+ "MongoDB",
819
+ "Heroku",
820
+ "Bootstrap",
821
+ "Stripe",
822
+ "Twilio",
823
+ "CSS",
824
+ "Lodash"
825
+ ],
826
+ type: [
827
+ "contract",
828
+ "frontend"
829
+ ],
830
+ link: "http://www.eatarcade.com/",
831
+ image: "https://gaboesquivel.com/images/work/eatarcade.jpg",
832
+ images: [],
833
+ achievements: [
834
+ "Designed and built an SMS-based subscription system for restaurant promotions.",
835
+ "Integrated Twilio so subscription messages went out as SMS.",
836
+ "Developed a full-stack solution using Node.js, MongoDB, and AngularJS."
837
+ ],
838
+ story: [
839
+ "I built an SMS subscription for curated dishes from New York City restaurants, so diners received recommendations as text messages.",
840
+ "The application ran on Node.js, Express.js, and AngularJS, with Twilio sending the messages, Stripe handling payments, and Heroku hosting the app."
841
+ ],
842
+ order: 24,
843
+ year: 2013,
844
+ markdown: '---\ntitle: "Eat Arcade"\nslug: "eat-arcade"\ndescription: "An SMS restaurant subscription service combining curated dishes, text messaging, online payments, and a web application."\ntech:\n - NodeJS\n - AngularJS\n - MongoDB\n - Heroku\n - Bootstrap\n - Stripe\n - Twilio\n - CSS\n - Lodash\ntype:\n - contract\n - frontend\nlink: "http://www.eatarcade.com/"\nimage: "https://gaboesquivel.com/images/work/eatarcade.jpg"\n\n\nimages: []\nachievements:\n - Designed and built an SMS-based subscription system for restaurant promotions.\n - Integrated Twilio so subscription messages went out as SMS.\n - Developed a full-stack solution using Node.js, MongoDB, and AngularJS.\nstory:\n - I built an SMS subscription for curated dishes from New York City restaurants, so diners received recommendations as text messages.\n - The application ran on Node.js, Express.js, and AngularJS, with Twilio sending the messages, Stripe handling payments, and Heroku hosting the app.\norder: 24\nyear: 2013\n---\n\n# Eat Arcade\n\nAn SMS restaurant subscription service combining curated dishes, text messaging, online payments, and a web application.\n',
845
+ markdownPath: "content/projects/eat-arcade.md"
846
+ },
847
+ {
848
+ title: "Elder Scrolls Online",
849
+ slug: "elder-scrolls-online",
850
+ description: "The official Elder Scrolls Online website for game news, guides, forums, and community content.",
851
+ tech: [
852
+ "PHP",
853
+ "JavaScript",
854
+ "jQuery",
855
+ "Facebook API",
856
+ "Twitter API"
857
+ ],
858
+ type: [
859
+ "contract",
860
+ "frontend"
861
+ ],
862
+ link: "http://elderscrollsonline.com",
863
+ image: "https://gaboesquivel.com/images/work/elder-scrolls.jpg",
864
+ images: [],
865
+ achievements: [
866
+ "Designed and built the community website for game news, guides, and forums.",
867
+ "Rebuilt navigation so news, guides, and forums were reachable without hunting.",
868
+ "Integrated social media features into the community pages."
869
+ ],
870
+ story: [
871
+ "The official Elder Scrolls Online website carried game news, guides, and forums for the player community. I designed and built the site, and most of the work went into the navigation paths between those sections.",
872
+ "I balanced the game's visual design against the functionality players came for, and integrated social media features into the community pages."
873
+ ],
874
+ order: 21,
875
+ year: 2013,
876
+ markdown: `---
877
+ title: "Elder Scrolls Online"
878
+ slug: "elder-scrolls-online"
879
+ description: "The official Elder Scrolls Online website for game news, guides, forums, and community content."
880
+ tech:
881
+ - PHP
882
+ - JavaScript
883
+ - jQuery
884
+ - Facebook API
885
+ - Twitter API
886
+ type:
887
+ - contract
888
+ - frontend
889
+ link: "http://elderscrollsonline.com"
890
+ image: "https://gaboesquivel.com/images/work/elder-scrolls.jpg"
891
+
892
+
893
+ images: []
894
+ achievements:
895
+ - Designed and built the community website for game news, guides, and forums.
896
+ - Rebuilt navigation so news, guides, and forums were reachable without hunting.
897
+ - Integrated social media features into the community pages.
898
+ story:
899
+ - The official Elder Scrolls Online website carried game news, guides, and forums for the player community. I designed and built the site, and most of the work went into the navigation paths between those sections.
900
+ - I balanced the game's visual design against the functionality players came for, and integrated social media features into the community pages.
901
+ order: 21
902
+ year: 2013
903
+ ---
904
+
905
+ # Elder Scrolls Online
906
+
907
+ The official Elder Scrolls Online website for game news, guides, forums, and community content.
908
+ `,
909
+ markdownPath: "content/projects/elder-scrolls-online.md"
910
+ },
911
+ {
912
+ title: "Emanate",
913
+ slug: "emanate",
914
+ description: "A blockchain music-streaming platform with token-based artist payments and back-office revenue tools.",
915
+ role: "Software Engineer",
916
+ tech: [
917
+ "ReactJS",
918
+ "TypeScript",
919
+ "Antelope",
920
+ "AWS",
921
+ "Tailwind"
922
+ ],
923
+ type: [
924
+ "web3",
925
+ "contract",
926
+ "frontend"
927
+ ],
928
+ link: "https://emanate.live",
929
+ image: "https://gaboesquivel.com/images/work/emanate.png",
930
+ video: "https://www.youtube.com/watch?v=qjmn7M7YC9g",
931
+ images: [],
932
+ achievements: [
933
+ "Maintained the React streaming platform and tuned its performance.",
934
+ "Built back-office tools for distributing artist revenue.",
935
+ "Integrated AWS services for streaming and back-office workloads."
936
+ ],
937
+ story: [
938
+ "Emanate is a Web3 marketplace for the music industry covering creation, distribution, and monetization. I maintained the React streaming web app and tuned its performance.",
939
+ "I built the back-office tools that distributed artist revenue as token payments.",
940
+ "I also integrated AWS services for the streaming app and the back office. The work was maintenance and payments, not a rewrite."
941
+ ],
942
+ experienceCompany: "Emanate",
943
+ order: 8,
944
+ year: 2019,
945
+ markdown: '---\ntitle: "Emanate"\nslug: "emanate"\ndescription: "A blockchain music-streaming platform with token-based artist payments and back-office revenue tools."\nrole: "Software Engineer"\ntech:\n - ReactJS\n - TypeScript\n - Antelope\n - AWS\n - Tailwind\ntype:\n - web3\n - contract\n - frontend\nlink: "https://emanate.live"\nimage: "https://gaboesquivel.com/images/work/emanate.png"\n\nvideo: "https://www.youtube.com/watch?v=qjmn7M7YC9g"\nimages: []\nachievements:\n - Maintained the React streaming platform and tuned its performance.\n - Built back-office tools for distributing artist revenue.\n - Integrated AWS services for streaming and back-office workloads.\nstory:\n - Emanate is a Web3 marketplace for the music industry covering creation, distribution, and monetization. I maintained the React streaming web app and tuned its performance.\n - I built the back-office tools that distributed artist revenue as token payments.\n - I also integrated AWS services for the streaming app and the back office. The work was maintenance and payments, not a rewrite.\nexperienceCompany: "Emanate"\norder: 8\nyear: 2019\n---\n\n# Emanate\n\nA blockchain music-streaming platform with token-based artist payments and back-office revenue tools.\n',
946
+ markdownPath: "content/projects/emanate.md"
947
+ },
948
+ {
949
+ title: "EOS Costa Rica",
950
+ slug: "eos-costa-rica",
951
+ description: "A blockchain infrastructure and development company operating EOSIO validators and delivering public and private-chain systems.",
952
+ role: "Lead Engineer",
953
+ tech: [
954
+ "Antelope",
955
+ "C++",
956
+ "PostgreSQL",
957
+ "NodeJS",
958
+ "GraphQL",
959
+ "ReactJS",
960
+ "Tailwind",
961
+ "GCP",
962
+ "Azure",
963
+ "Docker",
964
+ "Terraform",
965
+ "TypeScript"
966
+ ],
967
+ type: [
968
+ "web3",
969
+ "full-time",
970
+ "lead",
971
+ "featured",
972
+ "frontend",
973
+ "backend",
974
+ "fullstack",
975
+ "startup",
976
+ "institution"
977
+ ],
978
+ link: "https://eoscostarica.io",
979
+ image: "https://gaboesquivel.com/images/work/eoscostarica.png",
980
+ repo: "https://github.com/eoscostarica",
981
+ video: "https://www.youtube.com/watch?v=-1y0fGs8Xgw&",
982
+ images: [],
983
+ achievements: [
984
+ "Helped launch EOS mainnet and operated EOSIO validators.",
985
+ "Built a private EOSIO chain for Grant Thornton Labs on Azure, Terraform, EOSIO, and React; shipped an MVP for intercompany transactions and tax workflows using a stablecoin, hashing, and IPFS.",
986
+ "Built the EOS Rate frontend with React and Styled Components."
987
+ ],
988
+ story: [
989
+ "I helped launch the EOS mainnet and operated validator nodes across EOSIO-based networks.",
990
+ "I built a private EOSIO chain for Grant Thornton Labs on Azure, Terraform, EOSIO, and React. The MVP covered intercompany transactions and tax workflows with a stablecoin, hashing, and IPFS.",
991
+ "I also ran open-source work and developer relations, including workshops around TicoBlockchain.cr and CryptoCantinaCR."
992
+ ],
993
+ experienceCompany: "EOS Costa Rica",
994
+ order: 11,
995
+ year: 2018,
996
+ markdown: '---\ntitle: "EOS Costa Rica"\nslug: "eos-costa-rica"\ndescription: "A blockchain infrastructure and development company operating EOSIO validators and delivering public and private-chain systems."\nrole: "Lead Engineer"\ntech:\n - Antelope\n - C++\n - PostgreSQL\n - NodeJS\n - GraphQL\n - ReactJS\n - Tailwind\n - GCP\n - Azure\n - Docker\n - Terraform\n - TypeScript\ntype:\n - web3\n - full-time\n - lead\n - featured\n - frontend\n - backend\n - fullstack\n - startup\n - institution\nlink: "https://eoscostarica.io"\nimage: "https://gaboesquivel.com/images/work/eoscostarica.png"\nrepo: "https://github.com/eoscostarica"\nvideo: "https://www.youtube.com/watch?v=-1y0fGs8Xgw&"\nimages: []\nachievements:\n - Helped launch EOS mainnet and operated EOSIO validators.\n - Built a private EOSIO chain for Grant Thornton Labs on Azure, Terraform, EOSIO, and React; shipped an MVP for intercompany transactions and tax workflows using a stablecoin, hashing, and IPFS.\n - Built the EOS Rate frontend with React and Styled Components.\nstory:\n - I helped launch the EOS mainnet and operated validator nodes across EOSIO-based networks.\n - I built a private EOSIO chain for Grant Thornton Labs on Azure, Terraform, EOSIO, and React. The MVP covered intercompany transactions and tax workflows with a stablecoin, hashing, and IPFS.\n - I also ran open-source work and developer relations, including workshops around TicoBlockchain.cr and CryptoCantinaCR.\nexperienceCompany: "EOS Costa Rica"\norder: 11\nyear: 2018\n---\n\n# EOS Costa Rica\n\nA blockchain infrastructure and development company operating EOSIO validators and delivering public and private-chain systems.\n',
997
+ markdownPath: "content/projects/eos-costa-rica.md"
998
+ },
999
+ {
1000
+ title: "EOS Rate",
1001
+ slug: "eos-rate",
1002
+ description: "A community rating tool for EOS block producers with onchain ratings, GraphQL data, and a radial comparison interface.",
1003
+ tech: [
1004
+ "Antelope",
1005
+ "C++",
1006
+ "GraphQL",
1007
+ "ReactJS",
1008
+ "GCP",
1009
+ "Docker",
1010
+ "TypeScript",
1011
+ "PostgreSQL"
1012
+ ],
1013
+ type: [
1014
+ "web3",
1015
+ "oss",
1016
+ "frontend",
1017
+ "backend",
1018
+ "fullstack"
1019
+ ],
1020
+ link: "https://eosrate.io",
1021
+ image: "https://gaboesquivel.com/images/work/eosrate.png",
1022
+ repo: "https://github.com/eoscostarica/eos-rate",
1023
+ video: "https://www.youtube.com/watch?v=saZnZqJsMhk",
1024
+ images: [],
1025
+ achievements: [
1026
+ "Designed and implemented an onchain rating system for EOS block producers.",
1027
+ "Built a radial graph interface to compare community ratings side by side.",
1028
+ "Developed a GraphQL API for reading ratings and driving the comparison UI."
1029
+ ],
1030
+ story: [
1031
+ "EOS Rate is a community tool for rating EOS block producers. Ratings live onchain; the interface is a radial graph so you can compare producers at a glance.",
1032
+ "I designed the architecture and chose the stack: onchain storage, a GraphQL data layer, and a React comparison UI.",
1033
+ "The job was to make producer reputation readable. Participants could see how the community rated a producer before they voted."
1034
+ ],
1035
+ order: 12,
1036
+ year: 2018,
1037
+ markdown: '---\ntitle: "EOS Rate"\nslug: "eos-rate"\ndescription: "A community rating tool for EOS block producers with onchain ratings, GraphQL data, and a radial comparison interface."\ntech:\n - Antelope\n - C++\n - GraphQL\n - ReactJS\n - GCP\n - Docker\n - TypeScript\n - PostgreSQL\ntype:\n - web3\n - oss\n - frontend\n - backend\n - fullstack\nlink: "https://eosrate.io"\nimage: "https://gaboesquivel.com/images/work/eosrate.png"\nrepo: "https://github.com/eoscostarica/eos-rate"\nvideo: "https://www.youtube.com/watch?v=saZnZqJsMhk"\nimages: []\nachievements:\n - Designed and implemented an onchain rating system for EOS block producers.\n - Built a radial graph interface to compare community ratings side by side.\n - Developed a GraphQL API for reading ratings and driving the comparison UI.\nstory:\n - EOS Rate is a community tool for rating EOS block producers. Ratings live onchain; the interface is a radial graph so you can compare producers at a glance.\n - "I designed the architecture and chose the stack: onchain storage, a GraphQL data layer, and a React comparison UI."\n - The job was to make producer reputation readable. Participants could see how the community rated a producer before they voted.\norder: 12\nyear: 2018\n---\n\n# EOS Rate\n\nA community rating tool for EOS block producers with onchain ratings, GraphQL data, and a radial comparison interface.\n',
1038
+ markdownPath: "content/projects/eos-rate.md"
1039
+ },
1040
+ {
1041
+ title: "Fantasy Tennis",
1042
+ slug: "fantasy-tennis",
1043
+ description: "A fantasy-tennis strategy game for ATP, WTA, and Grand Slam tournaments with responsive gameplay and live data.",
1044
+ tech: [
1045
+ "JavaScript",
1046
+ "CSS"
1047
+ ],
1048
+ type: [
1049
+ "contract",
1050
+ "frontend",
1051
+ "backend",
1052
+ "fullstack"
1053
+ ],
1054
+ link: "https://www.fanslam.us",
1055
+ image: "https://gaboesquivel.com/images/work/fantasy-tennis.jpg",
1056
+ images: [],
1057
+ achievements: [
1058
+ "Designed and developed a strategic fantasy tennis gaming platform.",
1059
+ "Built a responsive UI so the game played on phones as well as desktops.",
1060
+ "Integrated dynamic tournament data for real-time game updates."
1061
+ ],
1062
+ story: [
1063
+ "FanSlam Fantasy Tennis is a strategy game for ATP, WTA, and Grand Slam tournaments. I designed and built both the frontend and the backend, including the game's strategy mechanics and interface.",
1064
+ "I built a responsive UI so the game played the same on phones and desktops, and integrated tournament data so games updated with realtime results.",
1065
+ "The game rules had to follow how tennis tournaments are structured, so sports statistics fed directly into the game mechanics."
1066
+ ],
1067
+ order: 40,
1068
+ year: 2013,
1069
+ markdown: `---
1070
+ title: "Fantasy Tennis"
1071
+ slug: "fantasy-tennis"
1072
+ description: "A fantasy-tennis strategy game for ATP, WTA, and Grand Slam tournaments with responsive gameplay and live data."
1073
+ tech:
1074
+ - JavaScript
1075
+ - CSS
1076
+ type:
1077
+ - contract
1078
+ - frontend
1079
+ - backend
1080
+ - fullstack
1081
+ link: "https://www.fanslam.us"
1082
+ image: "https://gaboesquivel.com/images/work/fantasy-tennis.jpg"
1083
+
1084
+
1085
+ images: []
1086
+ achievements:
1087
+ - Designed and developed a strategic fantasy tennis gaming platform.
1088
+ - Built a responsive UI so the game played on phones as well as desktops.
1089
+ - Integrated dynamic tournament data for real-time game updates.
1090
+ story:
1091
+ - FanSlam Fantasy Tennis is a strategy game for ATP, WTA, and Grand Slam tournaments. I designed and built both the frontend and the backend, including the game's strategy mechanics and interface.
1092
+ - I built a responsive UI so the game played the same on phones and desktops, and integrated tournament data so games updated with realtime results.
1093
+ - The game rules had to follow how tennis tournaments are structured, so sports statistics fed directly into the game mechanics.
1094
+ order: 40
1095
+ year: 2013
1096
+ ---
1097
+
1098
+ # Fantasy Tennis
1099
+
1100
+ A fantasy-tennis strategy game for ATP, WTA, and Grand Slam tournaments with responsive gameplay and live data.
1101
+ `,
1102
+ markdownPath: "content/projects/fantasy-tennis.md"
1103
+ },
1104
+ {
1105
+ title: "Fantasy Top Shots",
1106
+ slug: "fantasy-top-shots",
1107
+ description: "A Flow Hackathon mobile game using NBA Top Shot NFTs through a React Native and Expo interface.",
1108
+ tech: [
1109
+ "Flow",
1110
+ "NFT",
1111
+ "ReactJS",
1112
+ "React Native",
1113
+ "Expo",
1114
+ "Tailwind",
1115
+ "TypeScript"
1116
+ ],
1117
+ type: [
1118
+ "web3",
1119
+ "hackathon",
1120
+ "mobile"
1121
+ ],
1122
+ link: "https://fantasy-top-shot.vercel.app",
1123
+ image: "https://gaboesquivel.com/images/work/fantasy-top-shots.png",
1124
+ repo: "https://github.com/bitcashorg/fantasy-top-shot",
1125
+ video: "https://www.youtube.com/watch?v=Il2aiKhy_ug",
1126
+ images: [],
1127
+ achievements: [
1128
+ "Designed and developed the mobile game using Flow blockchain technology.",
1129
+ "Wired NBA Top Shot NFTs into the game so collections could be used as a roster.",
1130
+ "Implemented the responsive UI and gameplay mechanics with React Native and Expo."
1131
+ ],
1132
+ story: [
1133
+ "Fantasy Top Shots was built for the 2022 Flow Hackathon as a mobile game where players used their NBA Top Shot NFT collections in a fantasy sports format.",
1134
+ "I worked on both design and development, and the game used the Flow blockchain to handle NFT transactions during play.",
1135
+ "We built it with collaborators at bitcashorg. The game uses Top Shot collections as a roster instead of a separate inventory screen."
1136
+ ],
1137
+ order: 13,
1138
+ year: 2022,
1139
+ markdown: '---\ntitle: "Fantasy Top Shots"\nslug: "fantasy-top-shots"\ndescription: "A Flow Hackathon mobile game using NBA Top Shot NFTs through a React Native and Expo interface."\ntech:\n - Flow\n - NFT\n - ReactJS\n - React Native\n - Expo\n - Tailwind\n - TypeScript\ntype:\n - web3\n - hackathon\n - mobile\nlink: "https://fantasy-top-shot.vercel.app"\nimage: "https://gaboesquivel.com/images/work/fantasy-top-shots.png"\nrepo: "https://github.com/bitcashorg/fantasy-top-shot"\nvideo: "https://www.youtube.com/watch?v=Il2aiKhy_ug"\nimages: []\nachievements:\n - Designed and developed the mobile game using Flow blockchain technology.\n - Wired NBA Top Shot NFTs into the game so collections could be used as a roster.\n - Implemented the responsive UI and gameplay mechanics with React Native and Expo.\nstory:\n - Fantasy Top Shots was built for the 2022 Flow Hackathon as a mobile game where players used their NBA Top Shot NFT collections in a fantasy sports format.\n - I worked on both design and development, and the game used the Flow blockchain to handle NFT transactions during play.\n - We built it with collaborators at bitcashorg. The game uses Top Shot collections as a roster instead of a separate inventory screen.\norder: 13\nyear: 2022\n---\n\n# Fantasy Top Shots\n\nA Flow Hackathon mobile game using NBA Top Shot NFTs through a React Native and Expo interface.\n',
1140
+ markdownPath: "content/projects/fantasy-top-shots.md"
1141
+ },
1142
+ {
1143
+ title: "Gridium",
1144
+ slug: "gridium",
1145
+ description: "An energy-analytics application with interactive charts for monitoring commercial-building consumption data.",
1146
+ tech: [
1147
+ "JavaScript",
1148
+ "Data Charts",
1149
+ "CSS",
1150
+ "Bootstrap",
1151
+ "Heroku"
1152
+ ],
1153
+ type: [
1154
+ "contract",
1155
+ "frontend"
1156
+ ],
1157
+ link: "https://gridium.com/",
1158
+ image: "https://gaboesquivel.com/images/work/gridium.png",
1159
+ images: [],
1160
+ achievements: [
1161
+ "Built the first version of a data visualization app for energy consumption analytics.",
1162
+ "Implemented interactive charts for realtime energy monitoring.",
1163
+ "Tuned chart layouts for readability."
1164
+ ],
1165
+ story: [
1166
+ "Gridium was an energy analytics prototype for visualizing consumption data collected from commercial buildings. I built the first version of the application.",
1167
+ "Its interactive charts tracked energy usage in realtime so users could spot trends and anomalies in a building's consumption, and I tuned the layouts so those readings stayed legible."
1168
+ ],
1169
+ order: 34,
1170
+ year: 2013,
1171
+ markdown: `---
1172
+ title: "Gridium"
1173
+ slug: "gridium"
1174
+ description: "An energy-analytics application with interactive charts for monitoring commercial-building consumption data."
1175
+ tech:
1176
+ - JavaScript
1177
+ - Data Charts
1178
+ - CSS
1179
+ - Bootstrap
1180
+ - Heroku
1181
+ type:
1182
+ - contract
1183
+ - frontend
1184
+ link: "https://gridium.com/"
1185
+ image: "https://gaboesquivel.com/images/work/gridium.png"
1186
+
1187
+
1188
+ images: []
1189
+ achievements:
1190
+ - Built the first version of a data visualization app for energy consumption analytics.
1191
+ - Implemented interactive charts for realtime energy monitoring.
1192
+ - Tuned chart layouts for readability.
1193
+ story:
1194
+ - Gridium was an energy analytics prototype for visualizing consumption data collected from commercial buildings. I built the first version of the application.
1195
+ - Its interactive charts tracked energy usage in realtime so users could spot trends and anomalies in a building's consumption, and I tuned the layouts so those readings stayed legible.
1196
+ order: 34
1197
+ year: 2013
1198
+ ---
1199
+
1200
+ # Gridium
1201
+
1202
+ An energy-analytics application with interactive charts for monitoring commercial-building consumption data.
1203
+ `,
1204
+ markdownPath: "content/projects/gridium.md"
1205
+ },
1206
+ {
1207
+ title: "ITS",
1208
+ slug: "its",
1209
+ description: "ITS InfoCom's corporate website, content-management system, and CRM integration for remote infrastructure services.",
1210
+ tech: [
1211
+ "JavaScript",
1212
+ "CSS",
1213
+ "PHP",
1214
+ "CMS"
1215
+ ],
1216
+ type: [
1217
+ "other",
1218
+ "frontend"
1219
+ ],
1220
+ image: "https://gaboesquivel.com/images/work/website-its.jpg",
1221
+ images: [],
1222
+ achievements: [
1223
+ "Deployed a company-wide CMS and CRM integration for ITS InfoCom."
1224
+ ],
1225
+ story: [
1226
+ "At IntergraphiDesign, my first development job, I built ITS InfoCom's corporate website, CMS, and CRM integration."
1227
+ ],
1228
+ order: 42,
1229
+ year: 2008,
1230
+ markdown: `---
1231
+ title: "ITS"
1232
+ slug: "its"
1233
+ description: "ITS InfoCom's corporate website, content-management system, and CRM integration for remote infrastructure services."
1234
+ tech:
1235
+ - JavaScript
1236
+ - CSS
1237
+ - PHP
1238
+ - CMS
1239
+ type:
1240
+ - other
1241
+ - frontend
1242
+ image: "https://gaboesquivel.com/images/work/website-its.jpg"
1243
+
1244
+
1245
+ images: []
1246
+ achievements:
1247
+ - Deployed a company-wide CMS and CRM integration for ITS InfoCom.
1248
+ story:
1249
+ - At IntergraphiDesign, my first development job, I built ITS InfoCom's corporate website, CMS, and CRM integration.
1250
+ order: 42
1251
+ year: 2008
1252
+ ---
1253
+
1254
+ # ITS
1255
+
1256
+ ITS InfoCom's corporate website, content-management system, and CRM integration for remote infrastructure services.
1257
+ `,
1258
+ markdownPath: "content/projects/its.md"
1259
+ },
1260
+ {
1261
+ title: "Jockey Hollow Bar and Kitchen Menu Kiosk App",
1262
+ slug: "jockey-hollow-bar-and-kitchen-menu-kiosk-app",
1263
+ description: "A responsive tablet menu kiosk with Google Sheets updates and performance tuned for restaurant service.",
1264
+ tech: [
1265
+ "SASS",
1266
+ "jQuery",
1267
+ "Lodash",
1268
+ "Grapnel.js",
1269
+ "Grunt",
1270
+ "NodeJS",
1271
+ "Heroku",
1272
+ "Divshot"
1273
+ ],
1274
+ type: [
1275
+ "contract",
1276
+ "frontend"
1277
+ ],
1278
+ image: "https://gaboesquivel.com/images/work/jockey-hollow-menu.png",
1279
+ images: [],
1280
+ achievements: [
1281
+ "Built a menu kiosk web app for the restaurant's tablets.",
1282
+ "Wired Google Spreadsheets so kitchen staff could change the menu without a deploy.",
1283
+ "Tuned performance for tablet hardware."
1284
+ ],
1285
+ story: [
1286
+ "At Jockey Hollow Bar & Kitchen I built the Menu Kiosk App, a responsive web application patrons used on tablet kiosks to browse the menu.",
1287
+ "Restaurant menus change often, so the app read its content from Google Spreadsheets and staff kept items current without touching code. I was the only developer and tuned the interface for tablet performance."
1288
+ ],
1289
+ order: 26,
1290
+ year: 2013,
1291
+ markdown: `---
1292
+ title: "Jockey Hollow Bar and Kitchen Menu Kiosk App"
1293
+ slug: "jockey-hollow-bar-and-kitchen-menu-kiosk-app"
1294
+ description: "A responsive tablet menu kiosk with Google Sheets updates and performance tuned for restaurant service."
1295
+ tech:
1296
+ - SASS
1297
+ - jQuery
1298
+ - Lodash
1299
+ - Grapnel.js
1300
+ - Grunt
1301
+ - NodeJS
1302
+ - Heroku
1303
+ - Divshot
1304
+ type:
1305
+ - contract
1306
+ - frontend
1307
+ image: "https://gaboesquivel.com/images/work/jockey-hollow-menu.png"
1308
+
1309
+
1310
+ images: []
1311
+ achievements:
1312
+ - Built a menu kiosk web app for the restaurant's tablets.
1313
+ - Wired Google Spreadsheets so kitchen staff could change the menu without a deploy.
1314
+ - Tuned performance for tablet hardware.
1315
+ story:
1316
+ - At Jockey Hollow Bar & Kitchen I built the Menu Kiosk App, a responsive web application patrons used on tablet kiosks to browse the menu.
1317
+ - Restaurant menus change often, so the app read its content from Google Spreadsheets and staff kept items current without touching code. I was the only developer and tuned the interface for tablet performance.
1318
+ order: 26
1319
+ year: 2013
1320
+ ---
1321
+
1322
+ # Jockey Hollow Bar and Kitchen Menu Kiosk App
1323
+
1324
+ A responsive tablet menu kiosk with Google Sheets updates and performance tuned for restaurant service.
1325
+ `,
1326
+ markdownPath: "content/projects/jockey-hollow-bar-and-kitchen-menu-kiosk-app.md"
1327
+ },
1328
+ {
1329
+ title: "Jockey Hollow Bar and Kitchen",
1330
+ slug: "jockey-hollow-bar-and-kitchen",
1331
+ description: "A responsive site for Jockey Hollow Bar and Kitchen, a historic mansion with four dining concepts.",
1332
+ tech: [
1333
+ "SASS",
1334
+ "jQuery",
1335
+ "Lodash",
1336
+ "Grapnel.js",
1337
+ "Grunt",
1338
+ "NodeJS",
1339
+ "Heroku",
1340
+ "Divshot"
1341
+ ],
1342
+ type: [
1343
+ "contract",
1344
+ "frontend"
1345
+ ],
1346
+ link: "http://www.jockeyhollowbarandkitchen.com/",
1347
+ image: "https://gaboesquivel.com/images/work/jockey-hollow.png",
1348
+ images: [],
1349
+ achievements: [
1350
+ "Built a fully responsive landing page for the restaurant's four dining concepts.",
1351
+ "Cut page weight so the landing page loaded on the connections diners actually had."
1352
+ ],
1353
+ story: [
1354
+ "Historic-mansion restaurant with four dining concepts; I built the responsive landing page with SASS, jQuery, and Grunt, deployed on Heroku."
1355
+ ],
1356
+ order: 25,
1357
+ year: 2013,
1358
+ markdown: `---
1359
+ title: "Jockey Hollow Bar and Kitchen"
1360
+ slug: "jockey-hollow-bar-and-kitchen"
1361
+ description: "A responsive site for Jockey Hollow Bar and Kitchen, a historic mansion with four dining concepts."
1362
+ tech:
1363
+ - SASS
1364
+ - jQuery
1365
+ - Lodash
1366
+ - Grapnel.js
1367
+ - Grunt
1368
+ - NodeJS
1369
+ - Heroku
1370
+ - Divshot
1371
+ type:
1372
+ - contract
1373
+ - frontend
1374
+ link: "http://www.jockeyhollowbarandkitchen.com/"
1375
+ image: "https://gaboesquivel.com/images/work/jockey-hollow.png"
1376
+
1377
+
1378
+ images: []
1379
+ achievements:
1380
+ - Built a fully responsive landing page for the restaurant's four dining concepts.
1381
+ - Cut page weight so the landing page loaded on the connections diners actually had.
1382
+ story:
1383
+ - Historic-mansion restaurant with four dining concepts; I built the responsive landing page with SASS, jQuery, and Grunt, deployed on Heroku.
1384
+ order: 25
1385
+ year: 2013
1386
+ ---
1387
+
1388
+ # Jockey Hollow Bar and Kitchen
1389
+
1390
+ A responsive site for Jockey Hollow Bar and Kitchen, a historic mansion with four dining concepts.
1391
+ `,
1392
+ markdownPath: "content/projects/jockey-hollow-bar-and-kitchen.md"
1393
+ },
1394
+ {
1395
+ title: "Knowledge.io",
1396
+ slug: "knowledge-io",
1397
+ description: "A tokenized knowledge platform with an ERC-20 token, marketplace, wallet dashboard, and mobile trivia game.",
1398
+ role: "Software Engineer",
1399
+ tech: [
1400
+ "TypeScript",
1401
+ "Ethereum",
1402
+ "Ethers",
1403
+ "Solidity",
1404
+ "AWS",
1405
+ "Serverless",
1406
+ "GraphQL",
1407
+ "React Native",
1408
+ "ReactJS",
1409
+ "NodeJS",
1410
+ "PostgreSQL"
1411
+ ],
1412
+ type: [
1413
+ "web3",
1414
+ "contract",
1415
+ "oss",
1416
+ "frontend",
1417
+ "backend",
1418
+ "fullstack"
1419
+ ],
1420
+ link: "https://github.com/knowledge/ethereum-contracts",
1421
+ image: "https://gaboesquivel.com/images/work/knowledge.png",
1422
+ repo: "https://github.com/knowledge",
1423
+ images: [],
1424
+ achievements: [
1425
+ "Deployed Knowledge.io's ERC-20 token for the 2018 mainnet ICO.",
1426
+ "Implemented smart contracts for token rewards and transactions.",
1427
+ "Built a serverless AWS infrastructure for the token, marketplace, and wallet services.",
1428
+ "Built the React and Web3.js marketplace and wallet dashboard around the ERC-20 token.",
1429
+ "Maintained the React Native trivia game as the token-reward client."
1430
+ ],
1431
+ story: [
1432
+ "Knowledge is a platform that rewards sharing information with an ERC-20 token. I built the token architecture and the systems around the 2018 mainnet ICO.",
1433
+ "I implemented smart contracts for token rewards and transactions, then built a serverless AWS stack for the token, marketplace, and wallet services.",
1434
+ "I also built the marketplace and wallet screens in React and Web3.js, and maintained the React Native trivia game as the reward client."
1435
+ ],
1436
+ experienceCompany: "Knowledge",
1437
+ order: 17,
1438
+ year: 2017,
1439
+ markdown: `---
1440
+ title: "Knowledge.io"
1441
+ slug: "knowledge-io"
1442
+ description: "A tokenized knowledge platform with an ERC-20 token, marketplace, wallet dashboard, and mobile trivia game."
1443
+ role: "Software Engineer"
1444
+ tech:
1445
+ - TypeScript
1446
+ - Ethereum
1447
+ - Ethers
1448
+ - Solidity
1449
+ - AWS
1450
+ - Serverless
1451
+ - GraphQL
1452
+ - React Native
1453
+ - ReactJS
1454
+ - NodeJS
1455
+ - PostgreSQL
1456
+ type:
1457
+ - web3
1458
+ - contract
1459
+ - oss
1460
+ - frontend
1461
+ - backend
1462
+ - fullstack
1463
+ link: "https://github.com/knowledge/ethereum-contracts"
1464
+ image: "https://gaboesquivel.com/images/work/knowledge.png"
1465
+ repo: "https://github.com/knowledge"
1466
+
1467
+ images: []
1468
+ achievements:
1469
+ - Deployed Knowledge.io's ERC-20 token for the 2018 mainnet ICO.
1470
+ - Implemented smart contracts for token rewards and transactions.
1471
+ - Built a serverless AWS infrastructure for the token, marketplace, and wallet services.
1472
+ - Built the React and Web3.js marketplace and wallet dashboard around the ERC-20 token.
1473
+ - Maintained the React Native trivia game as the token-reward client.
1474
+ story:
1475
+ - Knowledge is a platform that rewards sharing information with an ERC-20 token. I built the token architecture and the systems around the 2018 mainnet ICO.
1476
+ - I implemented smart contracts for token rewards and transactions, then built a serverless AWS stack for the token, marketplace, and wallet services.
1477
+ - I also built the marketplace and wallet screens in React and Web3.js, and maintained the React Native trivia game as the reward client.
1478
+ experienceCompany: "Knowledge"
1479
+ order: 17
1480
+ year: 2017
1481
+ ---
1482
+
1483
+ # Knowledge.io
1484
+
1485
+ A tokenized knowledge platform with an ERC-20 token, marketplace, wallet dashboard, and mobile trivia game.
1486
+ `,
1487
+ markdownPath: "content/projects/knowledge-io.md"
1488
+ },
1489
+ {
1490
+ title: "LegalAgent",
1491
+ slug: "legal-agent",
1492
+ description: "An AI legal platform with Expo voice and chat, RAG for case and document context, and administrative controls.",
1493
+ role: "Software Engineer",
1494
+ tech: [
1495
+ "TypeScript",
1496
+ "React Native",
1497
+ "Expo",
1498
+ "OpenAI",
1499
+ "AI SDK",
1500
+ "TanStack Query",
1501
+ "TanStack Form",
1502
+ "TanStack Start",
1503
+ "Tailwind",
1504
+ "Artificial Intelligence",
1505
+ "Redis",
1506
+ "PostgreSQL",
1507
+ "ReactJS"
1508
+ ],
1509
+ type: [
1510
+ "ai",
1511
+ "contract",
1512
+ "featured",
1513
+ "mobile",
1514
+ "backend",
1515
+ "fullstack",
1516
+ "startup"
1517
+ ],
1518
+ image: "https://gaboesquivel.com/images/work/legalagent.png",
1519
+ images: [],
1520
+ achievements: [
1521
+ "Shipped a multimodal AI assistant with voice and chat in a React Native Expo app.",
1522
+ "Built RAG for case context, document summaries, and procedural guidance.",
1523
+ "Built an admin dashboard with Microsoft SSO, prompt management, and document categorization.",
1524
+ "Shipped bilingual voice with realtime transcription and speech synthesis.",
1525
+ "Adjusted persona and tool calling in the Expo client after attorney sessions."
1526
+ ],
1527
+ story: [
1528
+ "At LegalAgent I added a voice and chat assistant to their React Native app for case context, documents, and procedures.",
1529
+ "I implemented the Vercel AI SDK for chat and OpenAI's Realtime API for voice, with Tailwind on the multimodal UI. RAG supplied case context, document summaries, and procedural guidance in Spanish and English. Attorney feedback changed persona and tool calling in that Expo client.",
1530
+ "I also built an internal admin dashboard with TanStack Start: Microsoft SSO, system prompt management, and document categorization for RAG retrieval."
1531
+ ],
1532
+ related: [
1533
+ {
1534
+ url: "2025-05-typescript-rag",
1535
+ title: "TypeScript RAG",
1536
+ publishedAt: "2025-05-01"
1537
+ },
1538
+ {
1539
+ url: "2025-09-why-expo",
1540
+ title: "Why Expo",
1541
+ publishedAt: "2025-09-01"
1542
+ }
1543
+ ],
1544
+ experienceCompany: "LegalAgent",
1545
+ order: 1,
1546
+ year: 2025,
1547
+ markdown: `---
1548
+ title: "LegalAgent"
1549
+ slug: "legal-agent"
1550
+ description: "An AI legal platform with Expo voice and chat, RAG for case and document context, and administrative controls."
1551
+ role: "Software Engineer"
1552
+ tech:
1553
+ - TypeScript
1554
+ - React Native
1555
+ - Expo
1556
+ - OpenAI
1557
+ - AI SDK
1558
+ - TanStack Query
1559
+ - TanStack Form
1560
+ - TanStack Start
1561
+ - Tailwind
1562
+ - Artificial Intelligence
1563
+ - Redis
1564
+ - PostgreSQL
1565
+ - ReactJS
1566
+ type:
1567
+ - ai
1568
+ - contract
1569
+ - featured
1570
+ - mobile
1571
+ - backend
1572
+ - fullstack
1573
+ - startup
1574
+ image: "https://gaboesquivel.com/images/work/legalagent.png"
1575
+
1576
+
1577
+ images: []
1578
+ achievements:
1579
+ - Shipped a multimodal AI assistant with voice and chat in a React Native Expo app.
1580
+ - Built RAG for case context, document summaries, and procedural guidance.
1581
+ - Built an admin dashboard with Microsoft SSO, prompt management, and document categorization.
1582
+ - Shipped bilingual voice with realtime transcription and speech synthesis.
1583
+ - Adjusted persona and tool calling in the Expo client after attorney sessions.
1584
+ story:
1585
+ - At LegalAgent I added a voice and chat assistant to their React Native app for case context, documents, and procedures.
1586
+ - I implemented the Vercel AI SDK for chat and OpenAI's Realtime API for voice, with Tailwind on the multimodal UI. RAG supplied case context, document summaries, and procedural guidance in Spanish and English. Attorney feedback changed persona and tool calling in that Expo client.
1587
+ - "I also built an internal admin dashboard with TanStack Start: Microsoft SSO, system prompt management, and document categorization for RAG retrieval."
1588
+ experienceCompany: "LegalAgent"
1589
+ order: 1
1590
+ year: 2025
1591
+ related:
1592
+ - url: "2025-05-typescript-rag"
1593
+ title: "TypeScript RAG"
1594
+ publishedAt: "2025-05-01"
1595
+ - url: "2025-09-why-expo"
1596
+ title: "Why Expo"
1597
+ publishedAt: "2025-09-01"
1598
+ ---
1599
+
1600
+ # LegalAgent
1601
+
1602
+ An AI legal platform with Expo voice and chat, RAG for case and document context, and administrative controls.
1603
+ `,
1604
+ markdownPath: "content/projects/legal-agent.md"
1605
+ },
1606
+ {
1607
+ title: "Living with Dryness",
1608
+ slug: "living-with-dryness",
1609
+ description: "A responsive medical information page for dryness-related resources, laid out to be readable on a phone.",
1610
+ tech: [
1611
+ "JavaScript",
1612
+ "CSS",
1613
+ "Wordpress"
1614
+ ],
1615
+ type: [
1616
+ "other",
1617
+ "frontend"
1618
+ ],
1619
+ image: "https://gaboesquivel.com/images/work/living-with-dryness.jpg",
1620
+ images: [],
1621
+ achievements: [
1622
+ "Built a responsive landing page and navigation for medical resources."
1623
+ ],
1624
+ story: [
1625
+ "Freelance WordPress work on a responsive medical information page focused on readability and navigation on mobile."
1626
+ ],
1627
+ order: 44,
1628
+ year: 2011,
1629
+ markdown: '---\ntitle: "Living with Dryness"\nslug: "living-with-dryness"\ndescription: "A responsive medical information page for dryness-related resources, laid out to be readable on a phone."\ntech:\n - JavaScript\n - CSS\n - Wordpress\ntype:\n - other\n - frontend\nimage: "https://gaboesquivel.com/images/work/living-with-dryness.jpg"\n\n\nimages: []\nachievements:\n - Built a responsive landing page and navigation for medical resources.\nstory:\n - Freelance WordPress work on a responsive medical information page focused on readability and navigation on mobile.\norder: 44\nyear: 2011\n---\n\n# Living with Dryness\n\nA responsive medical information page for dryness-related resources, laid out to be readable on a phone.\n',
1630
+ markdownPath: "content/projects/living-with-dryness.md"
1631
+ },
1632
+ {
1633
+ title: "Make Sense Labs",
1634
+ slug: "make-sense-labs",
1635
+ description: "A React Native messaging and wallet app with EOS transactions, token functionality, and privacy features.",
1636
+ tech: [
1637
+ "React Native",
1638
+ "TypeScript",
1639
+ "Antelope"
1640
+ ],
1641
+ type: [
1642
+ "web3",
1643
+ "contract",
1644
+ "mobile"
1645
+ ],
1646
+ link: "https://www.youtube.com/watch?v=2DJxzYDaAz8",
1647
+ image: "https://gaboesquivel.com/images/work/sense-chat.png",
1648
+ video: "https://www.youtube.com/watch?v=2DJxzYDaAz8",
1649
+ images: [],
1650
+ achievements: [
1651
+ "Improved app performance and reduced load times by optimizing React Native components.",
1652
+ "Integrated EOS mainnet for in-app transactions.",
1653
+ "Improved the app's security and privacy features."
1654
+ ],
1655
+ story: [
1656
+ "At Make Sense Labs I worked on Sense.chat, a secure chat and transaction app built around user data privacy, and improved the performance of its React Native client.",
1657
+ "I integrated the app with EOS mainnet for transactions and token functionality, including a built-in wallet and token incentives for communities, and also improved its security and privacy features."
1658
+ ],
1659
+ order: 9,
1660
+ year: 2019,
1661
+ markdown: `---
1662
+ title: "Make Sense Labs"
1663
+ slug: "make-sense-labs"
1664
+ description: "A React Native messaging and wallet app with EOS transactions, token functionality, and privacy features."
1665
+ tech:
1666
+ - React Native
1667
+ - TypeScript
1668
+ - Antelope
1669
+ type:
1670
+ - web3
1671
+ - contract
1672
+ - mobile
1673
+ link: "https://www.youtube.com/watch?v=2DJxzYDaAz8"
1674
+ image: "https://gaboesquivel.com/images/work/sense-chat.png"
1675
+
1676
+ video: "https://www.youtube.com/watch?v=2DJxzYDaAz8"
1677
+ images: []
1678
+ achievements:
1679
+ - Improved app performance and reduced load times by optimizing React Native components.
1680
+ - Integrated EOS mainnet for in-app transactions.
1681
+ - Improved the app's security and privacy features.
1682
+ story:
1683
+ - At Make Sense Labs I worked on Sense.chat, a secure chat and transaction app built around user data privacy, and improved the performance of its React Native client.
1684
+ - I integrated the app with EOS mainnet for transactions and token functionality, including a built-in wallet and token incentives for communities, and also improved its security and privacy features.
1685
+ order: 9
1686
+ year: 2019
1687
+ ---
1688
+
1689
+ # Make Sense Labs
1690
+
1691
+ A React Native messaging and wallet app with EOS transactions, token functionality, and privacy features.
1692
+ `,
1693
+ markdownPath: "content/projects/make-sense-labs.md"
1694
+ },
1695
+ {
1696
+ title: "Masterbots",
1697
+ slug: "masterbots",
1698
+ description: "A platform for domain-specific AI assistants with specialized interfaces, social sharing, and multilingual support.",
1699
+ tech: [
1700
+ "NextJS",
1701
+ "NodeJS",
1702
+ "GraphQL",
1703
+ "ReactJS",
1704
+ "PostgreSQL",
1705
+ "TypeScript",
1706
+ "OpenAI",
1707
+ "AI SDK",
1708
+ "Artificial Intelligence",
1709
+ "Docker",
1710
+ "GCP",
1711
+ "ShadcnUI",
1712
+ "Tailwind",
1713
+ "TanStack Query",
1714
+ "Zod",
1715
+ "nuqs"
1716
+ ],
1717
+ type: [
1718
+ "ai",
1719
+ "oss",
1720
+ "frontend",
1721
+ "backend",
1722
+ "fullstack",
1723
+ "startup"
1724
+ ],
1725
+ link: "https://masterbots.ai",
1726
+ image: "https://gaboesquivel.com/images/work/masterbots.png",
1727
+ repo: "https://github.com/bitcashorg/masterbots",
1728
+ images: [],
1729
+ achievements: [
1730
+ "Integrated AI SDK for internationalization automation and AI-driven workflow.",
1731
+ "Built specialized AI agents and chatbot interfaces for domain-specific assistants.",
1732
+ "Set up the Next.js application structure and trained the team on it.",
1733
+ "Integrated AI-driven development workflow using v0.dev, Anthropic Claude Sonnet, Cursor IDE, and SourceryAI."
1734
+ ],
1735
+ story: [
1736
+ "Masterbots is a platform for domain-specific AI assistants with specialized interfaces, social sharing, and multilingual support.",
1737
+ "I integrated the AI SDK for internationalization automation, set up the Next.js application structure, and built specialized agent interfaces on top of it."
1738
+ ],
1739
+ order: 4,
1740
+ year: 2024,
1741
+ markdown: '---\ntitle: "Masterbots"\nslug: "masterbots"\ndescription: "A platform for domain-specific AI assistants with specialized interfaces, social sharing, and multilingual support."\ntech:\n - NextJS\n - NodeJS\n - GraphQL\n - ReactJS\n - PostgreSQL\n - TypeScript\n - OpenAI\n - AI SDK\n - Artificial Intelligence\n - Docker\n - GCP\n - ShadcnUI\n - Tailwind\n - TanStack Query\n - Zod\n - nuqs\ntype:\n - ai\n - oss\n - frontend\n - backend\n - fullstack\n - startup\nlink: "https://masterbots.ai"\nimage: "https://gaboesquivel.com/images/work/masterbots.png"\nrepo: "https://github.com/bitcashorg/masterbots"\n\nimages: []\nachievements:\n - Integrated AI SDK for internationalization automation and AI-driven workflow.\n - Built specialized AI agents and chatbot interfaces for domain-specific assistants.\n - Set up the Next.js application structure and trained the team on it.\n - Integrated AI-driven development workflow using v0.dev, Anthropic Claude Sonnet, Cursor IDE, and SourceryAI.\nstory:\n - Masterbots is a platform for domain-specific AI assistants with specialized interfaces, social sharing, and multilingual support.\n - I integrated the AI SDK for internationalization automation, set up the Next.js application structure, and built specialized agent interfaces on top of it.\norder: 4\nyear: 2024\n---\n\n# Masterbots\n\nA platform for domain-specific AI assistants with specialized interfaces, social sharing, and multilingual support.\n',
1742
+ markdownPath: "content/projects/masterbots.md"
1743
+ },
1744
+ {
1745
+ title: "Mobtion",
1746
+ slug: "mobtion",
1747
+ description: "A responsive agency site and WordPress CMS for Mobtion, a mobile-development studio.",
1748
+ tech: [
1749
+ "JavaScript",
1750
+ "CSS",
1751
+ "Wordpress",
1752
+ "PHP"
1753
+ ],
1754
+ type: [
1755
+ "other",
1756
+ "frontend"
1757
+ ],
1758
+ image: "https://gaboesquivel.com/images/work/mobtion.jpg",
1759
+ images: [],
1760
+ achievements: [
1761
+ "Built a responsive website for the Mobtion agency.",
1762
+ "Integrated WordPress so the team could update their portfolio without a developer."
1763
+ ],
1764
+ story: [
1765
+ "Responsive agency site and WordPress CMS for Mobtion at IntergraphiDesign so they could update their mobile-dev portfolio without a developer."
1766
+ ],
1767
+ order: 41,
1768
+ year: 2008,
1769
+ markdown: '---\ntitle: "Mobtion"\nslug: "mobtion"\ndescription: "A responsive agency site and WordPress CMS for Mobtion, a mobile-development studio."\ntech:\n - JavaScript\n - CSS\n - Wordpress\n - PHP\ntype:\n - other\n - frontend\nimage: "https://gaboesquivel.com/images/work/mobtion.jpg"\n\n\nimages: []\nachievements:\n - Built a responsive website for the Mobtion agency.\n - Integrated WordPress so the team could update their portfolio without a developer.\nstory:\n - Responsive agency site and WordPress CMS for Mobtion at IntergraphiDesign so they could update their mobile-dev portfolio without a developer.\norder: 41\nyear: 2008\n---\n\n# Mobtion\n\nA responsive agency site and WordPress CMS for Mobtion, a mobile-development studio.\n',
1770
+ markdownPath: "content/projects/mobtion.md"
1771
+ },
1772
+ {
1773
+ title: "Opyn",
1774
+ slug: "opyn",
1775
+ description: "A decentralized options protocol on Arbitrum with a Next.js trading interface and indexed onchain data.",
1776
+ role: "Software Engineer",
1777
+ tech: [
1778
+ "TypeScript",
1779
+ "NextJS",
1780
+ "ReactJS",
1781
+ "Foundry",
1782
+ "Solidity",
1783
+ "Viem",
1784
+ "Wagmi",
1785
+ "Ponder",
1786
+ "PostgreSQL",
1787
+ "Supabase",
1788
+ "ShadcnUI",
1789
+ "Tailwind",
1790
+ "TanStack Query",
1791
+ "Zod",
1792
+ "nuqs",
1793
+ "Ethereum",
1794
+ "Alchemy"
1795
+ ],
1796
+ type: [
1797
+ "web3",
1798
+ "contract",
1799
+ "featured",
1800
+ "frontend",
1801
+ "backend"
1802
+ ],
1803
+ link: "https://opyn.co",
1804
+ image: "https://gaboesquivel.com/images/work/opyn.png",
1805
+ images: [],
1806
+ achievements: [
1807
+ "Built the Next.js 14 trading interface with React Server Components.",
1808
+ "Integrated the protocol and Arbitrum testnet with viem and wagmi.",
1809
+ "Indexed onchain data with Ponder, PostgreSQL, and Supabase.",
1810
+ "Prototyped an LLM assistant for onboarding and support."
1811
+ ],
1812
+ story: [
1813
+ "Opyn is a decentralized options protocol on Arbitrum. The trading UI needed indexed protocol state, not a page of raw RPC reads.",
1814
+ "I set up the Next.js app structure and the data-fetching path the interface sits on, with Ponder over PostgreSQL and Supabase."
1815
+ ],
1816
+ related: [
1817
+ {
1818
+ url: "2025-11-bullish-2026",
1819
+ title: "Bullish 2026",
1820
+ publishedAt: "2025-11-01"
1821
+ },
1822
+ {
1823
+ url: "2026-01-tokenization",
1824
+ title: "Tokenization",
1825
+ publishedAt: "2026-01-01"
1826
+ }
1827
+ ],
1828
+ experienceCompany: "Opyn",
1829
+ order: 2,
1830
+ year: 2024,
1831
+ markdown: '---\ntitle: "Opyn"\nslug: "opyn"\ndescription: "A decentralized options protocol on Arbitrum with a Next.js trading interface and indexed onchain data."\nrole: "Software Engineer"\ntech:\n - TypeScript\n - NextJS\n - ReactJS\n - Foundry\n - Solidity\n - Viem\n - Wagmi\n - Ponder\n - PostgreSQL\n - Supabase\n - ShadcnUI\n - Tailwind\n - TanStack Query\n - Zod\n - nuqs\n - Ethereum\n - Alchemy\ntype:\n - web3\n - contract\n - featured\n - frontend\n - backend\nlink: "https://opyn.co"\nimage: "https://gaboesquivel.com/images/work/opyn.png"\n\n\nimages: []\nachievements:\n - Built the Next.js 14 trading interface with React Server Components.\n - Integrated the protocol and Arbitrum testnet with viem and wagmi.\n - Indexed onchain data with Ponder, PostgreSQL, and Supabase.\n - Prototyped an LLM assistant for onboarding and support.\nstory:\n - Opyn is a decentralized options protocol on Arbitrum. The trading UI needed indexed protocol state, not a page of raw RPC reads.\n - I set up the Next.js app structure and the data-fetching path the interface sits on, with Ponder over PostgreSQL and Supabase.\nexperienceCompany: "Opyn"\norder: 2\nyear: 2024\nrelated:\n - url: "2025-11-bullish-2026"\n title: "Bullish 2026"\n publishedAt: "2025-11-01"\n - url: "2026-01-tokenization"\n title: "Tokenization"\n publishedAt: "2026-01-01"\n---\n\n# Opyn\n\nA decentralized options protocol on Arbitrum with a Next.js trading interface and indexed onchain data.\n',
1832
+ markdownPath: "content/projects/opyn.md"
1833
+ },
1834
+ {
1835
+ title: "Panini",
1836
+ slug: "panini",
1837
+ description: "A WordPress site for Panini: frontend performance, browser compatibility, and interface work.",
1838
+ tech: [
1839
+ "JavaScript",
1840
+ "CSS",
1841
+ "Wordpress"
1842
+ ],
1843
+ type: [
1844
+ "other",
1845
+ "frontend"
1846
+ ],
1847
+ image: "https://gaboesquivel.com/images/work/panini.jpg",
1848
+ images: [],
1849
+ achievements: [
1850
+ "Improved frontend performance and cross-browser compatibility for a WordPress site."
1851
+ ],
1852
+ story: [
1853
+ "Freelance WordPress work for Panini focused on frontend performance, browser compatibility, and interface cleanup."
1854
+ ],
1855
+ order: 37,
1856
+ year: 2008,
1857
+ markdown: '---\ntitle: "Panini"\nslug: "panini"\ndescription: "A WordPress site for Panini: frontend performance, browser compatibility, and interface work."\ntech:\n - JavaScript\n - CSS\n - Wordpress\ntype:\n - other\n - frontend\nimage: "https://gaboesquivel.com/images/work/panini.jpg"\n\n\nimages: []\nachievements:\n - Improved frontend performance and cross-browser compatibility for a WordPress site.\nstory:\n - Freelance WordPress work for Panini focused on frontend performance, browser compatibility, and interface cleanup.\norder: 37\nyear: 2008\n---\n\n# Panini\n\nA WordPress site for Panini: frontend performance, browser compatibility, and interface work.\n',
1858
+ markdownPath: "content/projects/panini.md"
1859
+ },
1860
+ {
1861
+ title: "Photo and Go",
1862
+ slug: "photo-and-go",
1863
+ description: "An online photo-product platform with a custom editor and backend integration into existing commerce systems.",
1864
+ tech: [
1865
+ "ReactJS",
1866
+ "NodeJS",
1867
+ "Redux",
1868
+ "AWS",
1869
+ "Docker",
1870
+ "PostgreSQL"
1871
+ ],
1872
+ type: [
1873
+ "contract",
1874
+ "frontend",
1875
+ "backend",
1876
+ "fullstack"
1877
+ ],
1878
+ link: "https://www.myphoto.com/",
1879
+ image: "https://gaboesquivel.com/images/work/photoandgo.jpg",
1880
+ images: [],
1881
+ achievements: [
1882
+ "Built a photo editor that posted finished products into the existing commerce system.",
1883
+ "Led technical direction on the editor and the services behind it.",
1884
+ "Ran image storage and processing on AWS."
1885
+ ],
1886
+ story: [
1887
+ "MyPhoto.com is an online platform for personalized photo products. I led the photo editor and the backend that plugged into the existing commerce system.",
1888
+ "I owned cropping, layouts, checkout handoff, and AWS-backed image storage and processing."
1889
+ ],
1890
+ order: 29,
1891
+ year: 2014,
1892
+ markdown: '---\ntitle: "Photo and Go"\nslug: "photo-and-go"\ndescription: "An online photo-product platform with a custom editor and backend integration into existing commerce systems."\ntech:\n - ReactJS\n - NodeJS\n - Redux\n - AWS\n - Docker\n - PostgreSQL\ntype:\n - contract\n - frontend\n - backend\n - fullstack\nlink: "https://www.myphoto.com/"\nimage: "https://gaboesquivel.com/images/work/photoandgo.jpg"\n\n\nimages: []\nachievements:\n - Built a photo editor that posted finished products into the existing commerce system.\n - Led technical direction on the editor and the services behind it.\n - Ran image storage and processing on AWS.\nstory:\n - MyPhoto.com is an online platform for personalized photo products. I led the photo editor and the backend that plugged into the existing commerce system.\n - I owned cropping, layouts, checkout handoff, and AWS-backed image storage and processing.\norder: 29\nyear: 2014\n---\n\n# Photo and Go\n\nAn online photo-product platform with a custom editor and backend integration into existing commerce systems.\n',
1893
+ markdownPath: "content/projects/photo-and-go.md"
1894
+ },
1895
+ {
1896
+ title: "Proparques",
1897
+ slug: "proparques",
1898
+ description: "A responsive nonprofit website with an interactive map for exploring Costa Rica's national parks.",
1899
+ tech: [
1900
+ "JavaScript",
1901
+ "CSS",
1902
+ "Wordpress"
1903
+ ],
1904
+ type: [
1905
+ "other",
1906
+ "frontend"
1907
+ ],
1908
+ image: "https://gaboesquivel.com/images/work/proparques.jpg",
1909
+ images: [],
1910
+ achievements: [
1911
+ "Developed an interactive national park map for user exploration.",
1912
+ "Designed a responsive landing page for the nonprofit."
1913
+ ],
1914
+ story: [
1915
+ "Nonprofit landing page and interactive national-park map for ProParques at IntergraphiDesign."
1916
+ ],
1917
+ order: 39,
1918
+ year: 2008,
1919
+ markdown: `---
1920
+ title: "Proparques"
1921
+ slug: "proparques"
1922
+ description: "A responsive nonprofit website with an interactive map for exploring Costa Rica's national parks."
1923
+ tech:
1924
+ - JavaScript
1925
+ - CSS
1926
+ - Wordpress
1927
+ type:
1928
+ - other
1929
+ - frontend
1930
+ image: "https://gaboesquivel.com/images/work/proparques.jpg"
1931
+
1932
+
1933
+ images: []
1934
+ achievements:
1935
+ - Developed an interactive national park map for user exploration.
1936
+ - Designed a responsive landing page for the nonprofit.
1937
+ story:
1938
+ - Nonprofit landing page and interactive national-park map for ProParques at IntergraphiDesign.
1939
+ order: 39
1940
+ year: 2008
1941
+ ---
1942
+
1943
+ # Proparques
1944
+
1945
+ A responsive nonprofit website with an interactive map for exploring Costa Rica's national parks.
1946
+ `,
1947
+ markdownPath: "content/projects/proparques.md"
1948
+ },
1949
+ {
1950
+ title: "RareMint",
1951
+ slug: "raremint",
1952
+ description: "A Polygon marketplace for tokenized sports collectibles with indexed NFT data, auctions, and WalletConnect.",
1953
+ role: "Software Engineer",
1954
+ tech: [
1955
+ "NextJS",
1956
+ "Ethers",
1957
+ "NFT",
1958
+ "ReactJS",
1959
+ "GCP",
1960
+ "NodeJS",
1961
+ "GraphQL",
1962
+ "TypeScript",
1963
+ "Ethereum",
1964
+ "Docker",
1965
+ "Tailwind",
1966
+ "PostgreSQL"
1967
+ ],
1968
+ type: [
1969
+ "web3",
1970
+ "full-time",
1971
+ "frontend",
1972
+ "backend",
1973
+ "fullstack",
1974
+ "startup"
1975
+ ],
1976
+ link: "https://raremint.com",
1977
+ image: "https://gaboesquivel.com/images/work/raremint.png",
1978
+ video: "https://www.youtube.com/watch?v=2wh32w7N9xg",
1979
+ images: [
1980
+ "https://gaboesquivel.com/images/work/raremint-perf.jpeg"
1981
+ ],
1982
+ achievements: [
1983
+ "Built an EVM NFT data indexer using Moralis streams, Node.js, and PostgreSQL on Google Cloud.",
1984
+ "Refactored the marketplace to Next.js SSR with Tailwind and GraphQL.",
1985
+ "Integrated WalletConnect for connections and transactions."
1986
+ ],
1987
+ story: [
1988
+ "RareMint digitized real-world sports collectibles as NFTs. I worked on marketplace performance, wallet integration, and its first Pok\xE9mon card auctions on Polygon.",
1989
+ "I built the Moralis-streams indexer on Node.js, PostgreSQL, and Google Cloud, then moved the marketplace to Next.js SSR for listing and auction flows."
1990
+ ],
1991
+ experienceCompany: "RareMint",
1992
+ order: 6,
1993
+ year: 2021,
1994
+ markdown: '---\ntitle: "RareMint"\nslug: "raremint"\ndescription: "A Polygon marketplace for tokenized sports collectibles with indexed NFT data, auctions, and WalletConnect."\nrole: "Software Engineer"\ntech:\n - NextJS\n - Ethers\n - NFT\n - ReactJS\n - GCP\n - NodeJS\n - GraphQL\n - TypeScript\n - Ethereum\n - Docker\n - Tailwind\n - PostgreSQL\ntype:\n - web3\n - full-time\n - frontend\n - backend\n - fullstack\n - startup\nlink: "https://raremint.com"\nimage: "https://gaboesquivel.com/images/work/raremint.png"\n\nvideo: "https://www.youtube.com/watch?v=2wh32w7N9xg"\nimages:\n - https://gaboesquivel.com/images/work/raremint-perf.jpeg\nachievements:\n - Built an EVM NFT data indexer using Moralis streams, Node.js, and PostgreSQL on Google Cloud.\n - Refactored the marketplace to Next.js SSR with Tailwind and GraphQL.\n - Integrated WalletConnect for connections and transactions.\nstory:\n - RareMint digitized real-world sports collectibles as NFTs. I worked on marketplace performance, wallet integration, and its first Pok\xE9mon card auctions on Polygon.\n - I built the Moralis-streams indexer on Node.js, PostgreSQL, and Google Cloud, then moved the marketplace to Next.js SSR for listing and auction flows.\nexperienceCompany: "RareMint"\norder: 6\nyear: 2021\n---\n\n# RareMint\n\nA Polygon marketplace for tokenized sports collectibles with indexed NFT data, auctions, and WalletConnect.\n',
1995
+ markdownPath: "content/projects/raremint.md"
1996
+ },
1997
+ {
1998
+ title: "ScotiaTico",
1999
+ slug: "scotiatico",
2000
+ description: "A WordPress customer newsletter for Scotiabank Costa Rica: bank updates in a layout staff could maintain.",
2001
+ tech: [
2002
+ "JavaScript",
2003
+ "CSS",
2004
+ "Wordpress"
2005
+ ],
2006
+ type: [
2007
+ "other",
2008
+ "frontend"
2009
+ ],
2010
+ image: "https://gaboesquivel.com/images/work/scotiatico.jpg",
2011
+ images: [],
2012
+ achievements: [
2013
+ "Designed and developed an interactive newsletter layout for ScotiaBank."
2014
+ ],
2015
+ story: [
2016
+ "WordPress newsletter layout for Scotiabank Costa Rica at IntergraphiDesign."
2017
+ ],
2018
+ order: 32,
2019
+ year: 2008,
2020
+ markdown: '---\ntitle: "ScotiaTico"\nslug: "scotiatico"\ndescription: "A WordPress customer newsletter for Scotiabank Costa Rica: bank updates in a layout staff could maintain."\ntech:\n - JavaScript\n - CSS\n - Wordpress\ntype:\n - other\n - frontend\nimage: "https://gaboesquivel.com/images/work/scotiatico.jpg"\n\n\nimages: []\nachievements:\n - Designed and developed an interactive newsletter layout for ScotiaBank.\nstory:\n - WordPress newsletter layout for Scotiabank Costa Rica at IntergraphiDesign.\norder: 32\nyear: 2008\n---\n\n# ScotiaTico\n\nA WordPress customer newsletter for Scotiabank Costa Rica: bank updates in a layout staff could maintain.\n',
2021
+ markdownPath: "content/projects/scotiatico.md"
2022
+ },
2023
+ {
2024
+ title: "Staples",
2025
+ slug: "staples",
2026
+ description: "Responsive navigation and commerce interfaces for Staples' office-supply ecommerce storefront.",
2027
+ tech: [
2028
+ "JavaScript",
2029
+ "CSS",
2030
+ "Mootools"
2031
+ ],
2032
+ type: [
2033
+ "other",
2034
+ "frontend"
2035
+ ],
2036
+ image: "https://gaboesquivel.com/images/work/staples.jpg",
2037
+ images: [],
2038
+ achievements: [
2039
+ "Rebuilt the main navigation for smaller screens.",
2040
+ "Developed responsive UI components and front-end performance improvements."
2041
+ ],
2042
+ story: [
2043
+ "Freelance frontend work on Staples' ecommerce storefront: responsive navigation, UI components, and load-time improvements."
2044
+ ],
2045
+ order: 33,
2046
+ year: 2011,
2047
+ markdown: `---
2048
+ title: "Staples"
2049
+ slug: "staples"
2050
+ description: "Responsive navigation and commerce interfaces for Staples' office-supply ecommerce storefront."
2051
+ tech:
2052
+ - JavaScript
2053
+ - CSS
2054
+ - Mootools
2055
+ type:
2056
+ - other
2057
+ - frontend
2058
+ image: "https://gaboesquivel.com/images/work/staples.jpg"
2059
+
2060
+
2061
+ images: []
2062
+ achievements:
2063
+ - Rebuilt the main navigation for smaller screens.
2064
+ - Developed responsive UI components and front-end performance improvements.
2065
+ story:
2066
+ - "Freelance frontend work on Staples' ecommerce storefront: responsive navigation, UI components, and load-time improvements."
2067
+ order: 33
2068
+ year: 2011
2069
+ ---
2070
+
2071
+ # Staples
2072
+
2073
+ Responsive navigation and commerce interfaces for Staples' office-supply ecommerce storefront.
2074
+ `,
2075
+ markdownPath: "content/projects/staples.md"
2076
+ },
2077
+ {
2078
+ title: "Substrate Contracts UI",
2079
+ slug: "substrate-contracts-ui",
2080
+ description: "An open-source React interface for deploying and interacting with WASM smart contracts on Substrate.",
2081
+ tech: [
2082
+ "Polkadot",
2083
+ "Substrate",
2084
+ "ReactJS",
2085
+ "Tailwind",
2086
+ "TypeScript"
2087
+ ],
2088
+ type: [
2089
+ "web3",
2090
+ "oss",
2091
+ "frontend"
2092
+ ],
2093
+ link: "https://contracts-ui.substrate.io/",
2094
+ image: "https://gaboesquivel.com/images/work/contracts-ui.png",
2095
+ repo: "https://github.com/paritytech/contracts-ui",
2096
+ images: [],
2097
+ achievements: [
2098
+ "Contributed open-source code-quality and performance improvements.",
2099
+ "Built UI components for deploying and calling WASM contracts from the browser."
2100
+ ],
2101
+ story: [
2102
+ "Substrate Contracts UI is a web application for deploying and interacting with WASM smart contracts on Substrate chains. I contributed code-quality and performance improvements, plus UI components for deploying and calling contracts.",
2103
+ "I made these contributions while learning Substrate and Polkadot contracts. The work was open-source developer tooling, not a product of my own."
2104
+ ],
2105
+ order: 14,
2106
+ year: 2021,
2107
+ markdown: '---\ntitle: "Substrate Contracts UI"\nslug: "substrate-contracts-ui"\ndescription: "An open-source React interface for deploying and interacting with WASM smart contracts on Substrate."\ntech:\n - Polkadot\n - Substrate\n - ReactJS\n - Tailwind\n - TypeScript\ntype:\n - web3\n - oss\n - frontend\nlink: "https://contracts-ui.substrate.io/"\nimage: "https://gaboesquivel.com/images/work/contracts-ui.png"\nrepo: "https://github.com/paritytech/contracts-ui"\n\nimages: []\nachievements:\n - Contributed open-source code-quality and performance improvements.\n - Built UI components for deploying and calling WASM contracts from the browser.\nstory:\n - Substrate Contracts UI is a web application for deploying and interacting with WASM smart contracts on Substrate chains. I contributed code-quality and performance improvements, plus UI components for deploying and calling contracts.\n - I made these contributions while learning Substrate and Polkadot contracts. The work was open-source developer tooling, not a product of my own.\norder: 14\nyear: 2021\n---\n\n# Substrate Contracts UI\n\nAn open-source React interface for deploying and interacting with WASM smart contracts on Substrate.\n',
2108
+ markdownPath: "content/projects/substrate-contracts-ui.md"
2109
+ },
2110
+ {
2111
+ title: "SunTrust",
2112
+ slug: "suntrust",
2113
+ description: "A SunTrust campaign site where people created and shared personalized video salutes.",
2114
+ tech: [
2115
+ "JavaScript",
2116
+ "CSS"
2117
+ ],
2118
+ type: [
2119
+ "other",
2120
+ "frontend"
2121
+ ],
2122
+ image: "https://gaboesquivel.com/images/work/suntrust-1.jpg",
2123
+ images: [],
2124
+ achievements: [
2125
+ "Built the Solid Salutes campaign site for creating and sharing user-generated video salutes."
2126
+ ],
2127
+ story: [
2128
+ "I built SunTrust's Solid Salutes campaign site, including the flow for creating and sharing personalized video salutes."
2129
+ ],
2130
+ order: 31,
2131
+ year: 2011,
2132
+ markdown: `---
2133
+ title: "SunTrust"
2134
+ slug: "suntrust"
2135
+ description: "A SunTrust campaign site where people created and shared personalized video salutes."
2136
+ tech:
2137
+ - JavaScript
2138
+ - CSS
2139
+ type:
2140
+ - other
2141
+ - frontend
2142
+ image: "https://gaboesquivel.com/images/work/suntrust-1.jpg"
2143
+
2144
+
2145
+ images: []
2146
+ achievements:
2147
+ - Built the Solid Salutes campaign site for creating and sharing user-generated video salutes.
2148
+ story:
2149
+ - I built SunTrust's Solid Salutes campaign site, including the flow for creating and sharing personalized video salutes.
2150
+ order: 31
2151
+ year: 2011
2152
+ ---
2153
+
2154
+ # SunTrust
2155
+
2156
+ A SunTrust campaign site where people created and shared personalized video salutes.
2157
+ `,
2158
+ markdownPath: "content/projects/suntrust.md"
2159
+ },
2160
+ {
2161
+ title: "Tikr",
2162
+ slug: "tikr",
2163
+ description: "An online store built on Spree with realtime price changes, a custom Rails backend, and a responsive storefront.",
2164
+ tech: [
2165
+ "Ruby on Rails",
2166
+ "Spree",
2167
+ "Heroku",
2168
+ "PostgreSQL",
2169
+ "jQuery",
2170
+ "SASS"
2171
+ ],
2172
+ type: [
2173
+ "contract",
2174
+ "frontend"
2175
+ ],
2176
+ link: "http://tikr.com",
2177
+ image: "https://gaboesquivel.com/images/work/tikr.jpg",
2178
+ images: [],
2179
+ achievements: [
2180
+ "Built a dynamic pricing engine on Spree and Ruby on Rails.",
2181
+ "Implemented realtime price changes across the storefront.",
2182
+ "Tuned backend performance on Heroku with PostgreSQL."
2183
+ ],
2184
+ story: [
2185
+ "Tikr was an online store where prices moved in realtime, built on the Spree framework for Ruby on Rails. I worked across the stack, mostly on the frontend and on customizing the Spree backend.",
2186
+ "I built the pricing engine that drove those realtime price changes and tuned backend performance on Heroku with PostgreSQL."
2187
+ ],
2188
+ order: 23,
2189
+ year: 2013,
2190
+ markdown: '---\ntitle: "Tikr"\nslug: "tikr"\ndescription: "An online store built on Spree with realtime price changes, a custom Rails backend, and a responsive storefront."\ntech:\n - Ruby on Rails\n - Spree\n - Heroku\n - PostgreSQL\n - jQuery\n - SASS\ntype:\n - contract\n - frontend\nlink: "http://tikr.com"\nimage: "https://gaboesquivel.com/images/work/tikr.jpg"\n\n\nimages: []\nachievements:\n - Built a dynamic pricing engine on Spree and Ruby on Rails.\n - Implemented realtime price changes across the storefront.\n - Tuned backend performance on Heroku with PostgreSQL.\nstory:\n - Tikr was an online store where prices moved in realtime, built on the Spree framework for Ruby on Rails. I worked across the stack, mostly on the frontend and on customizing the Spree backend.\n - I built the pricing engine that drove those realtime price changes and tuned backend performance on Heroku with PostgreSQL.\norder: 23\nyear: 2013\n---\n\n# Tikr\n\nAn online store built on Spree with realtime price changes, a custom Rails backend, and a responsive storefront.\n',
2191
+ markdownPath: "content/projects/tikr.md"
2192
+ },
2193
+ {
2194
+ title: "Tractor Supply",
2195
+ slug: "tractor-supply",
2196
+ description: "A React Native retail app with product browsing, account tools, and augmented-reality previews powered by ViroAR.",
2197
+ tech: [
2198
+ "React Native",
2199
+ "ReactJS",
2200
+ "NodeJS",
2201
+ "TypeScript",
2202
+ "ViroAR",
2203
+ "CSS",
2204
+ "Redux"
2205
+ ],
2206
+ type: [
2207
+ "contract",
2208
+ "mobile",
2209
+ "institution"
2210
+ ],
2211
+ link: "https://www.tractorsupply.com/tsc/cms/app",
2212
+ image: "https://gaboesquivel.com/images/work/tractor-supply.png",
2213
+ images: [],
2214
+ achievements: [
2215
+ "Improved performance and code quality in the existing React Native app.",
2216
+ "Built the augmented-reality feature for previewing products.",
2217
+ "Introduced TypeScript to the codebase for maintainability."
2218
+ ],
2219
+ story: [
2220
+ "The Tractor Supply mobile app covers product browsing, exclusive offers, account management, and augmented-reality product previews. As a consultant on their existing React Native app, I improved performance and code quality and built the augmented-reality feature.",
2221
+ "I also introduced TypeScript to the codebase to make the app more maintainable."
2222
+ ],
2223
+ order: 28,
2224
+ year: 2020,
2225
+ markdown: '---\ntitle: "Tractor Supply"\nslug: "tractor-supply"\ndescription: "A React Native retail app with product browsing, account tools, and augmented-reality previews powered by ViroAR."\ntech:\n - React Native\n - ReactJS\n - NodeJS\n - TypeScript\n - ViroAR\n - CSS\n - Redux\ntype:\n - contract\n - mobile\n - institution\nlink: "https://www.tractorsupply.com/tsc/cms/app"\nimage: "https://gaboesquivel.com/images/work/tractor-supply.png"\n\n\nimages: []\nachievements:\n - Improved performance and code quality in the existing React Native app.\n - Built the augmented-reality feature for previewing products.\n - Introduced TypeScript to the codebase for maintainability.\nstory:\n - The Tractor Supply mobile app covers product browsing, exclusive offers, account management, and augmented-reality product previews. As a consultant on their existing React Native app, I improved performance and code quality and built the augmented-reality feature.\n - I also introduced TypeScript to the codebase to make the app more maintainable.\norder: 28\nyear: 2020\n---\n\n# Tractor Supply\n\nA React Native retail app with product browsing, account tools, and augmented-reality previews powered by ViroAR.\n',
2226
+ markdownPath: "content/projects/tractor-supply.md"
2227
+ },
2228
+ {
2229
+ title: "Trivenzor",
2230
+ slug: "trivenzor",
2231
+ description: "A responsive medical information site for Trivenzor, written for patients and for clinicians.",
2232
+ tech: [
2233
+ "JavaScript",
2234
+ "CSS",
2235
+ "Mootools"
2236
+ ],
2237
+ type: [
2238
+ "other",
2239
+ "frontend"
2240
+ ],
2241
+ image: "https://gaboesquivel.com/images/work/tribenzor.jpg",
2242
+ images: [],
2243
+ achievements: [
2244
+ "Developed a fully responsive and accessible medical landing page."
2245
+ ],
2246
+ story: [
2247
+ "Responsive medical information landing page for Trivenzor (hypertension medication), built with MooTools for patients and clinicians."
2248
+ ],
2249
+ order: 43,
2250
+ year: 2011,
2251
+ markdown: '---\ntitle: "Trivenzor"\nslug: "trivenzor"\ndescription: "A responsive medical information site for Trivenzor, written for patients and for clinicians."\ntech:\n - JavaScript\n - CSS\n - Mootools\ntype:\n - other\n - frontend\nimage: "https://gaboesquivel.com/images/work/tribenzor.jpg"\n\n\nimages: []\nachievements:\n - Developed a fully responsive and accessible medical landing page.\nstory:\n - Responsive medical information landing page for Trivenzor (hypertension medication), built with MooTools for patients and clinicians.\norder: 43\nyear: 2011\n---\n\n# Trivenzor\n\nA responsive medical information site for Trivenzor, written for patients and for clinicians.\n',
2252
+ markdownPath: "content/projects/trivenzor.md"
2253
+ },
2254
+ {
2255
+ title: "Wink",
2256
+ slug: "wink",
2257
+ description: "Costa Rica's first neobank, delivered through a React Native mobile app, AWS backend, partner-bank APIs, and biometrics.",
2258
+ role: "Lead Engineer",
2259
+ tech: [
2260
+ "TypeScript",
2261
+ "AWS",
2262
+ "Serverless",
2263
+ "React Native",
2264
+ "ReactJS",
2265
+ "NodeJS",
2266
+ "Biometrics",
2267
+ "Docker"
2268
+ ],
2269
+ type: [
2270
+ "full-time",
2271
+ "lead",
2272
+ "featured",
2273
+ "mobile",
2274
+ "backend",
2275
+ "fullstack",
2276
+ "frontend",
2277
+ "startup",
2278
+ "institution"
2279
+ ],
2280
+ link: "https://holawink.com",
2281
+ image: "https://gaboesquivel.com/images/work/wink.png",
2282
+ video: "https://www.youtube.com/watch?v=rfeISMW_OVc",
2283
+ images: [],
2284
+ achievements: [
2285
+ "Developed the first version of Wink's mobile banking app.",
2286
+ "Integrated partner-bank APIs so deposits, transfers, and account data could move through the app.",
2287
+ "Built biometric KYC with a React Native native bridge."
2288
+ ],
2289
+ story: [
2290
+ "Wink is Costa Rica's first neobank: a mobile app for banking without a branch visit. I built the first version of the app and the AWS backend it depended on.",
2291
+ "I chose the stack, planned the work, and coordinated partner-bank API integration. I also implemented biometric authentication so KYC and login did not need a branch visit.",
2292
+ "Launch required forming a development team that did not exist yet."
2293
+ ],
2294
+ experienceCompany: "Wink",
2295
+ order: 18,
2296
+ year: 2015,
2297
+ markdown: `---
2298
+ title: "Wink"
2299
+ slug: "wink"
2300
+ description: "Costa Rica's first neobank, delivered through a React Native mobile app, AWS backend, partner-bank APIs, and biometrics."
2301
+ role: "Lead Engineer"
2302
+ tech:
2303
+ - TypeScript
2304
+ - AWS
2305
+ - Serverless
2306
+ - React Native
2307
+ - ReactJS
2308
+ - NodeJS
2309
+ - Biometrics
2310
+ - Docker
2311
+ type:
2312
+ - full-time
2313
+ - lead
2314
+ - featured
2315
+ - mobile
2316
+ - backend
2317
+ - fullstack
2318
+ - frontend
2319
+ - startup
2320
+ - institution
2321
+ link: "https://holawink.com"
2322
+ image: "https://gaboesquivel.com/images/work/wink.png"
2323
+
2324
+ video: "https://www.youtube.com/watch?v=rfeISMW_OVc"
2325
+ images: []
2326
+ achievements:
2327
+ - Developed the first version of Wink's mobile banking app.
2328
+ - Integrated partner-bank APIs so deposits, transfers, and account data could move through the app.
2329
+ - Built biometric KYC with a React Native native bridge.
2330
+ story:
2331
+ - "Wink is Costa Rica's first neobank: a mobile app for banking without a branch visit. I built the first version of the app and the AWS backend it depended on."
2332
+ - I chose the stack, planned the work, and coordinated partner-bank API integration. I also implemented biometric authentication so KYC and login did not need a branch visit.
2333
+ - Launch required forming a development team that did not exist yet.
2334
+ experienceCompany: "Wink"
2335
+ order: 18
2336
+ year: 2015
2337
+ ---
2338
+
2339
+ # Wink
2340
+
2341
+ Costa Rica's first neobank, delivered through a React Native mobile app, AWS backend, partner-bank APIs, and biometrics.
2342
+ `,
2343
+ markdownPath: "content/projects/wink.md"
2344
+ },
2345
+ {
2346
+ title: "Wizard World",
2347
+ slug: "wizard-world",
2348
+ description: "A Flow Hackathon PWA for generating images with OpenAI and minting them as NFTs through Niftory.",
2349
+ tech: [
2350
+ "NextJS",
2351
+ "ReactJS",
2352
+ "Flow",
2353
+ "Niftory",
2354
+ "OpenAI",
2355
+ "Tailwind",
2356
+ "NFT",
2357
+ "TypeScript"
2358
+ ],
2359
+ type: [
2360
+ "ai",
2361
+ "web3",
2362
+ "hackathon",
2363
+ "frontend"
2364
+ ],
2365
+ link: "https://wizart.world",
2366
+ image: "https://gaboesquivel.com/images/work/wizart-world.png",
2367
+ repo: "https://github.com/bitcashorg/wizartworld",
2368
+ video: "https://www.youtube.com/watch?v=I_vBUflXHFA",
2369
+ images: [],
2370
+ achievements: [
2371
+ "Developed a progressive web app integrating AI-generated images with blockchain minting.",
2372
+ "Implemented OpenAI's LLM models for AI-driven image creation and metadata processing.",
2373
+ "Minted generated images as NFTs on Flow through Niftory."
2374
+ ],
2375
+ story: [
2376
+ "Wizard World is a progressive web app that connects to OpenAI's LLM models to generate AI images and mint them on the Flow blockchain. We developed it for the Flow Hackathon 2022 with collaborators at bitcashorg.",
2377
+ "I worked on the app itself, integrating OpenAI's models for image generation and the Flow minting flow, so a user could generate an image and mint it as an NFT."
2378
+ ],
2379
+ order: 15,
2380
+ year: 2022,
2381
+ markdown: `---
2382
+ title: "Wizard World"
2383
+ slug: "wizard-world"
2384
+ description: "A Flow Hackathon PWA for generating images with OpenAI and minting them as NFTs through Niftory."
2385
+ tech:
2386
+ - NextJS
2387
+ - ReactJS
2388
+ - Flow
2389
+ - Niftory
2390
+ - OpenAI
2391
+ - Tailwind
2392
+ - NFT
2393
+ - TypeScript
2394
+ type:
2395
+ - ai
2396
+ - web3
2397
+ - hackathon
2398
+ - frontend
2399
+ link: "https://wizart.world"
2400
+ image: "https://gaboesquivel.com/images/work/wizart-world.png"
2401
+ repo: "https://github.com/bitcashorg/wizartworld"
2402
+ video: "https://www.youtube.com/watch?v=I_vBUflXHFA"
2403
+ images: []
2404
+ achievements:
2405
+ - Developed a progressive web app integrating AI-generated images with blockchain minting.
2406
+ - Implemented OpenAI's LLM models for AI-driven image creation and metadata processing.
2407
+ - Minted generated images as NFTs on Flow through Niftory.
2408
+ story:
2409
+ - Wizard World is a progressive web app that connects to OpenAI's LLM models to generate AI images and mint them on the Flow blockchain. We developed it for the Flow Hackathon 2022 with collaborators at bitcashorg.
2410
+ - I worked on the app itself, integrating OpenAI's models for image generation and the Flow minting flow, so a user could generate an image and mint it as an NFT.
2411
+ order: 15
2412
+ year: 2022
2413
+ ---
2414
+
2415
+ # Wizard World
2416
+
2417
+ A Flow Hackathon PWA for generating images with OpenAI and minting them as NFTs through Niftory.
2418
+ `,
2419
+ markdownPath: "content/projects/wizard-world.md"
2420
+ },
2421
+ {
2422
+ title: "ZTX",
2423
+ slug: "ztx",
2424
+ description: "A Web3 virtual world with cryptocurrency-backed digital assets, a WebGL wallet connection, and a Next.js experience.",
2425
+ role: "Software Engineer",
2426
+ tech: [
2427
+ "WebGL",
2428
+ "Ethereum",
2429
+ "Ethers",
2430
+ "NFT",
2431
+ "NodeJS",
2432
+ "ReactJS",
2433
+ "NextJS",
2434
+ "AWS",
2435
+ "Serverless",
2436
+ "Tailwind",
2437
+ "TypeScript"
2438
+ ],
2439
+ type: [
2440
+ "web3",
2441
+ "full-time",
2442
+ "featured",
2443
+ "frontend",
2444
+ "fullstack",
2445
+ "startup"
2446
+ ],
2447
+ link: "https://ztx.io",
2448
+ image: "https://gaboesquivel.com/images/work/ztx.png",
2449
+ video: "https://www.youtube.com/watch?v=h58y6UzZ7RA",
2450
+ images: [],
2451
+ achievements: [
2452
+ "Set up the initial React architecture using Next.js, TailwindCSS, and Framer Motion.",
2453
+ "Developed a WebGL EVM wallet connector using MetaMask, Ethers.js, and a custom JavaScript event system.",
2454
+ "Wired analytics through Google Tag Manager."
2455
+ ],
2456
+ story: [
2457
+ "ZTX is a Web3 virtual world with cryptocurrency-backed digital asset ownership. I built the React application that hosted the virtual-world experience.",
2458
+ "Signing and NFT trading had to happen without leaving the WebGL world, so the wallet session lived inside that surface rather than in a separate app chrome.",
2459
+ "The product is a consumer world with a live wallet session inside WebGL. I connected the Next.js experience to signing and NFT trading so the chain receded behind the screen."
2460
+ ],
2461
+ experienceCompany: "ZTX",
2462
+ order: 5,
2463
+ year: 2022,
2464
+ markdown: '---\ntitle: "ZTX"\nslug: "ztx"\ndescription: "A Web3 virtual world with cryptocurrency-backed digital assets, a WebGL wallet connection, and a Next.js experience."\nrole: "Software Engineer"\ntech:\n - WebGL\n - Ethereum\n - Ethers\n - NFT\n - NodeJS\n - ReactJS\n - NextJS\n - AWS\n - Serverless\n - Tailwind\n - TypeScript\ntype:\n - web3\n - full-time\n - featured\n - frontend\n - fullstack\n - startup\nlink: "https://ztx.io"\nimage: "https://gaboesquivel.com/images/work/ztx.png"\n\nvideo: "https://www.youtube.com/watch?v=h58y6UzZ7RA"\nimages: []\nachievements:\n - Set up the initial React architecture using Next.js, TailwindCSS, and Framer Motion.\n - Developed a WebGL EVM wallet connector using MetaMask, Ethers.js, and a custom JavaScript event system.\n - Wired analytics through Google Tag Manager.\nstory:\n - ZTX is a Web3 virtual world with cryptocurrency-backed digital asset ownership. I built the React application that hosted the virtual-world experience.\n - Signing and NFT trading had to happen without leaving the WebGL world, so the wallet session lived inside that surface rather than in a separate app chrome.\n - The product is a consumer world with a live wallet session inside WebGL. I connected the Next.js experience to signing and NFT trading so the chain receded behind the screen.\nexperienceCompany: "ZTX"\norder: 5\nyear: 2022\n---\n\n# ZTX\n\nA Web3 virtual world with cryptocurrency-backed digital assets, a WebGL wallet connection, and a Next.js experience.\n',
2465
+ markdownPath: "content/projects/ztx.md"
2466
+ }
2467
+ ];
2468
+
2469
+ // src/generated/tech.ts
2470
+ var techStack = [
2471
+ {
2472
+ name: "AI SDK",
2473
+ slug: "ai-sdk",
2474
+ tag: "AI SDK",
2475
+ image: "/images/tech/ai-sdk.png",
2476
+ description: "Vercel's TypeScript toolkit for streaming LLM responses, tool calling, and structured outputs in React and Node.js apps.",
2477
+ link: "https://ai-sdk.dev/",
2478
+ since: "2023",
2479
+ experience: [
2480
+ "Wired LegalAgent's chat UI to the Vercel AI SDK with streaming responses and tool calls for legal workflows.",
2481
+ "Built Bitlauncher's site chatbot with AI SDK tools for news, video, and structured product answers.",
2482
+ "Automated Masterbots and Bitlauncher locale copy generation with AI SDK prompt templates."
2483
+ ]
2484
+ },
2485
+ {
2486
+ name: "Alchemy",
2487
+ slug: "alchemy",
2488
+ tag: "Alchemy",
2489
+ image: "/images/tech/alchemy.png",
2490
+ description: "Managed Ethereum RPC, webhooks, and developer APIs for reliable chain reads, writes, and indexing workloads.",
2491
+ link: "https://www.alchemy.com/",
2492
+ since: "2020",
2493
+ experience: [
2494
+ "Routed Opyn's Arbitrum Testnet reads and writes through Alchemy RPC endpoints behind Viem clients.",
2495
+ "Used Alchemy as the node provider layer for Bitlauncher EVM indexing and wallet interactions."
2496
+ ]
2497
+ },
2498
+ {
2499
+ name: "AngularJS",
2500
+ slug: "angularjs",
2501
+ tag: "AngularJS",
2502
+ image: "/images/tech/angularjs.png",
2503
+ description: "SPA framework for subscription apps, flight-information dashboards, and fitness trackers in early full-stack products.",
2504
+ link: "https://angularjs.org/",
2505
+ since: "2018",
2506
+ experience: [
2507
+ "Built Eat Arcade's full-stack subscription app with AngularJS, Node.js, and MongoDB on Heroku.",
2508
+ "Connected ARINC Microfids' AngularJS frontend to a Ruby on Rails backend for live flight boards.",
2509
+ "Developed the 4Tius Fitness Data Tracker dashboard with AngularJS and secure API endpoints."
2510
+ ]
2511
+ },
2512
+ {
2513
+ name: "Antelope",
2514
+ slug: "antelope",
2515
+ tag: "Antelope",
2516
+ image: "/images/tech/antelope.png",
2517
+ description: "High-throughput chain protocol behind exchange backends, GraphQL indexers, multichain auctions, and music marketplaces.",
2518
+ link: "https://antelope.io/",
2519
+ since: "2018",
2520
+ experience: [
2521
+ "Built Bitcash's peer-to-peer exchange, chat, and EOS indexer on Antelope infrastructure with Node.js services.",
2522
+ "Indexed Antelope chain data for ChainGraph's open-source GraphQL toolkit.",
2523
+ "Shipped Bitlauncher's multichain auction product with Antelope and EOS EVM contract deployments.",
2524
+ "Delivered Emanate's music marketplace against Antelope accounts and contract APIs."
2525
+ ]
2526
+ },
2527
+ {
2528
+ name: "Artificial Intelligence",
2529
+ slug: "artificial-intelligence",
2530
+ tag: "Artificial Intelligence",
2531
+ image: "/images/tech/artificial-intelligence.png",
2532
+ description: "Production AI assistants with retrieval, chat, voice, and automated localization across legal and domain-specific products.",
2533
+ link: "https://ai-sdk.dev/",
2534
+ since: "2023",
2535
+ experience: [
2536
+ "Shipped LegalAgent as a multimodal legal assistant combining retrieval, chat, and voice models for lawyers.",
2537
+ "Built Bitlauncher's domain chatbot and template-driven internationalization with model-backed content generation.",
2538
+ "Structured Masterbots around specialized AI assistants with automated localization across product surfaces."
2539
+ ],
2540
+ featuredOrder: 2
2541
+ },
2542
+ {
2543
+ name: "AWS",
2544
+ slug: "aws",
2545
+ tag: "AWS",
2546
+ image: "/images/tech/aws.png",
2547
+ description: "Cloud infrastructure for neobank backends, virtual-world services, token marketplaces, and image processing workloads.",
2548
+ link: "https://aws.amazon.com/",
2549
+ since: "2015",
2550
+ experience: [
2551
+ "Built Wink's serverless AWS backend for partner-bank API integration and the neobank mobile app.",
2552
+ "Deployed ZTX's Next.js virtual-world and wallet services on AWS during early product development.",
2553
+ "Led Knowledge.io's serverless AWS infrastructure for the token, marketplace, and wallet services.",
2554
+ "Ran Photo and Go image storage and processing workloads on AWS for the commerce editor."
2555
+ ]
2556
+ },
2557
+ {
2558
+ name: "Biometrics",
2559
+ slug: "biometrics",
2560
+ tag: "Biometrics",
2561
+ image: "/images/tech/biometrics.png",
2562
+ description: "Device-bound identity verification for Wink neobank login and Bitcash exchange authentication.",
2563
+ link: "https://fidoalliance.org/fido2/",
2564
+ since: "2020",
2565
+ experience: [
2566
+ "Implemented biometric authentication on Wink so KYC and login worked without a branch visit.",
2567
+ "Integrated biometric verification into Bitcash's exchange alongside WebAuthn transaction signing."
2568
+ ]
2569
+ },
2570
+ {
2571
+ name: "Blockchain",
2572
+ slug: "blockchain",
2573
+ tag: "Blockchain",
2574
+ image: "/images/tech/blockchain.png",
2575
+ description: "On-chain products and indexer systems across EVM chains and Antelope, from token launches to exchange backends and open-source tooling.",
2576
+ link: "https://ethereum.org/en/developers/docs/",
2577
+ since: "2017",
2578
+ experience: [
2579
+ "Shipped DeFi, NFT, and token products on Ethereum and EVM chains for Knowledge.io, RareMint, Opyn, and Bitlauncher.",
2580
+ "Built Antelope-based exchange and indexer systems for Bitcash and ChainGraph with on-chain accounts, contracts, and live chain data.",
2581
+ "Contributed open-source blockchain tooling including ChainGraph and Substrate Contracts UI."
2582
+ ],
2583
+ featuredOrder: 1
2584
+ },
2585
+ {
2586
+ name: "Bootstrap",
2587
+ slug: "bootstrap",
2588
+ tag: "Bootstrap",
2589
+ image: "/images/tech/bootstrap.png",
2590
+ description: "Responsive grid toolkit for energy dashboards, WordPress sites, and early subscription web apps.",
2591
+ link: "https://getbootstrap.com/",
2592
+ since: "2018",
2593
+ experience: [
2594
+ "Built Gridium's energy-analytics prototype with Bootstrap for the chart dashboard layout.",
2595
+ "Structured Capoeira Abolicao's WordPress promotional site with Bootstrap responsive grids.",
2596
+ "Laid out Eat Arcade's restaurant subscription web app with Bootstrap alongside AngularJS."
2597
+ ]
2598
+ },
2599
+ {
2600
+ name: "Content Management Systems",
2601
+ slug: "cms",
2602
+ tag: "CMS",
2603
+ image: "/images/tech/cms.png",
2604
+ description: "Custom CMS for ITS InfoCom's corporate site, including CRM integration.",
2605
+ link: "https://wordpress.org/",
2606
+ since: "2009",
2607
+ experience: [
2608
+ "Built ITS InfoCom's corporate website and custom CMS with CRM integration at IntergraphiDesign."
2609
+ ]
2610
+ },
2611
+ {
2612
+ name: "C++",
2613
+ slug: "cpp",
2614
+ tag: "C++",
2615
+ image: "/images/tech/cpp.png",
2616
+ description: "Performance-critical indexing and EOSIO node software for exchange backends, validators, and onchain rating contracts.",
2617
+ link: "https://isocpp.org/",
2618
+ since: "2018",
2619
+ experience: [
2620
+ "Wrote C++ indexing services at Bitcash for realtime EOS blockchain data deserialization.",
2621
+ "Built EOS Costa Rica validator and private-chain infrastructure with C++ EOSIO node software.",
2622
+ "Implemented onchain rating storage for EOS Rate with C++ smart contract logic on EOSIO."
2623
+ ]
2624
+ },
2625
+ {
2626
+ name: "CSS",
2627
+ slug: "css",
2628
+ tag: "CSS",
2629
+ image: "/images/tech/css.png",
2630
+ description: "Layout and responsive styling for ecommerce navigation, energy dashboards, and early client marketing sites.",
2631
+ link: "https://developer.mozilla.org/en-US/docs/Web/CSS",
2632
+ since: "2009",
2633
+ experience: [
2634
+ "Rebuilt Staples' ecommerce navigation and responsive UI components for smaller screens.",
2635
+ "Styled Gridium's energy-analytics charts and dashboard for readable consumption data.",
2636
+ "Laid out Capoeira Abolicao's WordPress site with responsive CSS and Bootstrap grids."
2637
+ ]
2638
+ },
2639
+ {
2640
+ name: "Data Charts",
2641
+ slug: "data-charts",
2642
+ tag: "Data Charts",
2643
+ image: "/images/tech/data-charts.png",
2644
+ description: "Interactive energy-consumption visualizations for Gridium's commercial-building monitoring dashboard.",
2645
+ link: "https://www.chartjs.org/",
2646
+ since: "2018",
2647
+ experience: [
2648
+ "Built Gridium's interactive energy-consumption charts for real-time commercial-building monitoring."
2649
+ ]
2650
+ },
2651
+ {
2652
+ name: "DatoCMS",
2653
+ slug: "datocms",
2654
+ tag: "DatoCMS",
2655
+ image: "/images/tech/datocms.png",
2656
+ description: "Headless CMS option for structured editorial content in content-driven web applications.",
2657
+ link: "https://www.datocms.com/",
2658
+ since: "2020",
2659
+ experience: []
2660
+ },
2661
+ {
2662
+ name: "Docker",
2663
+ slug: "docker",
2664
+ tag: "Docker",
2665
+ image: "/images/tech/docker.png",
2666
+ description: "Container packaging for ChainGraph's indexer and Photo and Go's releases, and for matching dev and cloud environments in Masterbots and Bitlauncher.",
2667
+ link: "https://www.docker.com/",
2668
+ since: "2013",
2669
+ experience: [
2670
+ "Containerized ChainGraph's GraphQL indexer and supporting services for repeatable deployments.",
2671
+ "Packaged Photo and Go's application stack in Docker for staging and production releases.",
2672
+ "Used Docker in Masterbots and Bitlauncher pipelines to align dev and cloud environments."
2673
+ ],
2674
+ featuredOrder: 12
2675
+ },
2676
+ {
2677
+ name: "Ethereum",
2678
+ slug: "ethereum",
2679
+ tag: "Ethereum",
2680
+ image: "/images/tech/ethereum.png",
2681
+ description: "EVM contracts and deployments behind token products, NFT marketplaces, options protocols, and cross-chain auction systems.",
2682
+ link: "https://ethereum.org/",
2683
+ since: "2017",
2684
+ experience: [
2685
+ "Deployed Knowledge.io token and marketplace contracts on Ethereum mainnet and test networks.",
2686
+ "Shipped RareMint's NFT marketplace and Opyn's options protocol on Arbitrum-compatible EVM chains.",
2687
+ "Ran Gnosis auction contracts on EOS EVM for Bitlauncher batch sales with uniform clearing prices."
2688
+ ],
2689
+ featuredOrder: 3
2690
+ },
2691
+ {
2692
+ name: "Ethers.js",
2693
+ slug: "ethersjs",
2694
+ tag: "Ethers",
2695
+ image: "/images/tech/ethersjs.png",
2696
+ description: "Ethereum library behind ZTX's WebGL wallet connector, RareMint's Polygon marketplace, and Knowledge.io's ERC-20 ICO, before the move to Viem and Wagmi.",
2697
+ link: "https://docs.ethers.org/",
2698
+ since: "2017",
2699
+ experience: [
2700
+ "Connected MetaMask to ZTX's virtual world through Ethers.js and a custom JavaScript event system for NFT signing.",
2701
+ "Ran RareMint's Polygon marketplace minting and ownership flows through Ethers.js contract interfaces.",
2702
+ "Indexed RareMint NFT transfers with Moralis streams, Node.js, and Ethers.js event parsing.",
2703
+ "Led Knowledge.io's 2018 ERC-20 ICO contract interactions with Ethers.js providers and wallets."
2704
+ ]
2705
+ },
2706
+ {
2707
+ name: "Expo",
2708
+ slug: "expo",
2709
+ tag: "Expo",
2710
+ image: "/images/tech/expo.png",
2711
+ description: "React Native toolchain for LegalAgent's voice assistant and Flow Hackathon game builds.",
2712
+ link: "https://expo.dev/",
2713
+ since: "2017",
2714
+ experience: [
2715
+ "Shipped LegalAgent's bilingual voice and chat assistant on Expo with OpenAI Realtime API integration.",
2716
+ "Used Expo for Fantasy Top Shots' mobile builds during the 2022 Flow Hackathon."
2717
+ ]
2718
+ },
2719
+ {
2720
+ name: "Faye",
2721
+ slug: "faye",
2722
+ tag: "Faye",
2723
+ image: "/images/tech/faye.png",
2724
+ description: "Pub-sub messaging for live flight updates on ARINC Microfids' AngularJS airport display boards.",
2725
+ link: "https://faye.jcoglan.com/",
2726
+ since: "2009",
2727
+ experience: [
2728
+ "Pushed live flight updates to ARINC Microfids' AngularJS boards with Faye pub-sub messaging."
2729
+ ]
2730
+ },
2731
+ {
2732
+ name: "Foundry",
2733
+ slug: "foundry",
2734
+ tag: "Foundry",
2735
+ image: "/images/tech/foundry.png",
2736
+ description: "Solidity toolkit for testing and deploying Opyn's options protocol to Arbitrum Testnet with forge tests and deployment scripts.",
2737
+ link: "https://getfoundry.sh/",
2738
+ since: "2024",
2739
+ experience: [
2740
+ "Tested and deployed Opyn's options protocol Solidity to Arbitrum Testnet with Foundry scripts and forge tests."
2741
+ ]
2742
+ },
2743
+ {
2744
+ name: "GCP",
2745
+ slug: "gcloud",
2746
+ tag: "GCP",
2747
+ image: "/images/tech/gcloud.png",
2748
+ description: "Google Cloud compute, storage, and managed services for APIs, indexers, databases, and containerized workloads.",
2749
+ link: "https://cloud.google.com/",
2750
+ since: "2018",
2751
+ experience: [
2752
+ "Hosted Bitcash's React, Node.js, PostgreSQL, and EOS indexer stack on Google Cloud with worker-thread deserialization.",
2753
+ "Ran RareMint's NFT indexer APIs and Polygon data pipelines on GCP infrastructure.",
2754
+ "Deployed ChainGraph services and Bitlauncher's backend workloads on Google Cloud."
2755
+ ],
2756
+ featuredOrder: 11
2757
+ },
2758
+ {
2759
+ name: "GraphQL",
2760
+ slug: "graphql",
2761
+ tag: "GraphQL",
2762
+ image: "/images/tech/graphql.png",
2763
+ description: "Typed API layer for blockchain subscriptions, exchange data, onchain ratings, and marketplace services.",
2764
+ link: "https://graphql.org/",
2765
+ since: "2015",
2766
+ experience: [
2767
+ "Built ChainGraph's real-time GraphQL subscription toolkit for EOSIO and Antelope blockchain data.",
2768
+ "Exposed Bitcash's indexed EOS trading data through GraphQL APIs over Hasura and PostgreSQL.",
2769
+ "Developed EOS Rate's GraphQL API for reading onchain block-producer ratings and comparison UI.",
2770
+ "Integrated Knowledge.io marketplace and wallet services with GraphQL in the serverless AWS stack."
2771
+ ]
2772
+ },
2773
+ {
2774
+ name: "Hardhat",
2775
+ slug: "hardhat",
2776
+ tag: "Hardhat",
2777
+ image: "/images/tech/hardhat.png",
2778
+ description: "Solidity compile and test environment for Bitlauncher auction contracts before EOS EVM deployment.",
2779
+ link: "https://hardhat.org/",
2780
+ since: "2020",
2781
+ experience: [
2782
+ "Compiled and tested Bitlauncher's Solidity auction contracts with Hardhat before EOS EVM deployment."
2783
+ ]
2784
+ },
2785
+ {
2786
+ name: "Heroku",
2787
+ slug: "heroku",
2788
+ tag: "Heroku",
2789
+ image: "/images/tech/heroku.png",
2790
+ description: "Hosted deployments for subscription apps, Rails backends, restaurant sites, and early ecommerce prototypes.",
2791
+ link: "https://www.heroku.com/",
2792
+ since: "2018",
2793
+ experience: [
2794
+ "Deployed Eat Arcade's Node.js, MongoDB, and AngularJS subscription app on Heroku with Stripe and Twilio.",
2795
+ "Hosted ARINC Microfids' Ruby on Rails flight-information backend on Heroku for hotel and airport displays.",
2796
+ "Deployed Tikr's Spree and Ruby on Rails dynamic-pricing store on Heroku with PostgreSQL."
2797
+ ]
2798
+ },
2799
+ {
2800
+ name: "JavaScript",
2801
+ slug: "javascript",
2802
+ tag: "JavaScript",
2803
+ image: "/images/tech/javascript.png",
2804
+ description: "Client and server scripting for community platforms, ecommerce navigation, energy dashboards, and early full-stack products.",
2805
+ link: "https://developer.mozilla.org/en-US/docs/Web/JavaScript",
2806
+ since: "2009",
2807
+ experience: [
2808
+ "Founded Costa Rica JS in 2010 and grew the community past 2,000 developers through meetups, NodeSchool, and JSConf.",
2809
+ "Built Elder Scrolls Online's official community site with JavaScript for news, guides, and forum navigation.",
2810
+ "Implemented frontend load-time improvements on Staples' ecommerce storefront in JavaScript.",
2811
+ "Built Gridium's energy-analytics prototype with JavaScript-driven interactive charts."
2812
+ ]
2813
+ },
2814
+ {
2815
+ name: "LESS",
2816
+ slug: "less",
2817
+ tag: "LESS",
2818
+ image: "/images/tech/less.png",
2819
+ description: "CSS preprocessor for ARINC Microfids' AngularJS flight-information display styling.",
2820
+ link: "https://lesscss.org/",
2821
+ since: "2009",
2822
+ experience: [
2823
+ "Styled ARINC Microfids' AngularJS flight-information displays with LESS alongside Faye real-time updates."
2824
+ ]
2825
+ },
2826
+ {
2827
+ name: "MongoDB",
2828
+ slug: "mongodb",
2829
+ tag: "MongoDB",
2830
+ image: "/images/tech/mongodb.png",
2831
+ description: "Document store for subscription delivery data and Fitbit-connected fitness metrics behind secure APIs.",
2832
+ link: "https://www.mongodb.com/",
2833
+ since: "2018",
2834
+ experience: [
2835
+ "Stored Eat Arcade's restaurant subscription and SMS delivery data in MongoDB on Heroku.",
2836
+ "Persisted 4Tius Fitness Data Tracker metrics in MongoDB behind a secure API on AWS."
2837
+ ]
2838
+ },
2839
+ {
2840
+ name: "MooTools",
2841
+ slug: "mootools",
2842
+ tag: "Mootools",
2843
+ image: "/images/tech/mootools.png",
2844
+ description: "JavaScript framework for responsive medical landing pages in early client work.",
2845
+ link: "https://mootools.net/",
2846
+ since: "2009",
2847
+ experience: [
2848
+ "Built Trivenzor's responsive medical information landing page with MooTools for patients and clinicians."
2849
+ ]
2850
+ },
2851
+ {
2852
+ name: "Next.js",
2853
+ slug: "nextjs",
2854
+ tag: "NextJS",
2855
+ image: "/images/tech/nextjs.png",
2856
+ description: "Full-stack React framework for trading apps, auction platforms, AI assistants, and virtual-world experiences with SSR and server components.",
2857
+ link: "https://nextjs.org/",
2858
+ since: "2016",
2859
+ experience: [
2860
+ "Shipped Opyn's trading app on Next.js 14 with React Server Components over Ponder-indexed chain data.",
2861
+ "Ran Bitlauncher's auction platform on Next.js 14 with live chain updates through Supabase subscriptions.",
2862
+ "Built Masterbots on Next.js with the AI SDK for domain-specific assistants and automated internationalization.",
2863
+ "Delivered ZTX's web experience on Next.js with embedded WebGL wallet connection for NFT trading."
2864
+ ],
2865
+ featuredOrder: 9
2866
+ },
2867
+ {
2868
+ name: "NFT",
2869
+ slug: "nft",
2870
+ tag: "NFT",
2871
+ image: "/images/tech/nft.png",
2872
+ description: "On-chain collectibles in Polygon marketplaces, virtual-world commerce, and hackathon minting flows.",
2873
+ link: "https://ethereum.org/en/developers/docs/standards/tokens/erc-721/",
2874
+ since: "2022",
2875
+ experience: [
2876
+ "Built RareMint's Polygon marketplace for minting, listing, and trading ERC-721 collectibles.",
2877
+ "Connected ZTX's in-world commerce to NFT inventory and wallet signing for player-owned items.",
2878
+ "Minted Wizard World hackathon assets on Flow after OpenAI image generation in the PWA."
2879
+ ]
2880
+ },
2881
+ {
2882
+ name: "Niftory",
2883
+ slug: "niftory",
2884
+ tag: "Niftory",
2885
+ image: "/images/tech/niftory.png",
2886
+ description: "Flow NFT minting infrastructure for Wizard World hackathon assets generated with OpenAI image models.",
2887
+ link: "https://niftory.com/",
2888
+ since: "2022",
2889
+ experience: [
2890
+ "Minted Wizard World AI-generated images as Flow NFTs through Niftory during the Flow Hackathon."
2891
+ ]
2892
+ },
2893
+ {
2894
+ name: "Node.js",
2895
+ slug: "nodejs",
2896
+ tag: "NodeJS",
2897
+ image: "/images/tech/nodejs.png",
2898
+ description: "Server runtime for EVM indexers, Antelope workers, exchange backends, and serverless API functions in production systems.",
2899
+ link: "https://nodejs.org/",
2900
+ since: "2009",
2901
+ experience: [
2902
+ "Indexed Bitlauncher EVM events in Node.js with Viem subscriptions and wrote auction state to PostgreSQL.",
2903
+ "Streamed Antelope blocks into ChainGraph's GraphQL layer with Node.js workers and PostgreSQL storage.",
2904
+ "Ran Bitcash's matching engine, realtime chat, and EOS indexer services on Node.js.",
2905
+ "Deployed Knowledge.io token and marketplace logic as serverless Node.js functions."
2906
+ ],
2907
+ featuredOrder: 10
2908
+ },
2909
+ {
2910
+ name: "nuqs",
2911
+ slug: "nuqs",
2912
+ tag: "nuqs",
2913
+ image: "/images/tech/nuqs.png",
2914
+ description: "URL state synchronization for auction filters, trading views, and shareable assistant pages on Next.js.",
2915
+ link: "https://nuqs.47ng.com/",
2916
+ since: "2023",
2917
+ experience: [
2918
+ "Synced Bitlauncher's auction filters and wallet views with URL state through nuqs on Next.js.",
2919
+ "Managed Opyn's trading interface URL state with nuqs alongside TanStack Query and Zod validation.",
2920
+ "Wired Masterbots' assistant views to shareable URL parameters with nuqs on Next.js."
2921
+ ]
2922
+ },
2923
+ {
2924
+ name: "OpenAI",
2925
+ slug: "openai",
2926
+ tag: "OpenAI",
2927
+ image: "/images/tech/openai.png",
2928
+ description: "APIs and models for chat, embeddings, image generation, and realtime voice used in production assistant products.",
2929
+ link: "https://openai.com/",
2930
+ since: "2022",
2931
+ experience: [
2932
+ "Integrated OpenAI Realtime voice in LegalAgent's multimodal assistant for spoken legal intake and responses.",
2933
+ "Powered Bitlauncher's public chatbot and Masterbots domain assistants with OpenAI chat models.",
2934
+ "Used DALL\xB7E in Wizard World to generate images that players minted as Flow NFTs during the hackathon build."
2935
+ ]
2936
+ },
2937
+ {
2938
+ name: "Ponder",
2939
+ slug: "ponder",
2940
+ tag: "Ponder",
2941
+ image: "/images/tech/ponder.png",
2942
+ description: "On-chain event indexer that persists options chain data to PostgreSQL for Opyn's Next.js trading interface.",
2943
+ link: "https://ponder.sh/",
2944
+ since: "2024",
2945
+ experience: [
2946
+ "Ran Ponder for Opyn on Arbitrum Testnet, persisting options chain data in PostgreSQL for the Next.js trading UI."
2947
+ ]
2948
+ },
2949
+ {
2950
+ name: "PostgreSQL",
2951
+ slug: "postgresql",
2952
+ tag: "PostgreSQL",
2953
+ image: "/images/tech/postgresql.png",
2954
+ description: "Relational store for auction indexing, options chain data, exchange backends, and blockchain subscription pipelines.",
2955
+ link: "https://www.postgresql.org/",
2956
+ since: "2012",
2957
+ experience: [
2958
+ "Indexed Bitlauncher auction and transaction data in PostgreSQL through Supabase.",
2959
+ "Stored Opyn's Ponder-indexed options chain data in PostgreSQL via Supabase.",
2960
+ "Ran Bitcash's peer-to-peer exchange, chat, and EOS indexer on PostgreSQL with Hasura.",
2961
+ "Persisted ChainGraph blockchain subscription data in PostgreSQL for GraphQL queries."
2962
+ ]
2963
+ },
2964
+ {
2965
+ name: "Ruby on Rails",
2966
+ slug: "rails",
2967
+ tag: "Ruby on Rails",
2968
+ image: "/images/tech/rails.png",
2969
+ description: "Full-stack framework for dynamic pricing stores and flight-information backends feeding AngularJS frontends.",
2970
+ link: "https://rubyonrails.org/",
2971
+ since: "2009",
2972
+ experience: [
2973
+ "Built Tikr's dynamic pricing engine on Spree and Ruby on Rails with PostgreSQL on Heroku.",
2974
+ "Developed ARINC Microfids' flight-information backend in Ruby on Rails, feeding live data to AngularJS."
2975
+ ]
2976
+ },
2977
+ {
2978
+ name: "React Native",
2979
+ slug: "react-native",
2980
+ tag: "React Native",
2981
+ image: "/images/tech/react-native.png",
2982
+ description: "Cross-platform mobile for neobank apps, AI assistants, retail AR previews, and hackathon game builds.",
2983
+ link: "https://reactnative.dev/",
2984
+ since: "2015",
2985
+ experience: [
2986
+ "Built LegalAgent's multimodal AI assistant with voice and chat interfaces in React Native and Expo.",
2987
+ "Shipped the first version of Wink, Costa Rica's neobank mobile app, on React Native with partner-bank API integration.",
2988
+ "Improved performance and introduced TypeScript in Tractor Supply's existing React Native retail app.",
2989
+ "Built Fantasy Top Shots as a Flow Hackathon game with React Native, Expo, and NBA Top Shot NFT rosters."
2990
+ ]
2991
+ },
2992
+ {
2993
+ name: "React",
2994
+ slug: "reactjs",
2995
+ tag: "ReactJS",
2996
+ image: "/images/tech/reactjs.png",
2997
+ description: "Component model for web UIs across trading interfaces, admin dashboards, and marketplace screens in Next.js and standalone apps.",
2998
+ link: "https://react.dev/",
2999
+ since: "2013",
3000
+ experience: [
3001
+ "Split Opyn's options trading components between server components that read indexed protocol state and client components for wallet actions.",
3002
+ "Composed Bitlauncher's live auction and wallet screens with React state fed by Supabase realtime channels.",
3003
+ "Implemented LegalAgent's admin dashboards in React with Microsoft SSO and document management flows.",
3004
+ "Refactored RareMint's marketplace UI during a Next.js SSR performance pass with component-level code splitting.",
3005
+ "Shipped ZTX's Next.js shell that embeds WebGL wallet flows for in-world NFT trading."
3006
+ ],
3007
+ featuredOrder: 8
3008
+ },
3009
+ {
3010
+ name: "Redis",
3011
+ slug: "redis",
3012
+ tag: "Redis",
3013
+ image: "/images/tech/redis.png",
3014
+ description: "In-memory data store in LegalAgent's production stack.",
3015
+ link: "https://redis.io/",
3016
+ since: "2015",
3017
+ experience: [
3018
+ "Ran Redis in LegalAgent's production stack, alongside the React Native assistant and the admin services."
3019
+ ]
3020
+ },
3021
+ {
3022
+ name: "Redux",
3023
+ slug: "redux",
3024
+ tag: "Redux",
3025
+ image: "/images/tech/redux.png",
3026
+ description: "Shared application state for retail AR features and photo editor commerce workflows in React Native and web apps.",
3027
+ link: "https://redux.js.org/",
3028
+ since: "2016",
3029
+ experience: [
3030
+ "Managed shared state in the Tractor Supply React Native app with Redux during performance and AR feature work.",
3031
+ "Led Photo and Go's photo editor state with Redux, connecting the custom editor to the commerce backend."
3032
+ ]
3033
+ },
3034
+ {
3035
+ name: "RxJS",
3036
+ slug: "rxjs",
3037
+ tag: "RXJS",
3038
+ image: "/images/tech/rxjs.png",
3039
+ description: "Reactive streams for ChainGraph's real-time blockchain data subscriptions over EOSIO and Antelope networks.",
3040
+ link: "https://rxjs.dev/",
3041
+ since: "2020",
3042
+ experience: [
3043
+ "Built ChainGraph's real-time blockchain data streaming with RxJS Observables over EOSIO and Antelope networks."
3044
+ ]
3045
+ },
3046
+ {
3047
+ name: "Serverless",
3048
+ slug: "serverless",
3049
+ tag: "Serverless",
3050
+ image: "/images/tech/serverless.png",
3051
+ description: "AWS Lambda execution for neobank backends, virtual-world services, and token marketplace APIs.",
3052
+ link: "https://www.serverless.com/",
3053
+ since: "2015",
3054
+ experience: [
3055
+ "Ran Wink's partner-bank integrations and mobile app services as AWS Lambda functions.",
3056
+ "Ran ZTX's wallet services as serverless functions while the virtual world was in early development.",
3057
+ "Split Knowledge.io's token, marketplace, and wallet APIs into serverless functions around the ERC-20 token."
3058
+ ]
3059
+ },
3060
+ {
3061
+ name: "shadcn/ui",
3062
+ slug: "shadcn",
3063
+ tag: "ShadcnUI",
3064
+ image: "/images/tech/shadcn.png",
3065
+ description: "Accessible React component layer for options trading, auction screens, and AI assistant interfaces on Next.js.",
3066
+ link: "https://ui.shadcn.com/",
3067
+ since: "2021",
3068
+ experience: [
3069
+ "Built Opyn's options trading interface with shadcn/ui components on Radix UI and Tailwind CSS.",
3070
+ "Composed Bitlauncher's auction, wallet, and bidding screens from shadcn/ui on Next.js 14.",
3071
+ "Structured Masterbots' assistant interfaces with shadcn/ui as the shared component layer."
3072
+ ]
3073
+ },
3074
+ {
3075
+ name: "Solidity",
3076
+ slug: "solidity",
3077
+ tag: "Solidity",
3078
+ image: "/images/tech/solidity.png",
3079
+ description: "Smart contract language for EVM auction systems, options protocols, and token deployments tested with Foundry.",
3080
+ link: "https://soliditylang.org/",
3081
+ since: "2017",
3082
+ experience: [
3083
+ "Authored Gnosis auction Solidity for Bitlauncher on EOS EVM with batch bidding and uniform pricing rules.",
3084
+ "Wrote Opyn options protocol contracts for Arbitrum Testnet, tested and deployed with Foundry.",
3085
+ "Delivered ERC-20 token contracts for Knowledge.io's 2018 mainnet ICO."
3086
+ ],
3087
+ featuredOrder: 4
3088
+ },
3089
+ {
3090
+ name: "Stitches",
3091
+ slug: "stitches",
3092
+ tag: "Stitches",
3093
+ image: "/images/tech/stitches.png",
3094
+ description: "CSS-in-JS styling for Bitcash's React exchange interface alongside Zustand client state.",
3095
+ link: "https://stitches.dev/",
3096
+ since: "2021",
3097
+ experience: [
3098
+ "Styled Bitcash's React exchange interface with Stitches alongside Zustand for client state."
3099
+ ]
3100
+ },
3101
+ {
3102
+ name: "Stripe",
3103
+ slug: "stripe",
3104
+ tag: "Stripe",
3105
+ image: "/images/tech/stripe.png",
3106
+ description: "Checkout and subscription payments for Eat Arcade's SMS restaurant service on Heroku.",
3107
+ link: "https://stripe.com/",
3108
+ since: "2018",
3109
+ experience: [
3110
+ "Integrated Stripe checkout into Eat Arcade's SMS restaurant subscription service on Heroku."
3111
+ ]
3112
+ },
3113
+ {
3114
+ name: "Supabase",
3115
+ slug: "supabase",
3116
+ tag: "Supabase",
3117
+ image: "/images/tech/supabase.png",
3118
+ description: "PostgreSQL-backed realtime layer for auction indexing, options data, and QR signature flows in Web3 products.",
3119
+ link: "https://supabase.io/",
3120
+ since: "2022",
3121
+ experience: [
3122
+ "Architected Bitlauncher on Supabase for transaction indexing, real-time auction subscriptions, and data aggregation.",
3123
+ "Indexed Opyn's onchain options data in PostgreSQL through Supabase alongside Ponder.",
3124
+ "Used Supabase subscriptions and webhooks on Bitcash for QR-based signature request flows."
3125
+ ]
3126
+ },
3127
+ {
3128
+ name: "Tailwind CSS",
3129
+ slug: "tailwind",
3130
+ tag: "Tailwind",
3131
+ image: "/images/tech/tailwind.png",
3132
+ description: "Utility-first styling for trading interfaces, AI dashboards, virtual-world shells, and marketplace UIs across Next.js and React apps.",
3133
+ link: "https://tailwindcss.com/",
3134
+ since: "2022",
3135
+ experience: [
3136
+ "Set up ZTX's Next.js architecture with Tailwind CSS and Framer Motion for the virtual-world experience.",
3137
+ "Styled Opyn's options trading screens with Tailwind CSS utilities.",
3138
+ "Styled LegalAgent's admin dashboard and multimodal assistant UI with Tailwind CSS.",
3139
+ "Styled Bitlauncher's bidding and token bridge flows with Tailwind CSS."
3140
+ ]
3141
+ },
3142
+ {
3143
+ name: "TanStack Form",
3144
+ slug: "tanstack-form",
3145
+ tag: "TanStack Form",
3146
+ image: "/images/tech/tanstack-form.png",
3147
+ description: "Headless form layer for LegalAgent's document categorization and system prompt management in the admin dashboard.",
3148
+ link: "https://tanstack.com/form/latest",
3149
+ since: "2022",
3150
+ experience: [
3151
+ "Built LegalAgent's admin forms for document categorization and system prompt management with TanStack Form."
3152
+ ]
3153
+ },
3154
+ {
3155
+ name: "TanStack Query",
3156
+ slug: "tanstack-query",
3157
+ tag: "TanStack Query",
3158
+ image: "/images/tech/tanstack-query.png",
3159
+ description: "Server data caching for RAG assistants, auction platforms, options trading, and chatbot interfaces on Next.js.",
3160
+ link: "https://tanstack.com/query/latest",
3161
+ since: "2021",
3162
+ experience: [
3163
+ "Wired LegalAgent's RAG-backed assistant and admin dashboard data layer with TanStack Query.",
3164
+ "Cached Bitlauncher's auction and wallet data with TanStack Query over Supabase and chain RPCs.",
3165
+ "Managed Opyn's indexed options data fetching with TanStack Query alongside Ponder and PostgreSQL.",
3166
+ "Structured Masterbots' assistant and chatbot data flows with TanStack Query on Next.js."
3167
+ ]
3168
+ },
3169
+ {
3170
+ name: "TanStack Start",
3171
+ slug: "tanstack-start",
3172
+ tag: "TanStack Start",
3173
+ image: "/images/tech/tanstack-start.png",
3174
+ description: "Full-stack React framework with file-based routing and server functions for LegalAgent's admin dashboard and document workflows.",
3175
+ link: "https://tanstack.com/start/latest",
3176
+ since: "2023",
3177
+ experience: [
3178
+ "Built LegalAgent's internal admin dashboard with TanStack Start, including Microsoft SSO and RAG document management."
3179
+ ]
3180
+ },
3181
+ {
3182
+ name: "Terraform",
3183
+ slug: "terraform",
3184
+ tag: "Terraform",
3185
+ image: "/images/tech/terraform.png",
3186
+ description: "Infrastructure-as-code for provisioning private EOSIO blockchains on Azure at EOS Costa Rica.",
3187
+ link: "https://www.terraform.io/",
3188
+ since: "2019",
3189
+ experience: [
3190
+ "Provisioned Grant Thornton's private EOSIO blockchain on Azure with Terraform at EOS Costa Rica."
3191
+ ]
3192
+ },
3193
+ {
3194
+ name: "Trigger.dev",
3195
+ slug: "trigger",
3196
+ tag: "Trigger",
3197
+ image: "/images/tech/trigger.png",
3198
+ description: "Background job runner for Bitlauncher's auction indexing and processing alongside the Next.js platform.",
3199
+ link: "https://trigger.dev/",
3200
+ since: "2023",
3201
+ experience: [
3202
+ "Ran Bitlauncher's background indexing and auction processing jobs on Trigger.dev alongside the Next.js platform."
3203
+ ]
3204
+ },
3205
+ {
3206
+ name: "Twilio",
3207
+ slug: "twilio",
3208
+ tag: "Twilio",
3209
+ image: "/images/tech/twilio.png",
3210
+ description: "SMS delivery for Eat Arcade's restaurant subscription notifications on Heroku.",
3211
+ link: "https://www.twilio.com/",
3212
+ since: "2018",
3213
+ experience: [
3214
+ "Integrated Twilio SMS into Eat Arcade's restaurant subscription service for curated dish notifications."
3215
+ ]
3216
+ },
3217
+ {
3218
+ name: "TypeScript",
3219
+ slug: "typescript",
3220
+ tag: "TypeScript",
3221
+ image: "/images/tech/typescript.png",
3222
+ description: "Shared type layer across trading data, auction contracts and indexers, and the admin, mobile, and API packages of AI assistants.",
3223
+ link: "https://www.typescriptlang.org/",
3224
+ since: "2012",
3225
+ experience: [
3226
+ "Typed Opyn's options data layer and React components against Ponder-indexed schemas and Zod validators.",
3227
+ "Shared contract ABIs and indexer handlers in Bitlauncher's TypeScript monorepo for auctions and bridges.",
3228
+ "Standardized LegalAgent's admin, mobile, and API packages on TypeScript for retrieval and form flows."
3229
+ ],
3230
+ featuredOrder: 7
3231
+ },
3232
+ {
3233
+ name: "Viem",
3234
+ slug: "viem",
3235
+ tag: "Viem",
3236
+ image: "/images/tech/viem.png",
3237
+ description: "TypeScript client for EVM contract reads, event subscriptions, and wallet interactions in trading and auction systems.",
3238
+ link: "https://viem.sh/",
3239
+ since: "2023",
3240
+ experience: [
3241
+ "Connected Opyn's trading UI to Arbitrum Testnet contracts through Viem with Alchemy RPC endpoints.",
3242
+ "Indexed Bitlauncher auction events with Viem subscriptions and persisted fills for the Next.js client.",
3243
+ "Implemented Bitlauncher's stablecoin-to-USDCred bridge and wallet balance views with Viem contract calls."
3244
+ ],
3245
+ featuredOrder: 5
3246
+ },
3247
+ {
3248
+ name: "ViroAR",
3249
+ slug: "viroar",
3250
+ tag: "ViroAR",
3251
+ image: "/images/tech/viroar.png",
3252
+ description: "Augmented-reality product previews in the Tractor Supply React Native retail app.",
3253
+ link: "https://viromedia.com/viroreact",
3254
+ since: "2019",
3255
+ experience: [
3256
+ "Implemented augmented-reality product previews in the Tractor Supply React Native retail app with ViroAR."
3257
+ ]
3258
+ },
3259
+ {
3260
+ name: "Wagmi",
3261
+ slug: "wagmi",
3262
+ tag: "Wagmi",
3263
+ image: "/images/tech/wagmi.png",
3264
+ description: "React hooks on Viem for wallet connection, contract calls, and token balance subscriptions in Opyn's trading app and Bitlauncher's auctions.",
3265
+ link: "https://wagmi.sh/",
3266
+ since: "2023",
3267
+ experience: [
3268
+ "Wired Opyn wallet connect and contract interactions on Arbitrum Testnet with Wagmi and Viem.",
3269
+ "Subscribed to token balances in Bitlauncher's wallet UI so auction screens stayed in sync with chain state.",
3270
+ "Configured multichain connectors in Bitlauncher for EOS and EVM wallets through a single React layer."
3271
+ ],
3272
+ featuredOrder: 6
3273
+ },
3274
+ {
3275
+ name: "WebAuthn",
3276
+ slug: "webauthn",
3277
+ tag: "WebAuthN",
3278
+ image: "/images/tech/webauthn.png",
3279
+ description: "In-browser transaction signing for Bitcash's peer-to-peer crypto exchange without external wallet extensions.",
3280
+ link: "https://webauthn.io/",
3281
+ since: "2021",
3282
+ experience: [
3283
+ "Implemented WebAuthn for in-browser transaction signing on Bitcash's peer-to-peer crypto exchange."
3284
+ ]
3285
+ },
3286
+ {
3287
+ name: "WebGL",
3288
+ slug: "webgl",
3289
+ tag: "WebGL",
3290
+ image: "/images/tech/webgl.png",
3291
+ description: "In-browser 3D rendering for ZTX's EVM wallet connector embedded inside the virtual-world canvas.",
3292
+ link: "https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API",
3293
+ since: "2018",
3294
+ experience: [
3295
+ "Built ZTX's WebGL EVM wallet connector with Ethers.js so NFT trading ran inside the virtual-world canvas."
3296
+ ]
3297
+ },
3298
+ {
3299
+ name: "WordPress",
3300
+ slug: "wordpress",
3301
+ tag: "Wordpress",
3302
+ image: "/images/tech/wordpress.png",
3303
+ description: "Content management for medical information sites, community promotions, and editorial publishing in early client work.",
3304
+ link: "https://wordpress.org/",
3305
+ since: "2009",
3306
+ experience: [
3307
+ "Built Living with Dryness as a responsive WordPress medical information page for mobile readability.",
3308
+ "Developed Capoeira Abolicao's promotional WordPress site with Bootstrap for instructors and community events.",
3309
+ "Built the ScotiaTico WordPress site for medical information and resource navigation."
3310
+ ]
3311
+ },
3312
+ {
3313
+ name: "Zod",
3314
+ slug: "zod",
3315
+ tag: "Zod",
3316
+ image: "/images/tech/zod.png",
3317
+ description: "Runtime schema validation for auction payloads, trading inputs, and assistant configuration across Next.js apps.",
3318
+ link: "https://zod.dev/",
3319
+ since: "2022",
3320
+ experience: [
3321
+ "Validated Bitlauncher auction and wallet payloads with Zod across the Next.js and Supabase stack.",
3322
+ "Enforced type-safe chain and API inputs on Opyn's trading interface with Zod schema validation.",
3323
+ "Structured Masterbots assistant configuration and API contracts with Zod on Next.js."
3324
+ ]
3325
+ },
3326
+ {
3327
+ name: "Zustand",
3328
+ slug: "zustand",
3329
+ tag: "Zustand",
3330
+ image: "/images/tech/zustand.png",
3331
+ description: "Client state management for Bitcash's peer-to-peer exchange interface alongside Stitches styling.",
3332
+ link: "https://github.com/pmndrs/zustand",
3333
+ since: "2021",
3334
+ experience: [
3335
+ "Managed Bitcash's exchange client state with Zustand alongside Stitches for component styling."
3336
+ ]
3337
+ }
3338
+ ];
3339
+
3340
+ export {
3341
+ projects,
3342
+ techStack
3343
+ };