From 2d2bf8923fe01ee7e962c5c92d486eec2dbf2d16 Mon Sep 17 00:00:00 2001 From: Vinicius Mayrink Date: Wed, 15 May 2024 15:14:16 -0300 Subject: [PATCH 1/2] Adding certificates and accomplishments --- app/public/DeepLearning-logo.png | Bin 0 -> 3177 bytes app/public/cloudacademy-logo-dark.png | Bin 0 -> 6420 bytes app/public/cloudacademy-logo.png | Bin 0 -> 5941 bytes app/public/deeplearningai-logo.png | Bin 0 -> 5036 bytes app/public/ibm-logo-white.png | Bin 0 -> 2739 bytes app/public/ibm-logo.png | Bin 0 -> 1173 bytes app/public/locales/en/translation.json | 8 +- app/public/locales/pt-BR/translation.json | 8 +- app/src/App.js | 142 ++++++++++++++++++---- app/src/Certification.js | 21 ++++ app/src/LanguageSwitch.js | 2 +- app/src/Project.js | 2 +- 12 files changed, 152 insertions(+), 31 deletions(-) create mode 100644 app/public/DeepLearning-logo.png create mode 100644 app/public/cloudacademy-logo-dark.png create mode 100644 app/public/cloudacademy-logo.png create mode 100644 app/public/deeplearningai-logo.png create mode 100644 app/public/ibm-logo-white.png create mode 100644 app/public/ibm-logo.png create mode 100644 app/src/Certification.js diff --git a/app/public/DeepLearning-logo.png b/app/public/DeepLearning-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8457b1faa64f0bdc99fbe8396ef74a062bb1d112 GIT binary patch literal 3177 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 Ao&W#< literal 0 HcmV?d00001 diff --git a/app/public/cloudacademy-logo-dark.png b/app/public/cloudacademy-logo-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a56b2396e7385e9afdb7ba11e3cb8265703aa5cb GIT binary patch literal 6420 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≷fpkMwGV(dmRKU-u#`-rpTgV61}dim%Eev!$)%J{dPAejPySS+uI$L z^H4Pbz@CPTd=x$VSFZw|f6c=9dblz5?i;LRHwW>uM-qb#F$azSBItE3%kAGm2ejy~5`GINgaSg6 ze&O_3y|jo{iMQc7Vq>GUy`5<8wF@EisUyqa8|oqW)#WiK zv+o)3 zdxwlToPnpWrM(Rr^HeNqZ%*FN(+I$%8}>+=L#2{(G79fMN6*8QrPU8J+yX3b`H2(x z*4|a-(Ch#n`W%|qLyue+ceI&{igd?QkrD}D7N(~i{ud+eAlWUu9l$?sUATiZf$v|8 z7zE6HdUzT2H)QMG6;4BlZji))mhNK6{AdE63lPl+omP_*dC+=b)%z_tEB_Z40}P|j zao1-eBpd7kfrgJ}z~Q|lb}w_kOIg_lr4v^C{%IY$y>{QgbCKhGg{}SRD^?q0tT0prMznOw<5wN4h*)?Zv|Si_b<;>Q!7fmNGY`~U0-Aaecxq4R`@SGz zMr~u>L($hKllOR}j3wXaSqL(RwDL^YW3|~Q5?&;W-|N4n?w7PC@}9-~-M=H-gO)7L zffY>mp7F*$_^dH!hQSaz0VF)L;vd?12r$hCZu1fg4uEBjYFk}myk{+Wd-f9K8O@iV zWUr;Se5qqT8tCcPm?j>G{)5QgpXC7z2{poEHT`5g28=5U!EGJo`*1p+ZB5h#(Lg;~ zbUW6S$2Bthh56sxsVa}U54@}DAUc{#(ienjcH*cv!FV9So!c>^6`wr|>SHo&)Sbw5 zcJ5xX2AlSc4oP-FlHc;&mq^O?ONx|AN?*s!SuB3*=Gc(nz7X=5r&u~^4dZ$RGpAX9 z+&$9N{NGY#`e=>GW$C3gJ&2Z`|2pIa>zv-OB=od|1w!<8sjKe##c90dBha<29i7j_Fwid?G0Km3-;0c_SF))i9? zV4{Di%|FfIAFCkEnVkI~Kry>(L_ESscXCIO?RrN?DGMoOV7sK-N}3HS54+E)$KTUv z7}5&hfZf)AH^lB=K_dq4wI3hZ!WI-#orzNF(;M=8PTlP#U|*}PWgBb%O$y(^1?^|c zp^z+D`mCSJ!b5QWx}3*BHuLa>$(-@PCxYPTgSN-MbyFW7qDpQ*qQz`dG9@u$3-$zN z3E6tS=VEp4lMIH`-ImjVS4FesS;B`no*~f`?Q81~x35p%q1HG>MXb@SUyWIwH@njD zG5m$xf3@Iddyl(}I9=|sBRm` zezAl_nvyU^^G*dD{Cfl?F^t4i(6bsAuRKd_82p2z&V$O+_~qa@n`Un0e5Rdj|GDy- zhj!f5FH2UZMA*^@ytQy5Rtm`oD)J*~nFN%w{zreInL;9R9eo-siYS$o~5o&|8zJ1PGH10`9O%Id}jkQjInRf;yQKPA%@{RNyR@6l6Rhfk%^f_IE_|R`p_O-{${`7CkqoEMa z8cjXzM#*Hsu%N}|LqM@ik|g6L32?n9Q4|uYLX6+^ysxeU`5^_mX0G$u?cl?*Zv!LX zRE(i4O+o1z-{$$3z?BF?hX_x%2rn&)2ob)4Uf~gLfg%4dMpgNL2l-+v(0h&nm>8NH JyuIm~^gn~#9ijjL literal 0 HcmV?d00001 diff --git a/app/public/cloudacademy-logo.png b/app/public/cloudacademy-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ca8d3a19b3d6e2fed735f8373d464bd649dd47f8 GIT binary patch literal 5941 zcmZ{ocQD*-`0l@J_0_{Fi`9a#SS7q#^d3QitddyWMvWFk*tJ%#34$c7D3L^2C6YIY z)xAo{Mub&DkcjBL`#Cdb&dixJXYP6KYvz9DGuI!_^T$0`vh@uUR%QWa003CcObu^d zsM^KRVx+(59fD$n3lVWQy=e&mQIY_FjR%0EixGAS0K$*}u#5%(jeG#$4SN33M(g5& z-p#_q5IFx|MQnZbeRevFKdr_JIo)Qbao-t(d3W;kj}F^!vk`5xm0H>|4*OcnV@L~gaUf0vU>(x3Eg zpiD$8yCA7wi%FErl*XfSH1y5q!@a0=`0-m?eTg~H@!s_CEvw)gi<8GrzO}7m$De$A z4?@y!nY1UiGc&Go)~=_WSeKRR9n*Zp3Lse!3{G(q3Zx*N^iOt;*FSF~R!$mPAGb!9 zCg`R6<*2panc`-D|vm`a0(LT)PXv-v=r$^hVT9Yb| zEn6KoE7G?ENOs8k&))z1&Fk3$8U)1JNG=#uqpcUHoAbgq#C_rUUn)Xr+Wr! zIT3_bxNka-I-4<`cWbJ}t`PjCa?V&!?x5M-HZ4%A&{4smwtc~S02B*U9tpl8ZrLt) zi-cYJ*^O!eRIm}Z<_>$NmD}J+x=V&<5Bf4e4+T=s@q0xuYXPInU1I|A{&gf?=pI>L zVGOFrK?Pj!-Rrs^_@p;?6c=I%?|+5eaNJIC*&HI2o0E{dhp}Mex*(>pV92hXsItDl zDrN!S_k)QlY-&1;-i474F5Nu6+(B!7&H+`RTg^D}Sa{`Dx(^<}_#Rs!1J2O9yxs_VZCu)u1$O$nKlhfmLzIXga*UmCNVGFYliNGgL}WDBhm-$$tDuZ54nxY z(2e2n+TQ57I>P*FCp|F?*#njb?vObU%hbX6q0ZoT4urI` zY-TOT5F;n3LCR2Ru*%Z>JYEL?J&+D0O=!fRHR>6q-WI-)qOSLyvSdJ?5pe?UgC}D%K*a zX%hm2dDd*|d|i2u$e9e?a$TWPTl=oz+8YuI@&uuo`l1C3>^^n|SLiLeN;^nz39yud z76x!XI33q%A7%wd$koZUog0gYz}}-d+%(HvNn#>Dc;M=sf5xNPMmygszx`r3syB_c zinHgs$KjN&@{xhkSS`$qk*pBPF7jwrAEC~T9zO+@nm#OTe86*usS3pSnywKZq_sp> z=E8X|mAqzv$)Up&X;UR_dw5=0vthgKTOtwW#l~l@n9-auawp1*6(Q zrWYAi#F>M`Hjf_LL2hbp2|5}Kv`5+FS#e^}ytrxhC~k;?xZo&+${LEK)MWj_!h z5O)bG*zSA3p)9)UjL^xAEsvZtCX5M*mlUM!^&P~H-*qn{vot`<{BfP_nOz-R`p$Sk z$B)mmcV$VoCVq6%jymJ_s<5N+|A0sgoV;9vq>T`gw>4kMdu>G!%8@d zl_A%qCt9rJK-C;S2q&YEfETBg)XSZ)G9gkB9NLB>IN7M@i{IquDp+L9HSl4Q4g<0F zhl!6ywZqV^4{~Y@W5{{_sX9F=U-jNHaz4ga(^nV|#;XZI>?(FzY6zRV?iM(TUPPp- zd9N3&}T+FTh%@GBD>Wlyu- zvr}-!zSF`Jj8LdkY64*q^+C|lg$6&M(Exs=bU4yy1J?hNF~P>MM>EL}(QbV38=3bs zB9a~Y2}_vN{c3Z>eeh|P8@2R#ZixY_ol4loR5d>x^C#=e8vVvaY-^hy(+DN;V%TOf zx{JRGI^3vcg$CHV|AO%OxNXXi1cC%8E4OoLansCms(jxP0u|PAbl`7n-KIX1@WAKs z(ZVATmU*q~k7fn*@5>e?FkRiqPOPJTw<*LovX`}qa$9lt?Son`aX@1j?<-b6Y1fC{ zjo~X-&I)IkKo!#Juo1+s-20uiY=vxNhgw$61abH^;EV2_wQ1V(&sGPYAAe2tI3i`uW zrk<~zxOvMqBPdKQA`*2&{!{N;Nru<3!{okUiAGBt<2J)qEpJ$7hk&{}hW5j=@x7~6 zdrXMCpgdhrqw>~`l(Eg%cho7ZQ~c%1HX1%(-}R2|3yD0Ur)2vy9@PkTuh0+XiLa)G z`T#=4zwTNnZO~n7`PAGIq1hU)YCSk2BSiSVO|yO6+uBA_h6~ZoAZ)fH2R~&_-1@fN zjBT3q=m+A*u%WhgDNUr7aKk8gN!ZT_!%dY9#t~499MEk0dg*?WIFH{{lT3~i|FY4U znf~88T?Hu3%pfZ0>_}0;I|x8;nvtH71y!_btCyeKc>WxvU%Asdn>Qv2PE)xIcLhVj zNZzs*4`g&N{b#!GX=`D9v%TuO0lr$pBt%3j?IcG3zRtKi3iV_-Z@5f)&sczVt+!*B zxc|%XjW#hHEYsU3WT*8Y1HUV`c2~2Ko?aCDPGazwOlWz`X9pz_X8yY5$0GFkPqf&#_jm3lV~@Np?Z3k4urvjqMAJe~*59>IT-L!%c7#3gl~9 zkxz=TJXWGtk?`)6*xnP2Rx2#p$`I!DmK4MwIyKn0%(FB2W+8zZI;sUeyq^?LfV*wp z9K2x?&WFTy7jsVDzR9*n0~3Y5!%Mo?Rdc1X)ut^EvlM%xSIHt!;jRuhjpicnAP)N< zKx=QOMw7vro*{eB3p6`7>OgzTCGJ}Ci8$&bBv4+m>B%?ywoL02;c_OTfIZ8XiGPdc z^y;QFNKrrvlkr3>_m-6ie4zeGyKwwYi2nB%`N_5q`bEiW7pn?IUj2T&NxQKAAD@No zhPtLajyBf0hXwb#8FSM1(nnN5%cUHX=;ixpBhA z?Rl&#<9C{ppV`WFB<2nyR12+@-Pm4B^kf%vw}ka2{pw4BG2AC`>#@&& z6f58H-cM)AJmJb+C9YZ@aZ^fA5uj9;?i5)vgS2D4C`3)BS*kiNF95r0nx2V|6~t&j zq3)YvId>&@GwVD9xl(*LRG9jQOG6Dm6Ez^LcM|W~4fm=H*d|*4CBxvxXYwQsuS~rN zMu<+_!7*#Iwkp)FFE)ad5Gt|7j$g+$I!V@SI_v+>hC{E=8V#!(fU`BT5orfZO{hZsW zuUIRrG1&ZF?zvQuJj`3ku0I90;uY7SZQvD+N#u|R-=&8Bv^Bb`$eCN*b^4WvL49CN zJqLE|#r#bIY`XvIg(c1FMkNNIX3j-z?-q)3d+2fum;30j2db)(0u9yH8%@e#S<`8Ud-wYfvR zG!+c}D0-u}gB#IEL22$?zm$8i(Ql(Zl+$dzGAK+nXRd;d^gYbVV4xRqzAjy3jENr! zC_C~iJTq|d62mPd!HQexBw9(%xWNCWV1egSi&$8co76I;hSR(kJhmLjvVOy^u zYmZ*1z*@_m_@#hHZ0WyU(G$Q*oP!3l6tv(S*9P{#uBWQM0uAWwSoCSk{wCzaP-uG^ z&fOT7Q}HrXwd@Ip9NI$hlWEdZ@n-e!!yi}zJtiW|*az>l@y=+$4x9DnWeQhJ2QwKS zU4qJI&h#S5-e=ys1-i zIyvG@AANP+#Inq-FEs4$(3$oZZEp(3ks`m&M#^gCk@#Qzwj!_CZdBZm&GC)|Y7J<; zw%L9XPa)~Wlv$9D-x^VKq<=F>w zmPysQ6gnc0bT!eZnc=X!Z$DvY_}>7Guiw9Lm4DaQ(}Co>;y{$an?ZXf=+9J^|BP}bo#`3|8M|? z58c-5*G*5mID|5CWA*a~ieA(FQyRr&902d=h(+&B<^5*2AO*=PH^I*X1ZQiia-?Ny zB4kSPEv4_NBnA&u`G6-S=ZB0g5i1uno^&^pf`m}p@4h#A*KMr-*!Tf!g{C zJl;wcp%gi!b2SQq>=8XbzmqmrerftxBBtr4yxsOb}lM{JM}lZyOz;?h!eDu5Xyn1Y5G83 z5hlIL-ZP0(fWmbJdZHy{yG}TFaD!dnvgt&d*&#X|DTy0L6;dJBbGkLMqtqnmU$at5 z(A#7ynmgu6PqAZ4v5&$(f4imRPNJdoHFPyKF#Ta$Sl6XO-Dx42?wj7IXh7kaLjwzs z<`pa2)uf5}{ONlLz7_H_7sE4k5-;Oss7jQ0iFR+8I*ZY7TH8Ib!0r@1#HX~(3=Suy zN+C$MqM3FmZoe4YpQ=23{6w^s4dRk;aA(BlS2S$(3=`MG(NfP5#k)iFl7gD+4@9+m z>C<%n#pt&l7j@1Q@sUpjoccoo>e5ujGI>q<5&NMtVk()ZxLlnSpT`7qLp)_n-|uxx zXXWR5vsbXVFLB*y@p9jfHX{!7oE}0R5T44CC~9W;bt3ny@3rmVB%&cw|FR>j>qhB{ z4p%uOYo;*M;)IqWUed3T={o0>--k?AAG-QFxpQyzq#;_G|hzwcpF3V#DhUXO?p+RTAo|I+*7+2jdX# z?BKg}TdeDEP=)@H)>fzPB>o)eI0qeryEub-we~-6gfBEdG0qrxn-Rl{!lh2>jnXz< zqv9~g%Wk{z{8hrsgN`Y`aMMN4QnZSX0qKF?g)B`vcZ+~OFOo3%ry$60*G=y}p(^Te z=H-o&DzV7zTAQQm-~6usD>x1&KOx=@ZW#|nvyXuO9rDAYw36p^&eHbyb^oC~d^bDk zKcNci>EP$Sq)@T~_ca^VUCazQ?l%r;ZSW@BgFM3vz3^V*k~HF|4;Qb{k>a91VK`0d zd-GyjBi??)SV%Som}4@9)9F+!r>x!VcFtohs}nYGC`nR9GvC@vnA=6qMQ*&}a8mv3 zM;G5~_IF$TCQU=e;HCR$q^wWj=^LrmkH__V4bMmix2i&}T&tYw{BQ6IOs&EW!AEQR zatEfrYL-*eqr!f8Mn)**UFwNKUm0)c`;i(7_^6h4f*=_@vhA_7N2!R-Q?r3Whj(o3 zi|Ug2#3h!>=g+z&o8cXnDt8@>|L#Bs#k>-l-RsJnZ*e^gR$p39C@C4DEgw?o zK&-^wddtG&L^j#RaUZVb*ceqV233539hio>qJ=B|hD?tMR2@i;&u3+T!~5x`?{=+( zBhGSuQF)~+u(kLRnyrGq9|Yv!nrPQk%nSOho`1|=uLbm&&FgUCmS) zhUJ%j#Cy2Op9#GPIDUS}r_wRd!pff8#={nbe$ z%&T`mxxM&Uno8F>>XcQ4cFx+nURdnWW-Q_KjA_hD%;Mn~E)?mblSTuv`Z?5YdGb5= zS8{t5{oyCa6{15dd@B~zN(Xt5-i)3t9}<~3SDpuiTY$YoL0xdF6*fvnQky*=|Bb$m zlwj?9GuDRt1^>5ENy7c8$7jNa1*V#=u8N{D*14cW6aO(B{n|}vA6GQc8tyyfkaODpgN;h3_*~&jci_nRsKNE|7dpM?auM4-dKK!b z_VKA~IT?n3#EAxPCLf8tbzu!|3{EJ4p5BmYs@;JTTsV+#WWY;0Ov5PALhKLH8`$zRm;ibcLdX%wF;6-M9 zIn)Rh>fsvdso@^%c_DxjQb|P)c~wsFs;#1$hO(-LvXU$kseweEjVHJLUx0t02gWP% u{|{sm6u}pO^#5@P#rS)Mgu40%{lARL|2Co6@poS^fSJ(^!y0{b-2VUw?cyZ> literal 0 HcmV?d00001 diff --git a/app/public/deeplearningai-logo.png b/app/public/deeplearningai-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..dff93bab404b73d6cb965436a3ea2dd759d6754a GIT binary patch literal 5036 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 literal 0 HcmV?d00001 diff --git a/app/public/ibm-logo-white.png b/app/public/ibm-logo-white.png new file mode 100644 index 0000000000000000000000000000000000000000..697bd0b0b8b1037084161464cbcb0f0518525fb0 GIT binary patch literal 2739 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 N0CNh9uCcqA{2$G9AtV3* literal 0 HcmV?d00001 diff --git a/app/public/ibm-logo.png b/app/public/ibm-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ee4087ea91f1e454d862772d10f5e1b06f0e3d55 GIT binary patch literal 1173 zcmZQzU{FXasVqn=%S>Yc0uY^>nP!-qnV9D5Xz0Yiz}TCcT9OEo0|JeVl$;_6lYyZi zGr0uD2GKd0Nibvh3NlM_!E%g1QYSMfKN-YxVPIfl0EqxGOCFF`2lBx@#;ri9oj|rz zW@aAPC14pTASV^11f(Oe%)rn&KPMmT0E7%s8YJVGQ;?AeQYn>LlnOC{fq^fvv?2#= zC&<>rnFU1!KzeRwL2^Ej7Rf9wNCna$5CFvj1(_9@AOU6$4h|s2lUQcx+{nNK5)w|% z&ne1F&Zz*phL?e@0Vo9YC`36Ul42Q#gBOf0IjN`yIIF0&vP><^$;U|_K@GBvX>FtISQwy^^RUgV}EmIyI$u}MfS zKc5(2w1!o11G`MX4aO>t?=zyKER_}Vf>rLTRDSHb0yXTrLvS}Bviht}cwc@|`gjIWU@+u5Bq~0lgaO&=j zsl{P8*39a?_tF39;fjOTyZm;4z1m*?C0P1hvA_S4`dLfMT{Ht%1V$EF1oPc~A-^K+ zMc0=&r+ph9O6cEOzfs0t$%D;#2cOs7-}jHDCz?xbxPSFpaN4Q+4?Hhu7g<^I*7+IB zMSSO!5>X9$di$0GlWoD`$C`)yrGsvtt+GBoRW$F|?DQ_n^q2LgqtZi!zc<}^khtG6 zm|NoJ>OV<;k`~_Bw}0CSS>;`qMZAO-7@Ev(OG=&Bb#e2`YIg58eK&b_9Tetzajs_e zv$bGI)#JnpbapRC6TDXr0cTC-2hzN@uLt1nGv*PZpJD@_>AwIsHueq6clQp9%dMKk*{zWlss z%AWtgAURG!B;VLCVinicius Mayrink and I am a backend developer specialized in crafting robust APIs using an arsenal of tools including Python, Java, and Node.js. With a deep understanding of backend principles and concepts, I am proficient in implementing SOLID principles, RESTful architecture, and clean code practices to engineer scalable and efficient solutions.", + "text": "I am Vinicius Mayrink and I am a backend developer specialized in crafting robust APIs using an arsenal of tools including Python, Java, and Node.js. With a deep understanding of backend principles and concepts, I am proficient in implementing SOLID principles, RESTful architecture, and clean code practices to engineer scalable and efficient solutions.", "button": "Check it out" }, "projects": { @@ -36,7 +36,11 @@ "about": { "title": "About me", "position": "Software/Back-end Engineer", - "text": "My passion is creating REST APIs in Python, Node.js, Java, and PHP. This is the area in which I specialize and continuously develop myself every day. I use principles like SOLID, clean architecture, and Design Patterns as premises for creating stable, scalable, and distributed applications. I believe that DevOps, DevSecOps, and CI/CD practices are essential for applications to be developed collaboratively and in an organized manner, significantly reducing potential problems and bugs even before they reach production environments" + "paragraph-1": "APIs and Web APIs are indispensable for digital integrations, serving as the linchpin that enables seamless communication and collaboration between disparate systems and services. These APIs provide standardized interfaces that allow different software applications to interact, share data, and execute functions across the web.", + "paragraph-2": "My passion is creating these REST APIs with tools such as Python, Node.js, Java, and PHP. This is the area in which I specialize and continuously develop myself every day. I believe that DevOps, DevSecOps, CI/CD and Agile Frameworks practices are essential for applications to be developed collaboratively and in an organized manner, significantly reducing potential problems and bugs even before they reach production environments.", + "certifications": { + "title": "My certifications and accomplishments" + } }, "contact": { "title": "Contact me on" diff --git a/app/public/locales/pt-BR/translation.json b/app/public/locales/pt-BR/translation.json index 61a6b64..9056aa6 100644 --- a/app/public/locales/pt-BR/translation.json +++ b/app/public/locales/pt-BR/translation.json @@ -10,7 +10,7 @@ "description": "Eu construo infraestruturas de backend escaláveis, seguras e integradas" }, "description": { - "text": "Eu sou Vinicius Mayrink e sou um desenvolvedor de backend especializado em criar APIs robustas usando um arsenal de ferramentas, incluindo Python, Java e Node.js. Com um profundo entendimento dos princípios e conceitos de backend, sou proficiente na implementação dos princípios SOLID, arquitetura RESTful e práticas de código limpo para projetar soluções escláveis e eficientes", + "text": "Eu sou Vinicius Mayrink e sou um desenvolvedor de backend especializado em criar APIs robustas usando um arsenal de ferramentas, incluindo Python, Java e Node.js. Com um profundo entendimento dos princípios e conceitos de backend, sou proficiente na implementação dos princípios SOLID, arquitetura RESTful e práticas de código limpo para projetar soluções escláveis e eficientes", "button": "Veja mais" }, "projects": { @@ -36,7 +36,11 @@ "about": { "title": "Sobre mim", "position": "Software/Back-end Engineer", - "text": "Minha paixão é criar APIs REST em Python, Node.js, Java e PHP Essa é a área para o qual me especializo e me desenvolvo a cada dia. Utilizo princípios como SOLID, arquitetura limpa e padrões de design como premissas para criar aplicações estáveis, escaláveis e distribuídas. Acredito que práticas de DevOps, DevSecOps e CI/CD são essenciais para que as aplicações sejam desenvolvidas de forma colaborativa e organizada, reduzindo significativamente problemas e bugs mesmo antes de chegarem aos ambientes de produção" + "paragraph-1": "APIs e Web APIs são essenciais para integrações digitais, servindo como o ponto central que possibilita a comunicação e colaboração contínuas entre sistemas e serviços diversos. Essas APIs fornecem interfaces padronizadas que permitem que diferentes aplicativos interajam, compartilhem dados e executem funções pela web.", + "paragraph-2": "Minha paixão é criar essas APIs REST com ferramentas como Python, Node.js, Java e PHP. Essa é a área para o qual me especializo e me desenvolvo a cada dia. Acredito que práticas de DevOps, DevSecOps, CI/CD e Frameworks ágeissão essenciais para que as aplicações sejam desenvolvidas de forma colaborativa e organizada, reduzindo significativamente problemas e bugs mesmo antes de chegarem aos ambientes de produção", + "certifications": { + "title": "Meu certificados e conquistas" + } }, "contact": { "title": "Entre em contato" diff --git a/app/src/App.js b/app/src/App.js index 3eea5de..be58614 100644 --- a/app/src/App.js +++ b/app/src/App.js @@ -1,5 +1,6 @@ import './App.css'; import Project from './Project'; +import Certification from './Certification'; import DarkModeSwitch from './DarkModeSwitch'; import LanguageSwitch from './LanguageSwitch'; import { useInView } from 'react-intersection-observer' @@ -13,7 +14,26 @@ function App() { const [refAbout, inViewAbout] = useInView({ threshold: 0.5 }) const { t } = useTranslation(); - const carouselResponsivity = { + const certificatesCarouselResponsivity = { + superLargeDesktop: { + breakpoint: { max: 4000, min: 3000 }, + items: 5 + }, + desktop: { + breakpoint: { max: 3000, min: 1024 }, + items: 3 + }, + tablet: { + breakpoint: { max: 1024, min: 464 }, + items: 2 + }, + mobile: { + breakpoint: { max: 464, min: 0 }, + items: 1 + } + }; + + const projectsCarouselResponsivity = { superLargeDesktop: { breakpoint: { max: 4000, min: 3000 }, items: 3 @@ -34,6 +54,67 @@ function App() { const mySkills = ['docker', 'api', 'rest', 'python', 'integrations', 'java', 'backend', 'ai/ml', 'ci/cd', 'git', 'pipelines']; + const certificates = [ + { + name: 'IBM DevOps and Software Engineering', + img: 'ibm-logo.png', + imgDark: 'ibm-logo-white.png', + url: 'https://www.coursera.org/account/accomplishments/specialization/66L5N4AT8M8M', + tags: ['software engineering', 'devops', 'ci/cd'] + }, + { + name: 'CloudAcademy DevSecOps, DevOps and Software Engineering', + img: 'cloudacademy-logo.png', + imgDark: 'cloudacademy-logo-dark.png', + url: 'https://certificates.cloudacademy.com/aad6d2adc60c57b122cbe716135f4c39815347c8.pdf', + tags: ['software engineering', 'devsecops', 'kubernetes', 'docker', 'sonarqube'] + }, + { + name: 'IBM Application Development using Microservices and Serverless', + img: 'ibm-logo.png', + imgDark: 'ibm-logo-white.png', + url: 'https://www.coursera.org/account/accomplishments/verify/UAB7NFB4VKEJ', + tags: ['software engineering', 'microservices', 'docker', 'api'] + }, + { + name: 'Cloud Academy Building and Deploying a Cloud Native Application', + img: 'cloudacademy-logo.png', + imgDark: 'cloudacademy-logo-dark.png', + url: 'https://certificates.cloudacademy.com/0b1276b17c1933574ccec3a3cf1fefb3021796a2.pdf', + tags: ['software engineering', 'microservices', 'devops', 'docker', 'linux'] + }, + { + name: 'IBM Continuous Integration and Continuous Delivery (CI/CD)', + img: 'ibm-logo.png', + imgDark: 'ibm-logo-white.png', + url: 'https://www.coursera.org/account/accomplishments/verify/SHL6AZNPP6JM', + tags: ['software engineering', 'ci/cd', 'docker', 'terraform', 'jenkins', 'GitHub Actions', 'Artifactory'] + }, + + { + name: 'Mathematics for Machine Learning and Data Science', + img: 'deeplearningai-logo.png', + imgDark: 'deeplearningai-logo.png', + url: 'https://www.coursera.org/account/accomplishments/specialization/4UJ8AS7XCHJV', + tags: ['machine learning', 'calculus', 'data science', 'statistics', 'probabilities', 'linear algebra'] + }, + { + name: 'IBM Application Security for Developers and DevOps Professionals', + img: 'ibm-logo.png', + imgDark: 'ibm-logo-white.png', + url: 'https://www.coursera.org/account/accomplishments/verify/S22XF29249EC', + tags: ['software engineering', 'owasp', 'grafana', 'monitoring'] + }, + { + name: 'Cloud Academy Operations with AWS - Level 3', + img: 'cloudacademy-logo.png', + imgDark: 'cloudacademy-logo-dark.png', + url: 'https://certificates.cloudacademy.com/28395c94b90526d5a05d7de61f5dc42509da5a7e.pdf', + tags: ['software engineering', 'owasp', 'grafana', 'monitoring'] + }, + + ]; + const projects = [ { name: t('projects.restaurant.title'), @@ -123,10 +204,10 @@ def analyze():
  • - +
  • - +
  • @@ -154,39 +235,25 @@ def analyze():
    -

    , span_language: , strong: }} />

    +

    , highlight: , strong: }} />

    - +
    -
    -
    -
    -

    -
    - - {projects.map((project, i) => { - return - })} - -
    -
    -
    -

    -
    -
    +
    +
    Vinicius Mayrink -
    Vinicius Mayrink
    +
    Vinicius Mayrink

    -
    +
    {mySkills.map((skill, i) => { return
    {skill} @@ -194,10 +261,35 @@ def analyze(): })}
    -
    -

    , strong: }} />

    +
    +

    , strong: }} />

    +
    +

    , strong: }} />

    +
    +
    +

    + + {certificates.map((certificate, i) => { + return + })} + +
    +
    +
    +
    +
    +
    +
    +

    +
    + + {projects.map((project, i) => { + return + })} + +
    diff --git a/app/src/Certification.js b/app/src/Certification.js new file mode 100644 index 0000000..04d20a5 --- /dev/null +++ b/app/src/Certification.js @@ -0,0 +1,21 @@ +function Certification(props) { + return ( +
    + +
    + {props.chips && props.chips.map((chip, i) => { + return
    + {chip} +
    + })} +
    +
    + ); +} + +export default Certification; diff --git a/app/src/LanguageSwitch.js b/app/src/LanguageSwitch.js index cf387fc..cbe1552 100644 --- a/app/src/LanguageSwitch.js +++ b/app/src/LanguageSwitch.js @@ -35,7 +35,7 @@ function LanguageSwitch(props) {
    -
    +
    + + + + +

    , strong: }} />


    , strong: }} />

    -
    -