gaboesquivel 5.3.0 → 6.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.
Files changed (125) hide show
  1. package/dist/chunk-6GH7GUHW.mjs +874 -0
  2. package/dist/chunk-LEF4YMLA.mjs +3270 -0
  3. package/dist/chunk-NDZLVMTX.mjs +3272 -0
  4. package/dist/chunk-SC72GK6F.mjs +3263 -0
  5. package/dist/chunk-WDBEOG2I.mjs +3260 -0
  6. package/dist/chunk-XIRXCJNL.mjs +907 -0
  7. package/dist/cli.js +2651 -1917
  8. package/dist/cli.mjs +9 -2539
  9. package/dist/content/cv/ai.md +11 -11
  10. package/dist/content/cv/full.md +13 -16
  11. package/dist/content/cv/fullstack.md +10 -8
  12. package/dist/content/cv/web3.md +7 -6
  13. package/dist/content/experience/amc-networks.md +1 -0
  14. package/dist/content/experience/bitcash.md +4 -2
  15. package/dist/content/experience/bitlauncher.md +9 -13
  16. package/dist/content/experience/eos-costa-rica.md +1 -1
  17. package/dist/content/experience/legalagent.md +1 -0
  18. package/dist/content/experience/raremint.md +3 -3
  19. package/dist/content/experience/wink.md +1 -0
  20. package/dist/content/experience/ztx.md +2 -2
  21. package/dist/content/projects/4tius-fitness-data-tracker.md +0 -1
  22. package/dist/content/projects/amc-yeah-tv-facebook-app.md +3 -2
  23. package/dist/content/projects/american-express.md +7 -7
  24. package/dist/content/projects/amex-money-talk.md +2 -4
  25. package/dist/content/projects/arinc-microfids.md +0 -1
  26. package/dist/content/projects/asoblockchain.md +6 -6
  27. package/dist/content/projects/bitcashbank.md +5 -2
  28. package/dist/content/projects/bitlauncher.md +22 -9
  29. package/dist/content/projects/costa-rica-js.md +3 -5
  30. package/dist/content/projects/earth.md +1 -5
  31. package/dist/content/projects/emanate.md +1 -0
  32. package/dist/content/projects/eos-costa-rica.md +7 -6
  33. package/dist/content/projects/its.md +2 -7
  34. package/dist/content/projects/jockey-hollow-bar-and-kitchen-menu-kiosk-app.md +0 -1
  35. package/dist/content/projects/jockey-hollow-bar-and-kitchen.md +1 -4
  36. package/dist/content/projects/knowledge-io.md +5 -2
  37. package/dist/content/projects/legal-agent.md +11 -3
  38. package/dist/content/projects/living-with-dryness.md +2 -7
  39. package/dist/content/projects/masterbots.md +2 -3
  40. package/dist/content/projects/mobtion.md +1 -5
  41. package/dist/content/projects/opyn.md +16 -7
  42. package/dist/content/projects/panini.md +2 -7
  43. package/dist/content/projects/photo-and-go.md +1 -2
  44. package/dist/content/projects/proparques.md +1 -5
  45. package/dist/content/projects/raremint.md +4 -4
  46. package/dist/content/projects/scotiatico.md +1 -6
  47. package/dist/content/projects/staples.md +3 -7
  48. package/dist/content/projects/suntrust.md +2 -7
  49. package/dist/content/projects/trivenzor.md +1 -6
  50. package/dist/content/projects/wink.md +2 -1
  51. package/dist/content/projects/ztx.md +4 -3
  52. package/dist/content/tech/ai-sdk.md +6 -10
  53. package/dist/content/tech/alchemy.md +4 -6
  54. package/dist/content/tech/angularjs.md +5 -7
  55. package/dist/content/tech/antelope.md +6 -6
  56. package/dist/content/tech/artificial-intelligence.md +6 -9
  57. package/dist/content/tech/aws.md +6 -7
  58. package/dist/content/tech/biometrics.md +5 -7
  59. package/dist/content/tech/blockchain.md +6 -10
  60. package/dist/content/tech/bootstrap.md +5 -7
  61. package/dist/content/tech/cms.md +4 -8
  62. package/dist/content/tech/cpp.md +6 -7
  63. package/dist/content/tech/css.md +5 -7
  64. package/dist/content/tech/data-charts.md +3 -6
  65. package/dist/content/tech/datocms.md +3 -7
  66. package/dist/content/tech/docker.md +6 -7
  67. package/dist/content/tech/ethereum.md +5 -9
  68. package/dist/content/tech/ethersjs.md +9 -13
  69. package/dist/content/tech/expo.md +4 -7
  70. package/dist/content/tech/faye.md +3 -7
  71. package/dist/content/tech/foundry.md +3 -6
  72. package/dist/content/tech/gcloud.md +6 -7
  73. package/dist/content/tech/graphql.md +6 -7
  74. package/dist/content/tech/hardhat.md +3 -6
  75. package/dist/content/tech/heroku.md +5 -6
  76. package/dist/content/tech/javascript.md +6 -7
  77. package/dist/content/tech/less.md +3 -6
  78. package/dist/content/tech/mongodb.md +4 -7
  79. package/dist/content/tech/mootools.md +5 -8
  80. package/dist/content/tech/nextjs.md +7 -10
  81. package/dist/content/tech/nft.md +6 -7
  82. package/dist/content/tech/niftory.md +3 -6
  83. package/dist/content/tech/nodejs.md +7 -11
  84. package/dist/content/tech/nuqs.md +5 -6
  85. package/dist/content/tech/openai.md +5 -6
  86. package/dist/content/tech/ponder.md +4 -7
  87. package/dist/content/tech/postgresql.md +6 -8
  88. package/dist/content/tech/rails.md +4 -6
  89. package/dist/content/tech/react-native.md +6 -10
  90. package/dist/content/tech/reactjs.md +11 -13
  91. package/dist/content/tech/redis.md +3 -6
  92. package/dist/content/tech/redux.md +4 -7
  93. package/dist/content/tech/rxjs.md +5 -8
  94. package/dist/content/tech/serverless.md +5 -6
  95. package/dist/content/tech/shadcn.md +7 -8
  96. package/dist/content/tech/solidity.md +5 -8
  97. package/dist/content/tech/stitches.md +3 -7
  98. package/dist/content/tech/stripe.md +3 -6
  99. package/dist/content/tech/supabase.md +5 -6
  100. package/dist/content/tech/tailwind.md +6 -6
  101. package/dist/content/tech/tanstack-form.md +3 -7
  102. package/dist/content/tech/tanstack-query.md +7 -7
  103. package/dist/content/tech/tanstack-start.md +3 -6
  104. package/dist/content/tech/terraform.md +3 -7
  105. package/dist/content/tech/trigger.md +3 -6
  106. package/dist/content/tech/twilio.md +3 -6
  107. package/dist/content/tech/typescript.md +5 -7
  108. package/dist/content/tech/viem.md +6 -10
  109. package/dist/content/tech/viroar.md +3 -7
  110. package/dist/content/tech/wagmi.md +5 -8
  111. package/dist/content/tech/webauthn.md +3 -6
  112. package/dist/content/tech/webgl.md +3 -6
  113. package/dist/content/tech/wordpress.md +7 -9
  114. package/dist/content/tech/zod.md +5 -6
  115. package/dist/content/tech/zustand.md +3 -7
  116. package/dist/cv.json +39 -39
  117. package/dist/experience.json +19 -16
  118. package/dist/index.d.mts +3 -1
  119. package/dist/index.d.ts +3 -1
  120. package/dist/index.js +568 -976
  121. package/dist/index.mjs +90 -3759
  122. package/dist/projects.json +146 -146
  123. package/dist/tech.json +241 -466
  124. package/package.json +2 -2
  125. package/readme.md +1 -1
