-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
1315 lines (1265 loc) · 68.8 KB
/
index.html
File metadata and controls
1315 lines (1265 loc) · 68.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Christian Pecson</title>
<link rel="preload" href="https://cdn.jsdelivr.net" />
<link rel="dns-prefetch" href="https://cdn.jsdelivr.net" />
<!-- Primary Meta Tags -->
<meta name="title" content="Christian Pecson" />
<meta name="description"
content="Hi I'm Christian. A Software Engineer specializing in mobile and web development, building real-world solutions." />
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://chpecson.dev/" />
<meta property="og:title" content="Christian Pecson" />
<meta property="og:description"
content="Hi I'm Christian. A Software Engineer specializing in mobile and web development, building real-world solutions." />
<meta property="og:image" content="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/meta-preview.png" />
<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:url" content="https://chpecson.dev/" />
<meta property="twitter:title" content="Christian Pecson" />
<meta property="twitter:description"
content="Hi I'm Christian. A Software Engineer specializing in mobile and web development, building real-world solutions." />
<meta property="twitter:image"
content="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/meta-preview.png" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Syne:wght@400;500;600;700;800&family=DM+Sans:ital,wght@0,400;0,500;0,700;1,400&family=JetBrains+Mono:wght@400;500&display=swap"
rel="stylesheet" />
<!-- Minified CSS from scss/style.scss -->
<link rel="stylesheet" type="text/css" href="css/style.min.css" />
<!-- Devicons -->
<link rel="stylesheet" type='text/css' href="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/devicon.min.css" />
</head>
<body>
<!-- Navbar -->
<nav class="nav" id="navbar">
<div class="nav-inner">
<a href="#home" class="nav-logo">chpecson.dev</a>
<div class="nav-links">
<a href="#home" class="active">Home</a>
<a href="#experience">Experience</a>
<a href="#skills">Skills</a>
<a href="#projects">Projects</a>
<a href="#certificates">Certs</a>
<a href="blog/">Blog</a>
</div>
<button class="nav-toggle" onclick="document.querySelector('.nav-mobile').classList.add('open')"
aria-label="Menu">
<svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M4 6h16M4 12h16M4 18h16" />
</svg>
</button>
</div>
</nav>
<!-- Mobile Nav -->
<div class="nav-mobile" id="navMobile">
<button class="nav-mobile-close" onclick="this.parentElement.classList.remove('open')" aria-label="Close">
<svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M6 18L18 6M6 6l12 12" />
</svg>
</button>
<a href="#home" onclick="this.parentElement.classList.remove('open')">Home</a>
<a href="#experience" onclick="this.parentElement.classList.remove('open')">Experience</a>
<a href="#skills" onclick="this.parentElement.classList.remove('open')">Skills</a>
<a href="#projects" onclick="this.parentElement.classList.remove('open')">Projects</a>
<a href="#certificates" onclick="this.parentElement.classList.remove('open')">Certificates</a>
<a href="blog/" onclick="this.parentElement.classList.remove('open')">Blog</a>
</div>
<!-- Hero -->
<section class="hero" id="home">
<div class="container">
<div class="hero-inner">
<div class="hero-text">
<div class="hero-label">Available for opportunities</div>
<h1>Hi, I'm <span class="accent">Christian</span></h1>
<p class="hero-subtitle">
Software engineer who builds real-world mobile and web products. Native iOS, Android, cross-platform, and
full-stack — 7+ years shipping apps used by hundreds of thousands.
</p>
<div class="hero-typed">
<span id="typedOutput"></span><span class="typed-cursor">|</span>
</div>
<div class="hero-cta">
<a href="#projects" class="btn btn-primary">
View Projects
<svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M17 8l4 4m0 0l-4 4m4-4H3" />
</svg>
</a>
<a href="https://github.com/chpecson" target="_blank" rel="noreferrer" class="btn btn-ghost">
<svg fill="currentColor" viewBox="0 0 24 24">
<path
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" />
</svg>
GitHub
</a>
</div>
<div class="hero-stats">
<div>
<div class="hero-stat-num">7+</div>
<div class="hero-stat-label">Years Experience</div>
</div>
<div>
<div class="hero-stat-num">100k+</div>
<div class="hero-stat-label">App Downloads</div>
</div>
<div>
<div class="hero-stat-num">6</div>
<div class="hero-stat-label">Companies</div>
</div>
</div>
</div>
<div class="hero-img-wrap">
<div class="hero-img-ring">
<img class="hero-img" src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/profile.png"
alt="Christian Pecson" loading="eager" />
</div>
</div>
</div>
</div>
</section>
<!-- Experience -->
<section class="section section-alt" id="experience">
<div class="container">
<div class="section-header reveal">
<div class="section-label">// experience</div>
<h2 class="section-title">Where I've Worked</h2>
<p class="section-desc">Building mobile and web products across fintech, enterprise, and SaaS.</p>
</div>
<div class="timeline">
<div class="timeline-item reveal">
<div class="timeline-dot"></div>
<div class="timeline-header">
<div class="timeline-company">Tawk.to</div>
<div class="timeline-role">Mobile Application Developer</div>
<div class="timeline-period">Mar 2022 - Present</div>
</div>
<button class="timeline-toggle" onclick="toggleTimeline(this)">
Show details <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M19 9l-7 7-7-7" />
</svg>
</button>
<div class="timeline-details">
<ul>
<li>Collaborate with the development team to design, code, test, and implement new features and bug fixes
for the hybrid mobile app.</li>
<li>Picking up new tasks assigned by the lead developer and communicating freely to ensure the
requirements are clearly understood.</li>
<li>Code and test solutions that comply with project coding standards.</li>
<li>Commit code to project repositories and create pull requests when tasks are complete.</li>
<li>Respond promptly to pull request reviews and change requests.</li>
<li>Keep project task tracking software up to date with progress.</li>
</ul>
</div>
</div>
<div class="timeline-item reveal">
<div class="timeline-dot"></div>
<div class="timeline-header">
<div class="timeline-company">Ahsay</div>
<div class="timeline-role">Mobile Application Developer</div>
<div class="timeline-period">Sep 2021 - Feb 2022 (6 months)</div>
</div>
<button class="timeline-toggle" onclick="toggleTimeline(this)">
Show details <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M19 9l-7 7-7-7" />
</svg>
</button>
<div class="timeline-details">
<ul>
<li>Involve throughout mobile application development lifecycle, from design, develop testing and release.
</li>
<li>Maintain, add new features, debug and keep application up-to-date.</li>
<li>Update development documents.</li>
<li>Work closely with programmers and designer to constantly innovate app functionality and design.</li>
</ul>
</div>
</div>
<div class="timeline-item reveal">
<div class="timeline-dot"></div>
<div class="timeline-header">
<div class="timeline-company">Corebridge</div>
<div class="timeline-role">Software Engineer</div>
<div class="timeline-period">Jan 2021 - Dec 2021 (1 year)</div>
</div>
<button class="timeline-toggle" onclick="toggleTimeline(this)">
Show details <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M19 9l-7 7-7-7" />
</svg>
</button>
<div class="timeline-details">
<ul>
<li>Create highly interactive web applications using Angular, JavaScript (and TypeScript), HTML5, etc.
</li>
<li>Work in a team with other developers, UX designers, and QA to create user interfaces for web and
mobile applications.</li>
<li>Utilize ticket tracking, repository, and GIT-based source code synchronization.</li>
<li>Check and follow up with daily updates and tasks.</li>
<li>Assist the support team with problem identification and bug fixes.</li>
<li>Research and learn new technologies to aid and assist the development team.</li>
</ul>
</div>
</div>
<div class="timeline-item reveal">
<div class="timeline-dot"></div>
<div class="timeline-header">
<div class="timeline-company">Upwork</div>
<div class="timeline-role">Freelance Mobile Application Developer</div>
<div class="timeline-period">Jan 2020 - Dec 2021 (1 year)</div>
</div>
<button class="timeline-toggle" onclick="toggleTimeline(this)">
Show details <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M19 9l-7 7-7-7" />
</svg>
</button>
<div class="timeline-details">
<ul>
<li>Support the entire application life-cycle (concept, design, test, release and support).</li>
<li>Produce fully functional mobile applications by writing clean code.</li>
<li>Gather specific requirements and suggest solutions.</li>
<li>Troubleshoot and debug to optimize performance.</li>
<li>Design interfaces to improve user experience.</li>
<li>Ensure mobile applications meet quality standards.</li>
</ul>
</div>
</div>
<div class="timeline-item reveal">
<div class="timeline-dot"></div>
<div class="timeline-header">
<div class="timeline-company">ProximaX</div>
<div class="timeline-role">Software Engineer</div>
<div class="timeline-period">Oct 2018 - Jan 2020 (1 year 4 months)</div>
</div>
<button class="timeline-toggle" onclick="toggleTimeline(this)">
Show details <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M19 9l-7 7-7-7" />
</svg>
</button>
<div class="timeline-details">
<ul>
<li>Develop software solutions by studying information needs; conferring with users; studying systems
flow, data usage and work processes.</li>
<li>Determine operational feasibility by evaluating analysis, problem definition, requirements, solution
development and proposed solutions.</li>
<li>Document and demonstrate solutions by developing documentation, flowcharts, layouts, diagrams, charts,
code comments and clear code.</li>
<li>Prepare and install solutions by determining and designing system specifications, standards and
programming.</li>
<li>Improve operations by conducting systems analysis; recommending changes in policies and procedures.
</li>
<li>Support and develop software engineers by providing advice, coaching and educational opportunities.
</li>
<li>Mentor junior and mid-level engineers.</li>
<li>Collaborate with team to brainstorm and create new products.</li>
</ul>
</div>
</div>
<div class="timeline-item reveal">
<div class="timeline-dot"></div>
<div class="timeline-header">
<div class="timeline-company">Dragonfly Fintech</div>
<div class="timeline-role">Software Engineer</div>
<div class="timeline-period">Jun 2018 - Sep 2018 (4 months)</div>
</div>
<button class="timeline-toggle" onclick="toggleTimeline(this)">
Show details <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M19 9l-7 7-7-7" />
</svg>
</button>
<div class="timeline-details">
<ul>
<li>Write and maintain features of mobile wallet with Angular and Ionic Framework.</li>
<li>Converting flowchart into code in the mobile wallet.</li>
<li>Write and maintain code for OTP server.</li>
<li>Stay on the leading edge of development practices.</li>
</ul>
</div>
</div>
</div>
</div>
</section>
<!-- Skills -->
<section class="section" id="skills">
<div class="container">
<div class="section-header reveal">
<div class="section-label">// skills</div>
<h2 class="section-title">Tech Stack</h2>
<p class="section-desc">From native mobile to full-stack web, and AI-augmented workflows.</p>
</div>
<!-- Mobile Development -->
<div style="margin-bottom: 12px;">
<span
style="font-family: var(--font-mono); font-size: 11px; color: var(--warm); text-transform: uppercase; letter-spacing: 0.1em;">Mobile
Development</span>
</div>
<div class="skills-grid" style="margin-bottom: 48px;">
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(61, 220, 132, 0.1); color: #3DDC84;">
<i class="devicon-android-plain"></i>
</div>
<div class="skill-name">Android (Kotlin)</div>
<div class="skill-desc">Native Android development, Jetpack Compose, Material Design</div>
</div>
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(59,130,246,0.1); color: #3B82F6;">
<i class="devicon-swift-plain"></i>
</div>
<div class="skill-name">iOS (Swift)</div>
<div class="skill-desc">Native iOS development, SwiftUI, UIKit</div>
</div>
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(56, 128, 255, 0.1); color: #3880FF;">
<i class="devicon-ionic-original"></i>
</div>
<div class="skill-name">Ionic / Capacitor</div>
<div class="skill-desc">Cross-platform hybrid apps for iOS & Android</div>
</div>
</div>
<!-- Web Development -->
<div style="margin-bottom: 12px;">
<span
style="font-family: var(--font-mono); font-size: 11px; color: var(--accent); text-transform: uppercase; letter-spacing: 0.1em;">Web
Development</span>
</div>
<div class="skills-grid" style="margin-bottom: 48px;">
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(97,218,251,0.1); color: #61DAFB;">
<i class="devicon-react-original"></i>
</div>
<div class="skill-name">React</div>
<div class="skill-desc">Component-driven UIs, hooks, state management</div>
</div>
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(0,0,0,0.1); color: #FFFFFF;">
<i class="devicon-nextjs-plain"></i>
</div>
<div class="skill-name">Next.js</div>
<div class="skill-desc">SSR, SSG, API routes, full-stack React framework</div>
</div>
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(221,0,49,0.1); color: #DD0031;">
<i class="devicon-angular-plain"></i>
</div>
<div class="skill-name">Angular</div>
<div class="skill-desc">Enterprise apps, reactive forms, modules, signals</div>
</div>
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(49,120,198,0.1); color: #3178C6;">
<i class="devicon-typescript-plain"></i>
</div>
<div class="skill-name">TypeScript</div>
<div class="skill-desc">Type-safe code, generics, strict configs at scale</div>
</div>
</div>
<!-- Backend & DevOps -->
<div style="margin-bottom: 12px;">
<span
style="font-family: var(--font-mono); font-size: 11px; color: #22C55E; text-transform: uppercase; letter-spacing: 0.1em;">Backend
& DevOps</span>
</div>
<div class="skills-grid" style="margin-bottom: 48px;">
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(34,197,94,0.1); color: #22C55E;">
<i class="devicon-nodejs-plain"></i>
</div>
<div class="skill-name">Node.js</div>
<div class="skill-desc">Microservices, REST APIs, authentication</div>
<div class="skill-frameworks">
<span class="skill-fw-tag">NestJS</span>
<span class="skill-fw-tag">Strapi</span>
<span class="skill-fw-tag">Sails.js</span>
</div>
</div>
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(59,130,246,0.1); color: #3B82F6;">
<i class="devicon-docker-plain"></i>
</div>
<div class="skill-name">Docker</div>
<div class="skill-desc">Container deployment, CI/CD, orchestration</div>
</div>
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(241,80,47,0.1); color: #F1502F;">
<i class="devicon-git-plain"></i>
</div>
<div class="skill-name">Git</div>
<div class="skill-desc">Version control, branching, code review workflows</div>
</div>
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(255,153,0,0.1); color: #FF9900;">
<i class="devicon-amazonwebservices-plain-wordmark"></i>
</div>
<div class="skill-name">AWS</div>
<div class="skill-desc">Lambda functions, CloudWatch logs</div>
</div>
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(59,130,246,0.1); color: #3B82F6;">
<i class="devicon-googlecloud-plain"></i>
</div>
<div class="skill-name">Google Cloud</div>
<div class="skill-desc">Cloud Functions, Firestore, hosting & deployment</div>
</div>
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(0,0,0,0.1); color: #FFFFFF;">
<svg viewBox="0 0 1000 1000" fill="none" xmlns="http://www.w3.org/2000/svg"
style="width: 20px; height: 20px;">
<path
d="M499.651 555.512L416.132 686.623L277.653 462.192L277.333 697.143H180V300H278.426L418.345 535.244L418.479 428.768L499.651 555.512V555.512ZM515.678 402.082C516.318 400.804 515.678 301.305 515.891 300H418.559C418.612 301.571 418.425 400.564 418.479 402.082H515.678V402.082ZM665.917 512.181C654.556 511.963 643.406 515.267 634.003 521.639C624.6 528.011 617.406 537.137 613.411 547.762C620.029 537.871 629.827 530.531 641.187 526.952C652.546 523.374 664.788 523.772 675.89 528.08C686.45 532.368 700.344 539.319 711.357 535.617C706.19 528.388 699.374 522.491 691.472 518.416C683.57 514.34 674.81 512.203 665.917 512.181V512.181ZM756.316 540.438C746.317 536.975 734.983 533.06 726.743 522.301C725.143 520.17 723.65 517.773 722.05 515.243C718.48 508.669 713.651 502.86 707.837 498.145C699.997 492.393 689.704 489.57 676.37 489.57C663.264 489.573 650.454 493.463 639.563 500.745C628.673 508.028 620.193 518.376 615.197 530.477C621.53 521.672 630.067 514.682 639.954 510.206C649.84 505.73 660.73 503.925 671.535 504.971C682.339 506.017 692.679 509.878 701.52 516.168C710.362 522.457 717.395 530.955 721.917 540.811C724.168 544.503 727.558 547.366 731.578 548.97C735.598 550.574 740.031 550.832 744.21 549.706C757.357 546.909 756.476 559.293 776.29 563.501V559.959C776.21 548.081 769.73 545.311 756.29 540.438H756.316ZM810.289 574.154C813.196 572.389 815.582 569.887 817.207 566.903C818.833 563.919 819.638 560.559 819.543 557.163C819.276 478.411 755.277 411.031 676.344 411.031C652.616 411.011 629.257 416.887 608.369 428.129C587.482 439.37 569.722 455.625 556.691 475.428C556.424 474.735 516.105 411.776 515.678 411.031H418.479L510.825 555.458L420.719 697.143H515.118L556.184 634.131L597.997 697.143H692.424L606.824 562.596C605.406 559.975 604.638 557.052 604.584 554.073C604.581 544.663 606.433 535.344 610.037 526.649C613.64 517.954 618.923 510.054 625.585 503.398C632.246 496.743 640.155 491.463 648.86 487.861C657.565 484.259 666.895 482.406 676.317 482.406H676.344C716.023 482.406 722.637 506.108 731.197 517.241C748.103 539.239 781.863 529.598 781.863 558.281C781.924 561.571 782.846 564.788 784.539 567.611C786.233 570.434 788.637 572.764 791.513 574.37C794.388 575.976 797.635 576.801 800.93 576.763C804.224 576.725 807.451 575.826 810.289 574.154V574.154ZM819.623 577.696C815.009 587.604 804.69 586.698 799.49 594.715C794.796 601.932 802.53 605.687 802.53 605.687C802.53 605.687 811.516 609.842 816.876 597.404C819.649 591.252 820.609 584.408 819.623 577.696V577.696Z"
fill="currentColor" />
</svg>
</div>
<div class="skill-name">Nx</div>
<div class="skill-desc">Monorepo management, build optimization, code generation</div>
</div>
</div>
<!-- AI-Augmented Development -->
<div style="margin-bottom: 12px;">
<span
style="font-family: var(--font-mono); font-size: 11px; color: #C084FC; text-transform: uppercase; letter-spacing: 0.1em;">AI-Augmented
Development</span>
</div>
<div class="skills-grid">
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(192,132,252,0.1); color: #C084FC;">
<svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" width="22" height="22">
<path
d="M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09zM18.259 8.715L18 9.75l-.259-1.035a3.375 3.375 0 00-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 002.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 002.455 2.456L21.75 6l-1.036.259a3.375 3.375 0 00-2.455 2.456z" />
</svg>
</div>
<div class="skill-name">Claude Code</div>
<div class="skill-desc">Agentic coding, automated refactoring, AI-driven development</div>
</div>
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(192,132,252,0.1); color: #C084FC;">
<svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" width="22" height="22">
<path
d="M7.5 8.25h9m-9 3H12m-9.75 1.51c0 1.6 1.123 2.994 2.707 3.227 1.129.166 2.27.293 3.423.379.35.026.67.21.865.501L12 21l2.755-4.133a1.14 1.14 0 01.865-.501 48.172 48.172 0 003.423-.379c1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0012 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018z" />
</svg>
</div>
<div class="skill-name">ChatGPT</div>
<div class="skill-desc">Prompt engineering, code generation, problem-solving workflows</div>
</div>
<div class="skill-card reveal">
<div class="skill-icon" style="background: rgba(192,132,252,0.1); color: #C084FC;">
<svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" width="22" height="22">
<path d="M17.25 6.75L22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3l-4.5 16.5" />
</svg>
</div>
<div class="skill-name">Cursor</div>
<div class="skill-desc">AI-assisted IDE, inline completions, codebase-aware suggestions</div>
</div>
</div>
</div>
</section>
<!-- Projects -->
<section class="section section-alt" id="projects">
<div class="container">
<div class="section-header reveal">
<div class="section-label">// projects</div>
<h2 class="section-title">Selected Work</h2>
</div>
<div class="projects-list">
<!-- MeowPass -->
<div class="project reveal">
<div class="project-info">
<h3 class="project-name">MeowPass</h3>
<p class="project-desc">
CLI-first secret management for developers. Store API keys, sync .env files, and share secrets
with your team — all end-to-end encrypted with AES-256-GCM and zero-knowledge architecture.
</p>
<button class="project-expand-btn" onclick="toggleProject(this)">
Show details <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M19 9l-7 7-7-7" />
</svg>
</button>
<div class="project-expand">
<div class="project-section-title">Features</div>
<ul class="project-list">
<li>CLI tool (Homebrew): set, get, list, delete secrets with auto-clipboard copy</li>
<li>.env sync: pull/push secrets per environment (staging, production)</li>
<li>Vault management: create per-project vaults, share with teams via X25519 key exchange</li>
<li>Tiered pricing with Lemon Squeezy: Free (1 vault, 50 secrets), Pro ($5/mo), Team ($9/user/mo)</li>
<li>Landing page with interactive terminal demo, CLI reference guide, and legal pages</li>
</ul>
<div class="project-section-title">Architecture</div>
<ul class="project-list">
<li>Go API on AWS Lambda (arm64) + API Gateway, Neon Postgres database</li>
<li>Argon2id key derivation, AES-256-GCM encryption, X25519 team key exchange</li>
<li>Next.js 16 landing page deployed on Netlify</li>
<li>Homebrew distribution via GoReleaser + custom tap</li>
</ul>
</div>
<div class="project-tech">
<span class="project-tech-tag">Go</span>
<span class="project-tech-tag">Next.js 16</span>
<span class="project-tech-tag">TypeScript</span>
<span class="project-tech-tag">AWS Lambda</span>
<span class="project-tech-tag">Neon Postgres</span>
<span class="project-tech-tag">Tailwind CSS</span>
<span class="project-tech-tag">Lemon Squeezy</span>
<span class="project-tech-tag">Cobra CLI</span>
</div>
</div>
<div class="project-media">
<div class="project-media-header">
<div class="project-media-dot dot-red"></div>
<div class="project-media-dot dot-yellow"></div>
<div class="project-media-dot dot-green"></div>
</div>
<div class="project-media-body">
<div class="carousel" data-carousel>
<div class="carousel-track">
<img
src="images/meowpass/meowpass-1.webp"
alt="MeowPass" loading="lazy" />
<img
src="images/meowpass/meowpass-2.webp"
alt="MeowPass" loading="lazy" />
<img
src="images/meowpass/meowpass-3.webp"
alt="MeowPass" loading="lazy" />
<img
src="images/meowpass/meowpass-4.webp"
alt="MeowPass" loading="lazy" />
</div>
<div class="carousel-nav"></div>
</div>
</div>
</div>
</div>
<!-- Pickle Time -->
<div class="project reveal">
<div class="project-info">
<h3 class="project-name"><a href="https://pickletime.ph" target="_blank" rel="noopener noreferrer"
style="color:inherit;text-decoration:none;">Pickle Time</a></h3>
<p class="project-desc">
The Philippines' premier pickleball court booking platform. Book courts, join open play sessions,
hire coaches, and enter tournaments — with real-time availability, interactive maps, and payment
verification for players and venue operators.
</p>
<button class="project-expand-btn" onclick="toggleProject(this)">
Show details <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M19 9l-7 7-7-7" />
</svg>
</button>
<div class="project-expand">
<div class="project-section-title">For Players</div>
<ul class="project-list">
<li>Location-based court discovery with interactive OpenStreetMap and distance sorting</li>
<li>Real-time booking with availability calendar and instant confirmation</li>
<li>GCash, PayMaya, and bank transfer payment with proof upload verification</li>
<li>Open play sessions, coaching marketplace, and tournament registration</li>
</ul>
<div class="project-section-title">For Venue Operators</div>
<ul class="project-list">
<li>Venue and court management with bulk time slot creation and dynamic pricing</li>
<li>Payment verification dashboard, analytics, and booking management</li>
<li>Super admin panel with user management, venue oversight, and platform metrics</li>
</ul>
</div>
<div class="project-tech">
<span class="project-tech-tag">Next.js</span>
<span class="project-tech-tag">TypeScript</span>
<span class="project-tech-tag">PostgreSQL</span>
<span class="project-tech-tag">Prisma</span>
<span class="project-tech-tag">Clerk Auth</span>
<span class="project-tech-tag">Tailwind CSS</span>
<span class="project-tech-tag">shadcn/ui</span>
<span class="project-tech-tag">Leaflet</span>
<span class="project-tech-tag">AWS S3</span>
</div>
</div>
<div class="project-media">
<div class="project-media-header">
<div class="project-media-dot dot-red"></div>
<div class="project-media-dot dot-yellow"></div>
<div class="project-media-dot dot-green"></div>
</div>
<div class="project-media-body">
<div class="carousel" data-carousel>
<div class="carousel-track">
<img
src="images/pickle-time/pickle-time-1.webp"
alt="Pickle Time" loading="lazy" />
<img
src="images/pickle-time/pickle-time-2.webp"
alt="Pickle Time" loading="lazy" />
<img
src="images/pickle-time/pickle-time-3.webp"
alt="Pickle Time" loading="lazy" />
</div>
<div class="carousel-nav"></div>
</div>
</div>
</div>
</div>
<!-- StatLingo Website -->
<div class="project reveal">
<div class="project-info">
<h3 class="project-name"><a href="https://statlingo.ai" target="_blank" rel="noopener noreferrer"
style="color:inherit;text-decoration:none;">StatLingo</a></h3>
<p class="project-desc">
Real-time communication platform for healthcare and hospitality frontline teams. Instant alerts,
incident tracking, multilingual translation, and HIPAA-aligned audit trails — replacing radios,
overhead pages, and missed calls with a single system.
</p>
<button class="project-expand-btn" onclick="toggleProject(this)">
Show details <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M19 9l-7 7-7-7" />
</svg>
</button>
<div class="project-expand">
<div class="project-section-title">Platform</div>
<ul class="project-list">
<li>Real-time alert system with auto-escalation, acknowledgment tracking, and response times under 8s</li>
<li>Multilingual translation with speech-to-text, neural TTS, and verified medical phrases (20+ languages)</li>
<li>Station dashboard, incident management, and full audit trail for compliance</li>
<li>Android app (Kotlin, Jetpack Compose) with offline support and on-device translation</li>
</ul>
<div class="project-section-title">Website</div>
<ul class="project-list">
<li>Interactive product demo, pricing calculator, industry-specific solution pages</li>
<li>Next.js 16 (SSG), TypeScript, Tailwind CSS v4, Framer Motion</li>
<li>Blog, HIPAA compliance docs, lead capture with industry routing</li>
</ul>
</div>
<div class="project-tech">
<span class="project-tech-tag">Next.js 16</span>
<span class="project-tech-tag">Kotlin</span>
<span class="project-tech-tag">Jetpack Compose</span>
<span class="project-tech-tag">TypeScript</span>
<span class="project-tech-tag">Tailwind CSS v4</span>
<span class="project-tech-tag">ML Kit</span>
<span class="project-tech-tag">Framer Motion</span>
<span class="project-tech-tag">Netlify</span>
</div>
</div>
<div class="project-media">
<div class="project-media-header">
<div class="project-media-dot dot-red"></div>
<div class="project-media-dot dot-yellow"></div>
<div class="project-media-dot dot-green"></div>
</div>
<div class="project-media-body">
<div class="carousel" data-carousel>
<div class="carousel-track">
<img
src="images/statlingo-website/statlingo-website-1.webp"
alt="StatLingo" loading="lazy" />
<img
src="images/statlingo-website/statlingo-website-2.webp"
alt="StatLingo" loading="lazy" />
<img
src="images/statlingo-website/statlingo-website-3.webp"
alt="StatLingo" loading="lazy" />
</div>
<div class="carousel-nav"></div>
</div>
</div>
</div>
</div>
<!-- Inspector Toolbelt -->
<div class="project reveal">
<div class="project-info">
<h3 class="project-name">Inspector Toolbelt</h3>
<p class="project-desc">
Inspector-built inspection management platform for real-world inspection processes. Desktop and mobile app
with synced data, fast reporting UX, full data ownership, and monthly feature releases. Serves home
inspectors with TREC, 4-Point, and Wind Mit templates.
</p>
<button class="project-expand-btn" onclick="toggleProject(this)">
Show details <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M19 9l-7 7-7-7" />
</svg>
</button>
<div class="project-expand">
<div class="project-section-title">Core Features</div>
<ul class="project-list">
<li>Inspector-built workflow: designed by inspectors for real inspection processes</li>
<li>Cross-platform app: consistent desktop and mobile experience with synced data</li>
<li>Fast reporting UX: "Inspection Board" navigation for quick report access</li>
<li>Privacy and data ownership: users keep full ownership of their data</li>
<li>High reliability: no planned maintenance downtime</li>
<li>Ongoing product development: new features released monthly</li>
</ul>
<div class="project-section-title">Free Tier Features</div>
<ul class="project-list">
<li>All-in-one inspection app (desktop + mobile)</li>
<li>Basic scheduling with contact manager and calendar</li>
<li>Client Portal access</li>
<li>Auto-generated client agreements and invoices</li>
<li>Customizable client email notifications and marketing</li>
<li>Website appointment widget</li>
<li>Unlimited practice inspections</li>
<li>5 free published reports</li>
<li>20+ free templates (including TREC, 4-Point, Wind Mit)</li>
<li>400+ narrative comments library</li>
<li>Free one-on-one onboarding/training</li>
</ul>
<div class="project-section-title">Pro Tier Features</div>
<ul class="project-list">
<li>Unlimited inspection reports</li>
<li>Unlimited document/photo storage</li>
<li>Enhanced email + SMS notifications</li>
<li>Service area limits and travel surcharge settings</li>
<li>No per-inspection fees</li>
</ul>
<div class="project-section-title">Reporting & Output</div>
<ul class="project-list">
<li>Fast web reports + PDF output for every inspection</li>
<li>Multiple PDF design options (3 available, more planned)</li>
<li>Very fast photo upload performance</li>
</ul>
</div>
<div class="project-tech">
<span class="project-tech-tag">Node.js</span>
<span class="project-tech-tag">TypeScript</span>
<span class="project-tech-tag">JavaScript</span>
<span class="project-tech-tag">Angular</span>
<span class="project-tech-tag">Ionic</span>
<span class="project-tech-tag">Capacitor</span>
<span class="project-tech-tag">Firebase</span>
<span class="project-tech-tag">Google Cloud</span>
<span class="project-tech-tag">Express.js</span>
<span class="project-tech-tag">AWS Lambda</span>
<span class="project-tech-tag">AWS CloudWatch</span>
<span class="project-tech-tag">Docker</span>
<span class="project-tech-tag">Nx</span>
</div>
</div>
<div class="project-media">
<div class="project-media-header">
<div class="project-media-dot dot-red"></div>
<div class="project-media-dot dot-yellow"></div>
<div class="project-media-dot dot-green"></div>
</div>
<div class="project-media-body">
<div class="carousel" data-carousel>
<div class="carousel-track">
<img
src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/inspector-toolbelt/inspector-1.webp"
alt="Inspector Toolbelt" loading="lazy" />
<img
src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/inspector-toolbelt/inspector-2.webp"
alt="Inspector Toolbelt" loading="lazy" />
<img
src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/inspector-toolbelt/inspector-3.webp"
alt="Inspector Toolbelt" loading="lazy" />
<img
src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/inspector-toolbelt/inspector-4.webp"
alt="Inspector Toolbelt" loading="lazy" />
<img
src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/inspector-toolbelt/inspector-5.webp"
alt="Inspector Toolbelt" loading="lazy" />
</div>
<div class="carousel-nav"></div>
</div>
</div>
</div>
</div>
<!-- PayLuy Wallet -->
<div class="project reveal">
<div class="project-info">
<h3 class="project-name">PayLuy Wallet</h3>
<div class="project-period">Sept 2018 - Jun 2020</div>
<p class="project-desc">
Payluy is the next generation mobile wallet system, built using blockchain technology. Send money to
anyone in Cambodia, pay anywhere & to anyone, pay your bills on-time, top up your mobile number, and shop
online, just using your phone.
</p>
<button class="project-expand-btn" onclick="toggleProject(this)">
Show details <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M19 9l-7 7-7-7" />
</svg>
</button>
<div class="project-expand">
<div class="project-section-title">Features</div>
<ul class="project-list">
<li>Send money to other Payluy user with zero fee charge, anywhere in Cambodia.</li>
<li>Send money from Payluy user to non-Payluy user.</li>
<li>Top-up phone easily with any amount. Never run out of credits anymore.</li>
<li>Pay easily using QR Code Payment with partner merchants.</li>
<li>Buy credits/diamonds for games like PUBG, Mobile Legends, and more.</li>
</ul>
<div class="project-section-title">My Contributions</div>
<ul class="project-list">
<li>Mid-level dev in a team of 15 with tech lead, junior devs, and QA testers.</li>
<li>Implemented Register and Login UI into functional Ionic app.</li>
<li>Implemented transaction history with offline support.</li>
<li>Deployed in Google Play Store with 100k+ downloads.</li>
</ul>
</div>
<div class="project-tech">
<span class="project-tech-tag">Angular 9</span>
<span class="project-tech-tag">TypeScript</span>
<span class="project-tech-tag">Sass</span>
<span class="project-tech-tag">NestJS</span>
<span class="project-tech-tag">Firebase</span>
<span class="project-tech-tag">Docker</span>
<span class="project-tech-tag">Blockchain</span>
</div>
</div>
<div class="project-media">
<div class="project-media-header">
<div class="project-media-dot dot-red"></div>
<div class="project-media-dot dot-yellow"></div>
<div class="project-media-dot dot-green"></div>
</div>
<div class="project-media-body">
<div class="carousel" data-carousel>
<div class="carousel-track">
<img src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/payluy/payluy-1.webp"
alt="PayLuy Wallet" loading="lazy" />
<img src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/payluy/payluy-2.webp"
alt="PayLuy Wallet" loading="lazy" />
<img src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/payluy/payluy-3.webp"
alt="PayLuy Wallet" loading="lazy" />
</div>
<div class="carousel-nav"></div>
</div>
</div>
</div>
</div>
<!-- ProximaX Wallet -->
<div class="project reveal">
<div class="project-info">
<h3 class="project-name">ProximaX Wallet V1</h3>
<div class="project-period">Oct 2018 - Jan 2020</div>
<p class="project-desc">
The ProximaX Wallet app enables managing multiple ProximaX accounts on your phone. Send and receive XPX
and messages. Using QR codes, it is even faster and easier than with a desktop client.
</p>
<button class="project-expand-btn" onclick="toggleProject(this)">
Show details <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M19 9l-7 7-7-7" />
</svg>
</button>
<div class="project-expand">
<div class="project-section-title">Features</div>
<ul class="project-list">
<li>All private keys and other important data stored locally and encrypted.</li>
<li>Generate, import and export ProximaX accounts.</li>
<li>Multisignature contract edits and account management.</li>
<li>Encrypted and plain text messaging.</li>
<li>Lite client using NEM's APIs — no blockchain download required.</li>
</ul>
<div class="project-section-title">My Contributions</div>
<ul class="project-list">
<li>Mid-level dev in a team of 10 with tech lead, junior devs, and QA testers.</li>
<li>Implemented OTP verification with phone number and email in 1 month.</li>
<li>Implemented sending crypto assets in 2 weeks.</li>
<li>Deployment in Google Play and Apple Store in 3 weeks.</li>
</ul>
</div>
<div class="project-tech">
<span class="project-tech-tag">Angular 9</span>
<span class="project-tech-tag">TypeScript</span>
<span class="project-tech-tag">Sass</span>
<span class="project-tech-tag">Sails.js</span>
<span class="project-tech-tag">Firebase</span>
<span class="project-tech-tag">Blockchain</span>
</div>
</div>
<div class="project-media">
<div class="project-media-header">
<div class="project-media-dot dot-red"></div>
<div class="project-media-dot dot-yellow"></div>
<div class="project-media-dot dot-green"></div>
</div>
<div class="project-media-body">
<img src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/proximax/proximax-wallet-v1.png"
alt="ProximaX Wallet V1" loading="lazy" />
</div>
</div>
</div>
<!-- ProximaX Forensics -->
<div class="project reveal">
<div class="project-info">
<h3 class="project-name">ProximaX Forensics</h3>
<div class="project-period">Sept 2018 - Dec 2018</div>
<p class="project-desc">
ProximaX Forensics is designed to bring greater efficiencies and data security, enabling investigators and
scientists to access digital evidence easily, quickly, and store it securely.
</p>
<button class="project-expand-btn" onclick="toggleProject(this)">
Show details <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M19 9l-7 7-7-7" />
</svg>
</button>
<div class="project-expand">
<div class="project-section-title">My Contributions</div>
<ul class="project-list">
<li>Mid-level dev in a team of 8 with tech lead, junior devs, and QA testers.</li>
<li>Implemented UI from scratch into functional Ionic app.</li>
<li>Implemented saving of data in MongoDB.</li>
<li>Deployed in Google Play Store with 100k+ downloads.</li>
</ul>
</div>
<div class="project-tech">
<span class="project-tech-tag">Angular 9</span>
<span class="project-tech-tag">TypeScript</span>
<span class="project-tech-tag">Sass</span>
<span class="project-tech-tag">MongoDB</span>
</div>
</div>
<div class="project-media">
<div class="project-media-header">
<div class="project-media-dot dot-red"></div>
<div class="project-media-dot dot-yellow"></div>
<div class="project-media-dot dot-green"></div>
</div>
<div class="project-media-body">
<img src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/proximax/proximax-forensics.png"
alt="ProximaX Forensics" loading="lazy" />
</div>
</div>
</div>
<!-- MECO PH -->
<div class="project reveal">
<div class="project-info">
<h3 class="project-name">Meco PH</h3>
<div class="project-period">Sept 2018 - Oct 2018</div>
<p class="project-desc">
MECO Ph is the official mobile application of the Manila Economic and Cultural Office, the Philippine
Representative Office in Taiwan. Subscribe to receive news, book passport appointments, and check release
schedules.
</p>
<button class="project-expand-btn" onclick="toggleProject(this)">
Show details <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
<path d="M19 9l-7 7-7-7" />
</svg>
</button>
<div class="project-expand">
<div class="project-section-title">My Contributions</div>
<ul class="project-list">
<li>Worked in a team of 4 with product owner, 2 devs, and 1 QA tester.</li>
<li>Implemented mockup from scratch into a functional Ionic app.</li>
<li>Preparation of assets for Google Play Store deployment.</li>
<li>Deployed in Google Play Store with 100k+ downloads.</li>
</ul>
</div>
<div class="project-tech">
<span class="project-tech-tag">Angular 5</span>
<span class="project-tech-tag">TypeScript</span>
<span class="project-tech-tag">Sass</span>
</div>
</div>
<div class="project-media">
<div class="project-media-header">
<div class="project-media-dot dot-red"></div>
<div class="project-media-dot dot-yellow"></div>
<div class="project-media-dot dot-green"></div>
</div>
<div class="project-media-body">
<div class="carousel" data-carousel>
<div class="carousel-track">
<img src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/meco/meco-1.webp"
alt="Meco PH" loading="lazy" />
<img src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/meco/meco-2.webp"
alt="Meco PH" loading="lazy" />
<img src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/meco/meco-3.webp"
alt="Meco PH" loading="lazy" />
<img src="https://cdn.jsdelivr.net/gh/chpecson/chpecson.github.io/images/meco/meco-4.webp"
alt="Meco PH" loading="lazy" />
</div>
<div class="carousel-nav"></div>