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