@@ -0,0 +1,874 @@
1
+ // src/generated/tech.ts
2
+ var techStack = [
3
+ {
4
+ name: "AI SDK",
5
+ slug: "ai-sdk",
6
+ tag: "AI SDK",
7
+ image: "/images/tech/ai-sdk.png",
8
+ description: "Vercel's TypeScript toolkit for streaming LLM responses, tool calling, and structured outputs in React and Node.js apps.",
9
+ link: "https://ai-sdk.dev/",
10
+ since: "2023",
11
+ experience: [
12
+ "Wired LegalAgent's chat UI to the Vercel AI SDK with streaming responses and tool calls for legal workflows.",
13
+ "Built Bitlauncher's site chatbot with AI SDK tools for news, video, and structured product answers.",
14
+ "Automated Masterbots and Bitlauncher locale copy generation with AI SDK prompt templates."
15
+ ]
16
+ },
17
+ {
18
+ name: "Alchemy",
19
+ slug: "alchemy",
20
+ tag: "Alchemy",
21
+ image: "/images/tech/alchemy.png",
22
+ description: "Managed Ethereum RPC, webhooks, and developer APIs for reliable chain reads, writes, and indexing workloads.",
23
+ link: "https://www.alchemy.com/",
24
+ since: "2020",
25
+ experience: [
26
+ "Routed Opyn's Arbitrum Testnet reads and writes through Alchemy RPC endpoints behind Viem clients.",
27
+ "Used Alchemy as the node provider layer for Bitlauncher EVM indexing and wallet interactions."
28
+ ]
29
+ },
30
+ {
31
+ name: "AngularJS",
32
+ slug: "angularjs",
33
+ tag: "AngularJS",
34
+ image: "/images/tech/angularjs.png",
35
+ description: "SPA framework for subscription apps, flight-information dashboards, and fitness trackers in early full-stack products.",
36
+ link: "https://angularjs.org/",
37
+ since: "2018",
38
+ experience: [
39
+ "Built Eat Arcade's full-stack subscription app with AngularJS, Node.js, and MongoDB on Heroku.",
40
+ "Connected ARINC Microfids' AngularJS frontend to a Ruby on Rails backend for live flight boards.",
41
+ "Developed the 4Tius Fitness Data Tracker dashboard with AngularJS and secure API endpoints."
42
+ ]
43
+ },
44
+ {
45
+ name: "Antelope",
46
+ slug: "antelope",
47
+ tag: "Antelope",
48
+ image: "/images/tech/antelope.png",
49
+ description: "High-throughput chain protocol behind exchange backends, GraphQL indexers, multichain auctions, and music marketplaces.",
50
+ link: "https://antelope.io/",
51
+ since: "2018",
52
+ experience: [
53
+ "Built Bitcash's peer-to-peer exchange, chat, and EOS indexer on Antelope infrastructure with Node.js services.",
54
+ "Indexed Antelope chain data for ChainGraph's open-source GraphQL toolkit.",
55
+ "Shipped Bitlauncher's multichain auction product with Antelope and EOS EVM contract deployments.",
56
+ "Delivered Emanate's music marketplace against Antelope accounts and contract APIs."
57
+ ]
58
+ },
59
+ {
60
+ name: "Artificial Intelligence",
61
+ slug: "artificial-intelligence",
62
+ tag: "Artificial Intelligence",
63
+ image: "/images/tech/artificial-intelligence.png",
64
+ description: "Production AI assistants with retrieval, chat, voice, and automated localization across legal, gaming, and domain-specific products.",
65
+ link: "https://ai.google/",
66
+ since: "2023",
67
+ experience: [
68
+ "Shipped LegalAgent as a multimodal legal assistant combining retrieval, chat, and voice models for in-house counsel workflows.",
69
+ "Built Bitlauncher's domain chatbot and template-driven internationalization with model-backed content generation.",
70
+ "Structured Masterbots around specialized AI assistants with automated localization across product surfaces."
71
+ ],
72
+ featuredOrder: 2
73
+ },
74
+ {
75
+ name: "AWS",
76
+ slug: "aws",
77
+ tag: "AWS",
78
+ image: "/images/tech/aws.png",
79
+ description: "Cloud infrastructure for neobank backends, virtual-world services, token marketplaces, and image processing workloads.",
80
+ link: "https://aws.amazon.com/",
81
+ since: "2015",
82
+ experience: [
83
+ "Built Wink's serverless AWS backend for partner-bank API integration and the neobank mobile app.",
84
+ "Deployed ZTX's Next.js virtual-world and wallet services on AWS during early product development.",
85
+ "Led Knowledge.io's serverless AWS infrastructure for the token, marketplace, and wallet services.",
86
+ "Ran Photo and Go image storage and processing workloads on AWS for the commerce editor."
87
+ ]
88
+ },
89
+ {
90
+ name: "Biometrics",
91
+ slug: "biometrics",
92
+ tag: "Biometrics",
93
+ image: "/images/tech/biometrics.png",
94
+ description: "Device-bound identity verification for Wink neobank login and Bitcash exchange authentication.",
95
+ link: "https://fidoalliance.org/fido2/",
96
+ since: "2020",
97
+ experience: [
98
+ "Implemented biometric authentication on Wink so KYC and login worked without a branch visit.",
99
+ "Integrated biometric verification into Bitcash's exchange alongside WebAuthn transaction signing."
100
+ ]
101
+ },
102
+ {
103
+ name: "Blockchain",
104
+ slug: "blockchain",
105
+ tag: "Blockchain",
106
+ image: "/images/tech/blockchain.png",
107
+ description: "On-chain products and indexer systems across EVM chains and Antelope, from token launches to exchange backends and open-source tooling.",
108
+ link: "https://ethereum.org/en/developers/docs/",
109
+ since: "2017",
110
+ experience: [
111
+ "Shipped DeFi, NFT, and token products on Ethereum and EVM chains for Knowledge.io, RareMint, Opyn, and Bitlauncher.",
112
+ "Built Antelope-based exchange and indexer systems for Bitcash and ChainGraph with on-chain accounts, contracts, and live chain data.",
113
+ "Contributed open-source blockchain tooling including ChainGraph and Substrate Contracts UI."
114
+ ],
115
+ featuredOrder: 1
116
+ },
117
+ {
118
+ name: "Bootstrap",
119
+ slug: "bootstrap",
120
+ tag: "Bootstrap",
121
+ image: "/images/tech/bootstrap.png",
122
+ description: "Responsive grid toolkit for energy dashboards, WordPress sites, and early subscription web apps.",
123
+ link: "https://getbootstrap.com/",
124
+ since: "2018",
125
+ experience: [
126
+ "Built Gridium's energy-analytics prototype with Bootstrap for the chart dashboard layout.",
127
+ "Structured Capoeira Abolicao's WordPress promotional site with Bootstrap responsive grids.",
128
+ "Laid out Eat Arcade's restaurant subscription web app with Bootstrap alongside AngularJS."
129
+ ]
130
+ },
131
+ {
132
+ name: "Content Management Systems",
133
+ slug: "cms",
134
+ tag: "CMS",
135
+ image: "/images/tech/cms.png",
136
+ description: "Custom content platforms for corporate sites with CRM integration alongside WordPress client work.",
137
+ link: "https://wordpress.org/",
138
+ since: "2009",
139
+ experience: [
140
+ "Built ITS InfoCom's corporate website and custom CMS with CRM integration at IntergraphiDesign."
141
+ ]
142
+ },
143
+ {
144
+ name: "C++",
145
+ slug: "cpp",
146
+ tag: "C++",
147
+ image: "/images/tech/cpp.png",
148
+ description: "Performance-critical indexing and EOSIO node software for exchange backends, validators, and onchain rating contracts.",
149
+ link: "https://isocpp.org/",
150
+ since: "2018",
151
+ experience: [
152
+ "Wrote C++ indexing services at Bitcash for realtime EOS blockchain data deserialization.",
153
+ "Built EOS Costa Rica validator and private-chain infrastructure with C++ EOSIO node software.",
154
+ "Implemented onchain rating storage for EOS Rate with C++ smart contract logic on EOSIO."
155
+ ]
156
+ },
157
+ {
158
+ name: "CSS",
159
+ slug: "css",
160
+ tag: "CSS",
161
+ image: "/images/tech/css.png",
162
+ description: "Layout and responsive styling for ecommerce navigation, energy dashboards, and early client marketing sites.",
163
+ link: "https://developer.mozilla.org/en-US/docs/Web/CSS",
164
+ since: "2009",
165
+ experience: [
166
+ "Rebuilt Staples' ecommerce navigation and responsive UI components for smaller screens.",
167
+ "Styled Gridium's energy-analytics charts and dashboard for readable consumption data.",
168
+ "Laid out Capoeira Abolicao's WordPress site with responsive CSS and Bootstrap grids."
169
+ ]
170
+ },
171
+ {
172
+ name: "Data Charts",
173
+ slug: "data-charts",
174
+ tag: "Data Charts",
175
+ image: "/images/tech/data-charts.png",
176
+ description: "Interactive energy-consumption visualizations for Gridium's commercial-building monitoring dashboard.",
177
+ link: "https://www.chartjs.org/",
178
+ since: "2018",
179
+ experience: [
180
+ "Built Gridium's interactive energy-consumption charts for real-time commercial-building monitoring."
181
+ ]
182
+ },
183
+ {
184
+ name: "DatoCMS",
185
+ slug: "datocms",
186
+ tag: "DatoCMS",
187
+ image: "/images/tech/datocms.png",
188
+ description: "Headless CMS option for structured editorial content in content-driven web applications.",
189
+ link: "https://www.datocms.com/",
190
+ since: "2020",
191
+ experience: []
192
+ },
193
+ {
194
+ name: "Docker",
195
+ slug: "docker",
196
+ tag: "Docker",
197
+ image: "/images/tech/docker.png",
198
+ description: "Container packaging and orchestration for consistent local development, CI builds, and production deployments.",
199
+ link: "https://www.docker.com/",
200
+ since: "2013",
201
+ experience: [
202
+ "Containerized ChainGraph's GraphQL indexer and supporting services for repeatable deployments.",
203
+ "Packaged Photo and Go's application stack in Docker for staging and production releases.",
204
+ "Used Docker in Masterbots and Bitlauncher pipelines to align dev and cloud environments."
205
+ ],
206
+ featuredOrder: 12
207
+ },
208
+ {
209
+ name: "Ethereum",
210
+ slug: "ethereum",
211
+ tag: "Ethereum",
212
+ image: "/images/tech/ethereum.png",
213
+ description: "EVM contracts and deployments behind token products, NFT marketplaces, options protocols, and cross-chain auction systems.",
214
+ link: "https://ethereum.org/",
215
+ since: "2017",
216
+ experience: [
217
+ "Deployed Knowledge.io token and marketplace contracts on Ethereum mainnet and test networks.",
218
+ "Shipped RareMint's NFT marketplace and Opyn's options protocol on Arbitrum-compatible EVM chains.",
219
+ "Ran Gnosis auction contracts on EOS EVM for Bitlauncher batch sales with uniform clearing prices."
220
+ ],
221
+ featuredOrder: 3
222
+ },
223
+ {
224
+ name: "Ethers.js",
225
+ slug: "ethersjs",
226
+ tag: "Ethers",
227
+ image: "/images/tech/ethersjs.png",
228
+ description: "A compact JavaScript library for Ethereum wallets, providers, and contract calls before the Viem/Wagmi stack.",
229
+ link: "https://docs.ethers.org/",
230
+ since: "2017",
231
+ experience: [
232
+ "Built ZTX's WebGL wallet connector with Ethers.js so players signed NFT trades inside the metaverse client.",
233
+ "Ran RareMint's Polygon marketplace minting and ownership flows through Ethers.js contract interfaces.",
234
+ "Indexed RareMint NFT transfers with Moralis streams, Node.js, and Ethers.js event parsing.",
235
+ "Led Knowledge.io's 2018 ERC-20 ICO contract interactions with Ethers.js providers and wallets."
236
+ ]
237
+ },
238
+ {
239
+ name: "Expo",
240
+ slug: "expo",
241
+ tag: "Expo",
242
+ image: "/images/tech/expo.png",
243
+ description: "React Native toolchain for LegalAgent's voice assistant and Flow Hackathon game builds with over-the-air updates.",
244
+ link: "https://expo.dev/",
245
+ since: "2017",
246
+ experience: [
247
+ "Shipped LegalAgent's bilingual voice and chat assistant on Expo with OpenAI Realtime API integration.",
248
+ "Built Fantasy Top Shots for the Flow Hackathon with Expo, wiring NBA Top Shot NFTs into gameplay."
249
+ ]
250
+ },
251
+ {
252
+ name: "Faye",
253
+ slug: "faye",
254
+ tag: "Faye",
255
+ image: "/images/tech/faye.png",
256
+ description: "Pub-sub messaging for live flight updates on ARINC Microfids' AngularJS airport display boards.",
257
+ link: "https://faye.jcoglan.com/",
258
+ since: "2009",
259
+ experience: [
260
+ "Pushed live flight updates to ARINC Microfids' AngularJS boards with Faye pub-sub messaging."
261
+ ]
262
+ },
263
+ {
264
+ name: "Foundry",
265
+ slug: "foundry",
266
+ tag: "Foundry",
267
+ image: "/images/tech/foundry.png",
268
+ description: "A Rust-based Ethereum toolkit for compiling, testing, and deploying Solidity with fast fuzzing and fork simulations.",
269
+ link: "https://getfoundry.sh/",
270
+ since: "2024",
271
+ experience: [
272
+ "Tested and deployed Opyn's options protocol Solidity to Arbitrum Testnet with Foundry scripts and forge tests."
273
+ ]
274
+ },
275
+ {
276
+ name: "GCP",
277
+ slug: "gcloud",
278
+ tag: "GCP",
279
+ image: "/images/tech/gcloud.png",
280
+ description: "Google Cloud compute, storage, and managed services for APIs, indexers, databases, and containerized workloads.",
281
+ link: "https://cloud.google.com/",
282
+ since: "2018",
283
+ experience: [
284
+ "Hosted Bitcash's React, Node.js, PostgreSQL, and EOS indexer stack on Google Cloud with worker-thread deserialization.",
285
+ "Ran RareMint's NFT indexer APIs and Polygon data pipelines on GCP infrastructure.",
286
+ "Deployed ChainGraph services and Bitlauncher's backend workloads on Google Cloud."
287
+ ],
288
+ featuredOrder: 11
289
+ },
290
+ {
291
+ name: "GraphQL",
292
+ slug: "graphql",
293
+ tag: "GraphQL",
294
+ image: "/images/tech/graphql.png",
295
+ description: "Typed API layer for blockchain subscriptions, exchange data, onchain ratings, and marketplace services.",
296
+ link: "https://graphql.org/",
297
+ since: "2015",
298
+ experience: [
299
+ "Built ChainGraph's real-time GraphQL subscription toolkit for EOSIO and Antelope blockchain data.",
300
+ "Exposed Bitcash's indexed EOS trading data through GraphQL APIs over Hasura and PostgreSQL.",
301
+ "Developed EOS Rate's GraphQL API for reading onchain block-producer ratings and comparison UI.",
302
+ "Integrated Knowledge.io marketplace and wallet services with GraphQL in the serverless AWS stack."
303
+ ]
304
+ },
305
+ {
306
+ name: "Hardhat",
307
+ slug: "hardhat",
308
+ tag: "Hardhat",
309
+ image: "/images/tech/hardhat.png",
310
+ description: "Solidity compile and test environment for Bitlauncher auction contracts before EOS EVM deployment.",
311
+ link: "https://hardhat.org/",
312
+ since: "2020",
313
+ experience: [
314
+ "Compiled and tested Bitlauncher's Solidity auction contracts with Hardhat before EOS EVM deployment."
315
+ ]
316
+ },
317
+ {
318
+ name: "Heroku",
319
+ slug: "heroku",
320
+ tag: "Heroku",
321
+ image: "/images/tech/heroku.png",
322
+ description: "Hosted deployments for subscription apps, Rails backends, restaurant sites, and early ecommerce prototypes.",
323
+ link: "https://www.heroku.com/",
324
+ since: "2018",
325
+ experience: [
326
+ "Deployed Eat Arcade's Node.js, MongoDB, and AngularJS subscription app on Heroku with Stripe and Twilio.",
327
+ "Hosted ARINC Microfids' Ruby on Rails flight-information backend on Heroku for hotel and airport displays.",
328
+ "Deployed Tikr's Spree and Ruby on Rails dynamic-pricing store on Heroku with PostgreSQL."
329
+ ]
330
+ },
331
+ {
332
+ name: "JavaScript",
333
+ slug: "javascript",
334
+ tag: "JavaScript",
335
+ image: "/images/tech/javascript.png",
336
+ description: "Client and server scripting for community platforms, ecommerce navigation, energy dashboards, and early full-stack products.",
337
+ link: "https://developer.mozilla.org/en-US/docs/Web/JavaScript",
338
+ since: "2009",
339
+ experience: [
340
+ "Founded Costa Rica JS in 2010 and grew the community past 2,000 developers through meetups, NodeSchool, and JSConf.",
341
+ "Built Elder Scrolls Online's official community site with JavaScript for news, guides, and forum navigation.",
342
+ "Rebuilt Staples' ecommerce navigation and responsive UI components with JavaScript.",
343
+ "Built Gridium's energy-analytics prototype with JavaScript-driven interactive charts."
344
+ ]
345
+ },
346
+ {
347
+ name: "LESS",
348
+ slug: "less",
349
+ tag: "LESS",
350
+ image: "/images/tech/less.png",
351
+ description: "CSS preprocessor for ARINC Microfids' AngularJS flight-information display styling.",
352
+ link: "https://lesscss.org/",
353
+ since: "2009",
354
+ experience: [
355
+ "Styled ARINC Microfids' AngularJS flight-information displays with LESS alongside Faye real-time updates."
356
+ ]
357
+ },
358
+ {
359
+ name: "MongoDB",
360
+ slug: "mongodb",
361
+ tag: "MongoDB",
362
+ image: "/images/tech/mongodb.png",
363
+ description: "Document store for subscription delivery data and Fitbit-connected fitness metrics behind secure APIs.",
364
+ link: "https://www.mongodb.com/",
365
+ since: "2018",
366
+ experience: [
367
+ "Stored Eat Arcade's restaurant subscription and SMS delivery data in MongoDB on Heroku.",
368
+ "Persisted 4Tius Fitness Data Tracker metrics in MongoDB behind a secure API on AWS."
369
+ ]
370
+ },
371
+ {
372
+ name: "MooTools",
373
+ slug: "mootools",
374
+ tag: "Mootools",
375
+ image: "/images/tech/mootools.png",
376
+ description: "JavaScript framework for responsive medical landing pages in early client work.",
377
+ link: "https://mootools.net/",
378
+ since: "2009",
379
+ experience: [
380
+ "Built Trivenzor's responsive medical information landing page with MooTools for patients and clinicians."
381
+ ]
382
+ },
383
+ {
384
+ name: "Next.js",
385
+ slug: "nextjs",
386
+ tag: "NextJS",
387
+ image: "/images/tech/nextjs.png",
388
+ description: "Full-stack React framework for trading apps, auction platforms, AI assistants, and virtual-world experiences with SSR and server components.",
389
+ link: "https://nextjs.org/",
390
+ since: "2016",
391
+ experience: [
392
+ "Shipped Opyn's trading app on Next.js 14 with React Server Components over Ponder-indexed chain data.",
393
+ "Ran Bitlauncher's auction platform on Next.js 14 with live chain updates through Supabase subscriptions.",
394
+ "Built Masterbots on Next.js with the AI SDK for domain-specific assistants and automated internationalization.",
395
+ "Delivered ZTX's web experience on Next.js with embedded WebGL wallet connection for NFT trading."
396
+ ],
397
+ featuredOrder: 9
398
+ },
399
+ {
400
+ name: "NFT",
401
+ slug: "nft",
402
+ tag: "NFT",
403
+ image: "/images/tech/nft.png",
404
+ description: "On-chain collectibles in Polygon marketplaces, virtual-world commerce, and hackathon minting flows.",
405
+ link: "https://ethereum.org/en/developers/docs/standards/tokens/erc-721/",
406
+ since: "2022",
407
+ experience: [
408
+ "Built RareMint's Polygon marketplace for minting, listing, and trading ERC-721 collectibles.",
409
+ "Connected ZTX's in-world commerce to NFT inventory and wallet signing for player-owned items.",
410
+ "Minted Wizard World hackathon assets on Flow after OpenAI image generation in the PWA."
411
+ ]
412
+ },
413
+ {
414
+ name: "Niftory",
415
+ slug: "niftory",
416
+ tag: "Niftory",
417
+ image: "/images/tech/niftory.png",
418
+ description: "Flow NFT minting infrastructure for Wizard World hackathon assets generated with OpenAI image models.",
419
+ link: "https://niftory.com/",
420
+ since: "2022",
421
+ experience: [
422
+ "Minted Wizard World AI-generated images as Flow NFTs through Niftory during the Flow Hackathon."
423
+ ]
424
+ },
425
+ {
426
+ name: "Node.js",
427
+ slug: "nodejs",
428
+ tag: "NodeJS",
429
+ image: "/images/tech/nodejs.png",
430
+ description: "Server runtime for EVM indexers, Antelope workers, exchange backends, and serverless API functions in production systems.",
431
+ link: "https://nodejs.org/",
432
+ since: "2009",
433
+ experience: [
434
+ "Indexed Bitlauncher EVM events in Node.js with Viem subscriptions and wrote auction state to PostgreSQL.",
435
+ "Streamed Antelope blocks into ChainGraph's GraphQL layer with Node.js workers and PostgreSQL storage.",
436
+ "Ran Bitcash's matching engine, realtime chat, and EOS indexer services on Node.js.",
437
+ "Deployed Knowledge.io token and marketplace logic as serverless Node.js functions."
438
+ ],
439
+ featuredOrder: 10
440
+ },
441
+ {
442
+ name: "nuqs",
443
+ slug: "nuqs",
444
+ tag: "nuqs",
445
+ image: "/images/tech/nuqs.png",
446
+ description: "URL state synchronization for auction filters, trading views, and shareable assistant pages on Next.js.",
447
+ link: "https://nuqs.47ng.com/",
448
+ since: "2023",
449
+ experience: [
450
+ "Synced BitLauncher's auction filters and wallet views with URL state through nuqs on Next.js.",
451
+ "Managed Opyn's trading interface URL state with nuqs alongside TanStack Query and Zod validation.",
452
+ "Wired Masterbots' assistant views to shareable URL parameters with nuqs on Next.js."
453
+ ]
454
+ },
455
+ {
456
+ name: "OpenAI",
457
+ slug: "openai",
458
+ tag: "OpenAI",
459
+ image: "/images/tech/openai.png",
460
+ description: "APIs and models for chat, embeddings, image generation, and realtime voice used in production assistant products.",
461
+ link: "https://openai.com/",
462
+ since: "2022",
463
+ experience: [
464
+ "Integrated OpenAI Realtime voice in LegalAgent's multimodal assistant for spoken legal intake and responses.",
465
+ "Powered Bitlauncher's public chatbot and Masterbots domain assistants with OpenAI chat models.",
466
+ "Used DALL\xB7E in Wizard World to generate images that players minted as Flow NFTs during the hackathon build."
467
+ ]
468
+ },
469
+ {
470
+ name: "Ponder",
471
+ slug: "ponder",
472
+ tag: "Ponder",
473
+ image: "/images/tech/ponder.png",
474
+ description: "On-chain event indexer that persists options chain data to PostgreSQL for Opyn's Next.js trading interface.",
475
+ link: "https://ponder.sh/",
476
+ since: "2024",
477
+ experience: [
478
+ "Ran Ponder for Opyn on Arbitrum Testnet, persisting options chain data in PostgreSQL for the Next.js trading UI."
479
+ ]
480
+ },
481
+ {
482
+ name: "PostgreSQL",
483
+ slug: "postgresql",
484
+ tag: "PostgreSQL",
485
+ image: "/images/tech/postgresql.png",
486
+ description: "Relational store for auction indexing, options chain data, exchange backends, and blockchain subscription pipelines.",
487
+ link: "https://www.postgresql.org/",
488
+ since: "2012",
489
+ experience: [
490
+ "Indexed BitLauncher auction and transaction data in PostgreSQL through Supabase.",
491
+ "Stored Opyn's Ponder-indexed options chain data in PostgreSQL via Supabase.",
492
+ "Ran Bitcash's peer-to-peer exchange, chat, and EOS indexer on PostgreSQL with Hasura.",
493
+ "Persisted ChainGraph blockchain subscription data in PostgreSQL for GraphQL queries."
494
+ ]
495
+ },
496
+ {
497
+ name: "Ruby on Rails",
498
+ slug: "rails",
499
+ tag: "Ruby on Rails",
500
+ image: "/images/tech/rails.png",
501
+ description: "Full-stack framework for dynamic pricing stores and flight-information backends feeding AngularJS frontends.",
502
+ link: "https://rubyonrails.org/",
503
+ since: "2009",
504
+ experience: [
505
+ "Built Tikr's dynamic pricing engine on Spree and Ruby on Rails with PostgreSQL on Heroku.",
506
+ "Developed ARINC Microfids' flight-information backend in Ruby on Rails, feeding live data to AngularJS."
507
+ ]
508
+ },
509
+ {
510
+ name: "React Native",
511
+ slug: "react-native",
512
+ tag: "React Native",
513
+ image: "/images/tech/react-native.png",
514
+ description: "Cross-platform mobile for neobank apps, AI assistants, retail AR previews, and hackathon game builds.",
515
+ link: "https://reactnative.dev/",
516
+ since: "2015",
517
+ experience: [
518
+ "Built LegalAgent's multimodal AI assistant with voice and chat interfaces in React Native and Expo.",
519
+ "Shipped the first version of Wink, Costa Rica's neobank mobile app, on React Native with partner-bank API integration.",
520
+ "Added ViroAR product previews to the Tractor Supply retail app on their existing React Native codebase.",
521
+ "Built Fantasy Top Shots as a Flow Hackathon game with React Native, Expo, and NBA Top Shot NFT rosters."
522
+ ]
523
+ },
524
+ {
525
+ name: "React",
526
+ slug: "reactjs",
527
+ tag: "ReactJS",
528
+ image: "/images/tech/reactjs.png",
529
+ description: "Component model for web UIs across trading interfaces, admin dashboards, and marketplace screens in Next.js and standalone apps.",
530
+ link: "https://react.dev/",
531
+ since: "2013",
532
+ experience: [
533
+ "Composed Opyn's options trading views with React Server Components over Ponder-indexed chain data.",
534
+ "Composed Bitlauncher's live auction and wallet screens with React state fed by Supabase realtime channels.",
535
+ "Implemented LegalAgent's admin dashboards in React with Microsoft SSO and document management flows.",
536
+ "Refactored RareMint's marketplace UI during a Next.js SSR performance pass with component-level code splitting.",
537
+ "Shipped ZTX's Next.js shell that embeds WebGL wallet flows for in-world NFT trading."
538
+ ],
539
+ featuredOrder: 8
540
+ },
541
+ {
542
+ name: "Redis",
543
+ slug: "redis",
544
+ tag: "Redis",
545
+ image: "/images/tech/redis.png",
546
+ description: "In-memory layer in LegalAgent's production stack alongside the React Native assistant and admin services.",
547
+ link: "https://redis.io/",
548
+ since: "2015",
549
+ experience: [
550
+ "LegalAgent's production stack includes Redis alongside the React Native assistant and admin services."
551
+ ]
552
+ },
553
+ {
554
+ name: "Redux",
555
+ slug: "redux",
556
+ tag: "Redux",
557
+ image: "/images/tech/redux.png",
558
+ description: "Shared application state for retail AR features and photo editor commerce workflows in React Native and web apps.",
559
+ link: "https://redux.js.org/",
560
+ since: "2016",
561
+ experience: [
562
+ "Managed shared state in the Tractor Supply React Native app with Redux during performance and AR feature work.",
563
+ "Led Photo and Go's photo editor state with Redux, connecting the custom editor to the commerce backend."
564
+ ]
565
+ },
566
+ {
567
+ name: "RxJS",
568
+ slug: "rxjs",
569
+ tag: "RXJS",
570
+ image: "/images/tech/rxjs.png",
571
+ description: "Reactive streams for ChainGraph's real-time blockchain data subscriptions over EOSIO and Antelope networks.",
572
+ link: "https://rxjs.dev/",
573
+ since: "2020",
574
+ experience: [
575
+ "Built ChainGraph's real-time blockchain data streaming with RxJS Observables over EOSIO and Antelope networks."
576
+ ]
577
+ },
578
+ {
579
+ name: "Serverless",
580
+ slug: "serverless",
581
+ tag: "Serverless",
582
+ image: "/images/tech/serverless.png",
583
+ description: "AWS Lambda execution for neobank backends, virtual-world services, and token marketplace APIs.",
584
+ link: "https://www.serverless.com/",
585
+ since: "2015",
586
+ experience: [
587
+ "Built Wink's AWS serverless backend for partner-bank API integration and mobile app services.",
588
+ "Deployed ZTX's Next.js and wallet services on AWS serverless infrastructure during early product development.",
589
+ "Led Knowledge.io's serverless AWS stack for the ERC-20 token, marketplace, and wallet services."
590
+ ]
591
+ },
592
+ {
593
+ name: "shadcn/ui",
594
+ slug: "shadcn",
595
+ tag: "ShadcnUI",
596
+ image: "/images/tech/shadcn.png",
597
+ description: "Accessible React component layer for options trading, auction screens, and AI assistant interfaces on Next.js.",
598
+ link: "https://ui.shadcn.com/",
599
+ since: "2021",
600
+ experience: [
601
+ "Built Opyn's options trading interface with shadcn/ui components on Radix UI and Tailwind CSS.",
602
+ "Composed BitLauncher's auction, wallet, and bidding screens from shadcn/ui on Next.js 14.",
603
+ "Structured Masterbots' assistant interfaces with shadcn/ui as the shared component layer."
604
+ ]
605
+ },
606
+ {
607
+ name: "Solidity",
608
+ slug: "solidity",
609
+ tag: "Solidity",
610
+ image: "/images/tech/solidity.png",
611
+ description: "Smart contract language for EVM auction systems, options protocols, and token deployments tested with Foundry.",
612
+ link: "https://soliditylang.org/",
613
+ since: "2017",
614
+ experience: [
615
+ "Authored Gnosis auction Solidity for Bitlauncher on EOS EVM with batch bidding and uniform pricing rules.",
616
+ "Wrote Opyn options protocol contracts for Arbitrum Testnet, tested and deployed with Foundry.",
617
+ "Delivered ERC-20 token contracts for Knowledge.io's 2018 mainnet ICO."
618
+ ],
619
+ featuredOrder: 4
620
+ },
621
+ {
622
+ name: "Stitches",
623
+ slug: "stitches",
624
+ tag: "Stitches",
625
+ image: "/images/tech/stitches.png",
626
+ description: "CSS-in-JS styling for Bitcash's React exchange interface alongside Zustand client state.",
627
+ link: "https://stitches.dev/",
628
+ since: "2021",
629
+ experience: [
630
+ "Styled Bitcash's React exchange interface with Stitches alongside Zustand for client state."
631
+ ]
632
+ },
633
+ {
634
+ name: "Stripe",
635
+ slug: "stripe",
636
+ tag: "Stripe",
637
+ image: "/images/tech/stripe.png",
638
+ description: "Checkout and subscription payments for Eat Arcade's SMS restaurant service on Heroku.",
639
+ link: "https://stripe.com/",
640
+ since: "2018",
641
+ experience: [
642
+ "Integrated Stripe checkout into Eat Arcade's SMS restaurant subscription service on Heroku."
643
+ ]
644
+ },
645
+ {
646
+ name: "Supabase",
647
+ slug: "supabase",
648
+ tag: "Supabase",
649
+ image: "/images/tech/supabase.png",
650
+ description: "PostgreSQL-backed realtime layer for auction indexing, options data, and QR signature flows in Web3 products.",
651
+ link: "https://supabase.io/",
652
+ since: "2022",
653
+ experience: [
654
+ "Architected BitLauncher on Supabase for transaction indexing, real-time auction subscriptions, and data aggregation.",
655
+ "Indexed Opyn's onchain options data in PostgreSQL through Supabase alongside Ponder.",
656
+ "Used Supabase subscriptions and webhooks on Bitcash for QR-based signature request flows."
657
+ ]
658
+ },
659
+ {
660
+ name: "Tailwind CSS",
661
+ slug: "tailwind",
662
+ tag: "Tailwind",
663
+ image: "/images/tech/tailwind.png",
664
+ description: "Utility-first styling for trading interfaces, AI dashboards, virtual-world shells, and marketplace UIs across Next.js and React apps.",
665
+ link: "https://tailwindcss.com/",
666
+ since: "2022",
667
+ experience: [
668
+ "Set up ZTX's Next.js architecture with Tailwind CSS and Framer Motion for the virtual-world experience.",
669
+ "Implemented Opyn's trading interface with shadcn/ui components styled through Tailwind CSS.",
670
+ "Styled LegalAgent's admin dashboard and multimodal assistant UI with Tailwind CSS.",
671
+ "Composed BitLauncher's auction and wallet screens with Tailwind on Next.js 14."
672
+ ]
673
+ },
674
+ {
675
+ name: "TanStack Form",
676
+ slug: "tanstack-form",
677
+ tag: "TanStack Form",
678
+ image: "/images/tech/tanstack-form.png",
679
+ description: "Headless form layer for LegalAgent's document categorization and system prompt management in the admin dashboard.",
680
+ link: "https://tanstack.com/form/latest",
681
+ since: "2022",
682
+ experience: [
683
+ "Built LegalAgent's admin forms for document categorization and system prompt management with TanStack Form."
684
+ ]
685
+ },
686
+ {
687
+ name: "TanStack Query",
688
+ slug: "tanstack-query",
689
+ tag: "TanStack Query",
690
+ image: "/images/tech/tanstack-query.png",
691
+ description: "Server data caching for RAG assistants, auction platforms, options trading, and chatbot interfaces on Next.js.",
692
+ link: "https://tanstack.com/query/latest",
693
+ since: "2021",
694
+ experience: [
695
+ "Wired LegalAgent's RAG-backed assistant and admin dashboard data layer with TanStack Query.",
696
+ "Cached BitLauncher's auction and wallet data with TanStack Query over Supabase and chain RPCs.",
697
+ "Managed Opyn's indexed options data fetching with TanStack Query alongside Ponder and PostgreSQL.",
698
+ "Structured Masterbots' assistant and chatbot data flows with TanStack Query on Next.js."
699
+ ]
700
+ },
701
+ {
702
+ name: "TanStack Start",
703
+ slug: "tanstack-start",
704
+ tag: "TanStack Start",
705
+ image: "/images/tech/tanstack-start.png",
706
+ description: "Full-stack React framework with file-based routing and server functions for LegalAgent's admin dashboard and document workflows.",
707
+ link: "https://tanstack.com/start/latest",
708
+ since: "2023",
709
+ experience: [
710
+ "Built LegalAgent's internal admin dashboard with TanStack Start, including Microsoft SSO and RAG document management."
711
+ ]
712
+ },
713
+ {
714
+ name: "Terraform",
715
+ slug: "terraform",
716
+ tag: "Terraform",
717
+ image: "/images/tech/terraform.png",
718
+ description: "Infrastructure-as-code for provisioning private EOSIO blockchains on Azure at EOS Costa Rica.",
719
+ link: "https://www.terraform.io/",
720
+ since: "2019",
721
+ experience: [
722
+ "Provisioned Grant Thornton's private EOSIO blockchain on Azure with Terraform at EOS Costa Rica."
723
+ ]
724
+ },
725
+ {
726
+ name: "Trigger.dev",
727
+ slug: "trigger",
728
+ tag: "Trigger",
729
+ image: "/images/tech/trigger.png",
730
+ description: "Background job runner for Bitlauncher's auction indexing and processing alongside the Next.js platform.",
731
+ link: "https://trigger.dev/",
732
+ since: "2023",
733
+ experience: [
734
+ "Ran BitLauncher's background indexing and auction processing jobs on Trigger.dev alongside the Next.js platform."
735
+ ]
736
+ },
737
+ {
738
+ name: "Twilio",
739
+ slug: "twilio",
740
+ tag: "Twilio",
741
+ image: "/images/tech/twilio.png",
742
+ description: "SMS delivery for Eat Arcade's restaurant subscription notifications on Heroku.",
743
+ link: "https://www.twilio.com/",
744
+ since: "2018",
745
+ experience: [
746
+ "Integrated Twilio SMS into Eat Arcade's restaurant subscription service for curated dish notifications."
747
+ ]
748
+ },
749
+ {
750
+ name: "TypeScript",
751
+ slug: "typescript",
752
+ tag: "TypeScript",
753
+ image: "/images/tech/typescript.png",
754
+ description: "JavaScript with static types for safer refactors, richer editor tooling, and shared contracts across clients and services.",
755
+ link: "https://www.typescriptlang.org/",
756
+ since: "2012",
757
+ experience: [
758
+ "Typed Opyn's options data layer and React components against Ponder-indexed schemas and Zod validators.",
759
+ "Shared contract ABIs and indexer handlers in Bitlauncher's TypeScript monorepo for auctions and bridges.",
760
+ "Standardized LegalAgent's admin, mobile, and API packages on TypeScript for retrieval and form flows."
761
+ ],
762
+ featuredOrder: 7
763
+ },
764
+ {
765
+ name: "Viem",
766
+ slug: "viem",
767
+ tag: "Viem",
768
+ image: "/images/tech/viem.png",
769
+ description: "TypeScript client for EVM contract reads, event subscriptions, and wallet interactions in trading and auction systems.",
770
+ link: "https://viem.sh/",
771
+ since: "2023",
772
+ experience: [
773
+ "Connected Opyn's trading UI to Arbitrum Testnet contracts through Viem with Alchemy RPC endpoints.",
774
+ "Indexed Bitlauncher auction events with Viem subscriptions and persisted fills for the Next.js client.",
775
+ "Implemented Bitlauncher's stablecoin-to-USDCred bridge and wallet balance views with Viem contract calls."
776
+ ],
777
+ featuredOrder: 5
778
+ },
779
+ {
780
+ name: "ViroAR",
781
+ slug: "viroar",
782
+ tag: "ViroAR",
783
+ image: "/images/tech/viroar.png",
784
+ description: "Augmented-reality product previews in the Tractor Supply React Native retail app.",
785
+ link: "https://viromedia.com/viroreact",
786
+ since: "2019",
787
+ experience: [
788
+ "Implemented augmented-reality product previews in the Tractor Supply React Native retail app with ViroAR."
789
+ ]
790
+ },
791
+ {
792
+ name: "Wagmi",
793
+ slug: "wagmi",
794
+ tag: "Wagmi",
795
+ image: "/images/tech/wagmi.png",
796
+ description: "React hooks for Ethereum wallets and contracts, built on Viem with multichain configuration and shared query caching.",
797
+ link: "https://wagmi.sh/",
798
+ since: "2023",
799
+ experience: [
800
+ "Wired Opyn wallet connect and contract interactions on Arbitrum Testnet with Wagmi and Viem.",
801
+ "Subscribed to token balances in Bitlauncher's wallet UI so auction screens stayed in sync with chain state.",
802
+ "Configured multichain connectors in Bitlauncher for EOS and EVM wallets through a single React layer."
803
+ ],
804
+ featuredOrder: 6
805
+ },
806
+ {
807
+ name: "WebAuthn",
808
+ slug: "webauthn",
809
+ tag: "WebAuthN",
810
+ image: "/images/tech/webauthn.png",
811
+ description: "In-browser transaction signing for Bitcash's peer-to-peer crypto exchange without external wallet extensions.",
812
+ link: "https://webauthn.io/",
813
+ since: "2021",
814
+ experience: [
815
+ "Implemented WebAuthn for in-browser transaction signing on Bitcash's peer-to-peer crypto exchange."
816
+ ]
817
+ },
818
+ {
819
+ name: "WebGL",
820
+ slug: "webgl",
821
+ tag: "WebGL",
822
+ image: "/images/tech/webgl.png",
823
+ description: "In-browser 3D rendering for ZTX's EVM wallet connector embedded inside the virtual-world canvas.",
824
+ link: "https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API",
825
+ since: "2018",
826
+ experience: [
827
+ "Built ZTX's WebGL EVM wallet connector with Ethers.js so NFT trading ran inside the virtual-world canvas."
828
+ ]
829
+ },
830
+ {
831
+ name: "WordPress",
832
+ slug: "wordpress",
833
+ tag: "Wordpress",
834
+ image: "/images/tech/wordpress.png",
835
+ description: "Content management for medical information sites, community promotions, and editorial publishing in early client work.",
836
+ link: "https://wordpress.org/",
837
+ since: "2009",
838
+ experience: [
839
+ "Built Living with Dryness as a responsive WordPress medical information page for mobile readability.",
840
+ "Developed Capoeira Abolicao's promotional WordPress site with Bootstrap for instructors and community events.",
841
+ "Built the ScotiaTico WordPress site for medical information and resource navigation."
842
+ ]
843
+ },
844
+ {
845
+ name: "Zod",
846
+ slug: "zod",
847
+ tag: "Zod",
848
+ image: "/images/tech/zod.png",
849
+ description: "Runtime schema validation for auction payloads, trading inputs, and assistant configuration across Next.js apps.",
850
+ link: "https://zod.dev/",
851
+ since: "2022",
852
+ experience: [
853
+ "Validated BitLauncher auction and wallet payloads with Zod across the Next.js and Supabase stack.",
854
+ "Enforced type-safe chain and API inputs on Opyn's trading interface with Zod schema validation.",
855
+ "Structured Masterbots assistant configuration and API contracts with Zod on Next.js."
856
+ ]
857
+ },
858
+ {
859
+ name: "Zustand",
860
+ slug: "zustand",
861
+ tag: "Zustand",
862
+ image: "/images/tech/zustand.png",
863
+ description: "Client state management for Bitcash's peer-to-peer exchange interface alongside Stitches styling.",
864
+ link: "https://github.com/pmndrs/zustand",
865
+ since: "2021",
866
+ experience: [
867
+ "Managed Bitcash's exchange client state with Zustand alongside Stitches for component styling."
868
+ ]
869
+ }
870
+ ];
871
+
872
+ export {
873
+ techStack
874
+ };