14 Commits

Author SHA1 Message Date
Pedro Cabral
9a410226b3 changed link to moderncv 2026-07-17 13:11:15 +02:00
Pedro Cabral
1e28e0ce7c removed reference to self 2026-07-17 13:10:44 +02:00
Pedro Cabral
3a6daf63dd added other CV variants to README.md 2026-07-17 13:09:23 +02:00
Pedro Cabral
2c58ebe28a added script to propagate commits across CV branches 2026-07-17 12:50:54 +02:00
Pedro Cabral
35e9e3ae5a deleting auto-generated files, iff pdf was successfully rendered 2026-07-17 12:39:17 +02:00
Pedro Cabral
b15d162916 renamed files and fixed path to photo 2026-07-17 11:49:45 +02:00
Pedro Cabral
17f242fb39 updated README.md 2026-07-17 11:49:45 +02:00
Pedro Cabral
88652088e4 merged .gitignore files 2026-07-17 11:49:34 +02:00
Pedro Cabral
82903010c5 moved files to root directory 2026-07-15 01:04:55 +02:00
Pedro Cabral
9ca759a5e1 removed moderncv variant 2026-07-15 00:19:09 +02:00
Pedro Cabral
735805ddf4 removed article type 2026-07-15 00:18:44 +02:00
Pedro Cabral
c4ffece9eb added professional sabbatical 2026-06-15 10:50:32 +02:00
Pedro Cabral
f56f99e533 built pdf 2026-05-15 16:48:59 +02:00
Pedro Cabral
e52185110a fixed end date FSD 2026-05-15 16:48:40 +02:00
15 changed files with 181 additions and 3849 deletions

15
.gitignore vendored
View File

@@ -1 +1,14 @@
.DS_Store
# Ignore all files
*.*
# Whitelist
!.gitignore
!.vscode/
!.vscode/**
!awesome-cv.cls
!*.tex
!*.pdf
!*.jpg
!*.md
!build/*.*

View File

@@ -3436,76 +3436,67 @@ endobj
43 0 obj
<</Filter/FlateDecode/Length 293>>
stream
xÚ]ÑQkƒ0àwE;FQ[­-ˆ°)¥Âº•ÚþMN˜IˆéCÿýâ]éÃ
_¼œ¹»°¬«ZIÇ“ռÇz©„…Iß-ÖÁ U¯˜<C2AF>Ü=…o>¶&Ëck¾ÛXx>ÊÃñý¬;íôòK7·¼^öñ† è)ðò0ÀVOטŒµê5Ëó€ù>ïäìƒ->„îàmÞû±¬T[\Ëwš»1¿0r,
ŠÓÅt3®L¦å`[5@<40>G~,ßûU Ä¿ï¾*<ÖõüÖÚ9|ûð(Jª• Ò•¤¨MLÚÒŽ”’>I©"íPiD*IkÒž´Ae+RFZ“èYŠ…<o<—4<E28094>á5~·Ö7g…-Ÿ»#¼Æi´™Oáóˆ <0B>°
xÚ]ÑQkƒ0àwÅ=vŒ¢¶ZWaSdÂÖ<C382>ÚÂ^59­0“Ó‡þûé]éþäsw~^øßV'}µ¡Å~P^¸9wÍblŒççŸ<C3A7>94#‚ÿ~ÈÏåÏóQ·ÚéõÇÐ_Üú|*ÃHì8ðt3»«¢¾MÇJuÒÔð<>󽓳7X½JÝâÓ²öe%ÚAõ°:ç5­ÔWc~qDå 𲌮 ùeBKœL#Ð6ªG/ æAZÎ#óPÉûsVt¬íÄ¥±Kø6œÃƒ *2RDŠR“v!ë…±ö¬˜õÆJXkOŠVÎÚ²JÖŽ”lX kËâ?$1%rñÒÒ†GÄÕÚ¹0Ô+*ùR<C3B9>Aá£<C3A1>Få}˜¦<CB9C>º
endstream
endobj
44 0 obj
<</Filter/FlateDecode/Length 262>>
<</Filter/FlateDecode/Length 263>>
stream
xÚ]<5D>ËjÃ0E÷úŠY¦”àGgc <0C>CÀ…>°Ú­,<2C>]A, Y^øïkI&Hpæqg¸QY]*),D_F±-ôBrƒ“š Cèp$)pÁìFþg#Õ$*ß©þ #BôÓ~ŸßêçZuʪýYÝùþÖ^“ 8ö¡¯]4BºquiÉâXÉ^Až€¨^e'kؽrÕá“Ë}ŽFÈv·²ñ™fÖúŽ#J 1)
/—„Øâ8iÊÐP9 Éã5
ȯk%ÿW?†©®g¿Ô¸îô´vÇñá¥pt8zÊ@Y ÔÓ1T
µSê·lznŸ³èá<>Y¯ö>z?ÜéBâÃj­´òï¡¥|
xÚ]<5D>ËjÃ0E÷úŠY&”àGcgc <0C>C¨)MKœlº“¥±+ˆ%!Ë ÿ}-ÉdÑ Î<î 7ªêS-……èÛ(Ö …NHnpT“a-öB$.˜]Éÿl šDÕ'Õ: DMõqùy¹ªVYµ;ªßÝoç$Ž]è»Í!]¹>5óhq¨e§ (@t]dGkfؼqÕâÖå¾ G#d{ÕøL3iýÀ¥…˜”¥—KÂaLq5eh¨ìñ%ç%Jÿ«gaªíØ/5®;=,Ýq¼-í3Oy(”zÊâ@U P;¤~˪çö9ž±É˜åjï£÷Ã<C3B7>.$>­ÖJ»)ÿþŒ¼{ö
endstream
endobj
45 0 obj
<</Filter/FlateDecode/Length 345>>
<</Filter/FlateDecode/Length 344>>
stream
xÚ]Kƒ0Çï~Š»,Å·nA„­"ëa¬íîYãØjbzè·_3#…6 á—™ÿ<qº¬Åh˜û¥%oÀ°a½†Y^4ÖÁiް~äf%üó©UŽ[¼·ê£<C3AA>€¹åÛϾù}þ<C3BE>4r[›ö<òíñPù ëa ÏÃU V®Ëæ:˜j1Hecî÷x6úÊ6¯½ìàÉž}êô(Nls,<i.J<>aa˜çä9†ó©4.{˜UËA·âNæ-+gYµ¬ÜÑ?Ø—¶PÖ ü¯ÕÖÝ·îž9OT")Rí‰R¢è)L<>â)Š‘ŸˆlÉjÛÅD˜QI´CЉÒ6²V|«ÿÖoTQꈴ{Ò®õP²4XC<58>èñŠÜB¬7JIÞåõóFKPf7ê5¼OaoÞŽËmZøEëåýp¦p2ì#Žnc§¤²*üþK[½
xÚ]ÛŠƒ0†ï}Š\vYŠgÝ[E°°Û¥¶°·Ç®P“Ó‹¾ýêŒm@יɨY™—¢7ÌþÑW`X×VÃ(ïškàÚ ËõXÛs³þùP+Ëξjõ]Àìßâx¨ï'ÙH#·¥©o=ß^Î…±:ò<?0oá2¯£<>¡<14>dIb1fŸ¦À£Ñ¶ùleoóÙQ· {qeKVáIuWêÃ+M1œK¥qÙ¨jºgZ)KŠi¥ˆöÅ>µ…²¦ãµžÝÝÙÝq¼,Er‰r$/F
|¢=QL”} ùRè!!Rä-Zl;¢<>ˆbF3ȉvH!Q¼ÃFŠ×ú×R¤Ý“v©‡ÅÞD¯wàäæc½ALZÿ)¯ûš7˜²y£^ýçóÍÏã²N ¿k=½ÎNÆüˆ½€uì”T³
¿Y°½
endstream
endobj
46 0 obj
<</Filter/FlateDecode/Length 261>>
stream
xÚ]PÁj„0½ç+渥,®
Û=ˆ Aè¶Ýº{é-&£ ¬Iˆâß7F»‡$0/óÞ¼¼¨¬i­¤ƒèÃjÞ ƒN*aqÔ“å-öR8!¹Ûºpó<70>•gfÞØ€]ŠËëùë¹ÒÊ?ž=à±²ˆûFߥØß®U|<04>ÝJ¹Î!Ùúš6óèp¨U§!Ë@ôé7ŒÎΰ+„nñiÁÞ­@+U»[Ù¤™Œ¹ã€ÊÁ<C38A>äy<C3A4>W<E280B9>\  ãh™êd_9d•¯œ ÿÞ“•ÕvüY?<3F>¤¥Ÿ¦§”RzJr<4A>¤/éRVqÐØ¦µ%G|²Ö{
<EFBFBD>…ß.ƤÂG¦FÎ/Z×zZ
xÚ]PMk„0½çWÌqKY\¶{a1dûEu/½Åd´<64>5 1Rü÷<C3BC>Ñî¡ Ì˼7//**Z)é ú°š×è “JXõd9B½T$N@Hî¶.Ü|`†DÅ+3ol@ˆš—Ëó×å±ÔÊ<C394><{Àci÷µ¾I±¿6e|<04>ÝJifƒ<66>l}Eëyt8TªÓ<C2AA>e úôFggØ<67>…nñaÁÞ­@+U»kQ¤žŒ¹á€ÊÁ<C38A>äy<C3A4>W<E280B9>\  ãh™êd_9d¥¯œ ÿÞ“•ÕvüY?<3F>¤…Ÿ¦§”RzJr<4A>¤OéR”qÐØ¦µ%{|²Ö{
<EFBFBD>…ß.ƤÂ{¦FÎ/YÍzY
endstream
endobj
47 0 obj
<</Filter/FlateDecode/Length 364>>
stream
xÚ]Ûjƒ@†ï}нL)ÁÃzH@„ÄTÈE4‡0:Z!Ù•<C399>^äí«óÛP² ðíÎþóïÌØév³UM'ì½ÑÅ‘:Q5ª4t×½)H\¨n”åz¢lŠn"þ·¼µìô3o¿ò û°þÞí³÷ƒ¾èNÏ×ÜÌÏ§Ì EIBO<42>„7ñvs|Ü;ºmU¥E[b”ï<E2809D>yˆÙªÔz÷v¦$Ó¨ZÌÎéwŽ}Û^éFªŽ•$,çÂ[¡Kº·yA&W5Y±3¬DÄÙ°Tùr>xãk—ªøÉ ‡§C¸ãx„iZ2КÉuA<1B>ú­˜d¦„¦ç3ù“¿f
#ò…È8 „|!ò<> A3AS•(åL/uÿÞý¬“ÀV]wŠÆùk™äé%Û–ÙäŽäG0#}te!™tþ[»4ÎÖs´ŠÞ˜¡×<€<EcÃmu;ÞâïõÁÆ
xÚ][ƒ0…ßýyì²/ñÒBZ[Á‡½°¶°¯^¦®PIõ¡ÿ~uN·, (|ÉÌ™“ÉØI¶ÏT;ûÓè*§Aœ[UºêÑT$JjZe¹ž¨Ûj¸ÿ«®è-;y+ú÷¢#aç»|{ø~ýÒ¥ôòšñR˜å阺¡¨éŒÐã­'áÝ9Ûç·ë@]¦ÎZl6ö”Ö^sm­Kz™÷>LM¦U<C2A6>œwò±ï/Ô‘„cÅ1˹ðVéš®}Q)TCÖÆ™V,6é´bTýt>yã´ò\ý†Ã“)Üq¼UÌ´­A)hÇ亠@[& )¡éùL¾Ãäï˜Â„z!ê(¡^ˆz<CB86>¥ hFÐ B<>ÇB%J¸÷›º÷~ôÉ`+‚®{<7B>Æùsä
å%Û–éäÎäG0#}te¡˜tþ[_iž­ÇhU£1Ó[óòÍÞ*zÌh¯û9¿_øÂÁÂ
endstream
endobj
48 0 obj
<</Filter/FlateDecode/Length 322>>
<</Filter/FlateDecode/Length 321>>
stream
xÚ]Moƒ0 †ïüŠ;M(½ ¤cbÓ>4ZiWš˜©$Q ‡þûUU#<23>ô¿¯¿¨ËZõó¿¬ L¬ë•´0ê³Àpì•r&{1-„o1´Æó÷Ö|´0ÿåµ*Þ”5­<1A>Ý:×'¹Þïª0a:Jß] 0¾p]6—q¡V<C2A1>fiê1æ;÷q²¶zúsìÓJ°½:²Õ¾h0Òœ<C392>jb<6A>—ehRBKM+À¶ê^¸“±´r'ó@É»ï[R:ñÛZÌŽ\vÄ<CÚÅD Ñ) ˆiÅDQ<>”„ØÁR+ú¯|m4|Æ4NÚ„´œjòœ9ˆzÝòÅ—œøÝ•x¼%mâRñ"qÎÉ4¹mhμÖëVÅÙZ7bÜ=.ožs¯àú{mf>Ô-¨O
xÚ]Ýnƒ0 …ïyŠ\vš*H ô! :$&u´<0F>&¦C*IèEß~`³jj$<24>>ãsìØ„e½«M7²ðÓ[ÕÀÈÚÎhƒ½zìçÎ\0Ý©q!|«^º ,÷Ò½ËXøöµ¯ÊÃsƒ²Fša²[ö¢×ÇCÅS¦¡¥ôÃÍ ×»æ6ŒÐצµ,ËÆÂïÉ}ý<>­^´=ÁÓûð|gÎlu,Œ4Wç.ЃYä9ÚqêOY ƒ“
¼4g²h:9˪éäýð}KªS«~¤ÇìxÊŽ¢DäH¢„(%Ú ñˆ¨"âHˆ(!ЉJ¤”cK­ø¯ò½QþŠi´)iÕ
î<EFBFBD>bêu+_rWÉ–´é”ŠI
A¦éÿ†æáÌk½oU]½ŸFŒ»ÇåÍsî ÜgݬÂçâG¨V
endstream
endobj
49 0 obj
<</Filter/FlateDecode/Length 366>>
stream
xÚ]RKkƒ@¾û+ö˜R»«æ"¨©ú®É¥7££ê*«9äß×<C39F>1iš•oü£3v¼ÝlU=0ûC·y
+kUhèÛ“Î<E2809C> ª•%$+ê|˜Þó&ë,;~ͺ·¬f¿=¦Écв4Sýh7©«ã0ßï±`”Äß<C384>;`rÂÛMzîh¶ªl™ï[ŒÙ_£}?è3…E{€S{×èZUl¶<6C>S¬¤§®û<C2AE>ÔÀ¸h'¨Á¼- ï²t¦*°|>ž€ùÉx Tq÷Þ!Õ¡Ì<C2A1>™6l±Ùœ{ËÑšÐ
‘ã"Z®ÑiÒ¸‡¿@‰4áèåD£bLö1"IÌ1%1Aar
#{÷®_; <09>Ö<EFBFBD>ÜÖ §<C2A0>ìcB”â„·ÝûîÝEnD­ñÞ]¼Ç—#Mr)M„7ý.¹"4ů %„DÓ×ŷ͘ñ˜Íº.V~Òz®<>™t­àº¡]Û^¿nõË>
xÚ]RÛjƒ@}÷+ö1¥wW<77> ˆ<>Õ
<EFBFBD>Þ¨ }6:1B³Êjò÷ugLšfAåŒç2:ã&<C2A3>¹Ÿ¦-sءѕ<C391>¾=ØêF;B²ª)‡ á½<<15>ã&oE÷^œ€¹JíÔwúœ£,/t?ÚÍ_ú8ÌwÛL,Xâo/09áMš_úN}hY9Œ¹_£}?˜ ­«vO¶öa*0<>®Ùl—äXÉÏ]÷ãN£<> ˶‚¾+J0…®Á‰øxbeã‰ÐÕÃ{<7B>TûCy,ŒeåÈæ<cD+BKDž<44>(\¡Ó¤ñ¯<>i\áèå)"P1!û˜˜ž 09…½ÿЯPÄÎÖVë+ÿªµèeMö !JñÖ÷ÝÇî}…"_Qk^ø/>xˆx8Ò$—ÒFÓïKBSüŠPF(C$9}]rߌ<1D>ݬÛb•gcÆ!ãúáúØI7nÚµ<C39A>Uáõ ÑË
endstream
endobj
50 0 obj
<</Filter/FlateDecode/Length 356>>
<</Filter/FlateDecode/Length 354>>
stream
xÚmM@ïþŠ=¶” »Ó€~D<>ôš\z3:¡®Ëjù÷uglZJVxÆ™÷<E284A2>Ý;ÉÓ\v³ßôP0±¦“µ†q¸è
Ø ÚNZ\°º«¦…ð[õ¥²ìä¹T/eÌþØÇû}ôP`YQÊq[=uíyʧÕñ<C395>qŸÕÐPÅ᪀‰…󴸎ô¹lcöûl0NúÊî¢z8Á½‰½êt'[vwL
Œ¥>¡91Ç
C”ãÔb5Ô0ª²¬À™WÈl^¡²þóMU§¦:—³Åœí8<"‰GHë-’ë"m‰(s³E—EÏÿVÿifƒi)y>¹$HœS0&3ç>y
R¦ 3Ÿš¤)b
&L\Ò܈¥­ÿOÍ=Óv©å1ÝAšòbŸhhG<68> tYóŒ(û}jsËfDnR]´žß
ç§À<X'á6jjP¦
÷Öy¸T
xÚma0¿û+ò±cM´ºU+ë:fû¬žV˜1ÄôCÿýôÎuc,á9ïÞ÷œ<E28099>äi.;Ãìw=TÖt²Ö07]»@ÛI Vw•Y¿U_*ËN¥z+{`öaŸ<61>ããs<C3A3>eE)ÇInýÚµW“õù”qŸÕÐPÅ鮀‰…ó´¸<C2B4>ú\6 C1ûc2<18>¾³Õ®.ð4ÇŽºÝÉ­ÎI<C38E>â¦Ô'ô s¬(B9N-VC £*+Ð¥lÁ
<EFBFBD>iE,̦Y ë?ÿ7Tuiªk©1[LÙŽãñÉ#røi³Er]¤à…ˆ2ƒ-º,zþ·úO3¦9¤äùä qNÁ˜ÌHžûä)(H™Ì|jR<6A>¦ˆ)˜P0ErI3K[ÿŸš{¦íws-<2D>éÒl&/&ùé€3í©s<C2A9>.že¿O=ßò<"<22> ©nZOo…s„S0?X'á1jjPsî/Ö7¸T
endstream
endobj
51 0 obj
<</Filter/FlateDecode/Length 333>>
stream
xÚ}Akà Çïù;FI´5[!–´…Ö<>¥=ìhõ% 4FLrè·Ÿy¦…õ0Aá§ÿÿ{OŸa^l Ý ´<C3BC>,a U£•…¾­r†ºÑeD5r˜
„ù»0Ñ YïžK´•B÷.Üò êñ"ìòtÜÓ˜(¨¼ãx5@ØÌŶ¼ö´…®:$!¡³5ý`¯dñ¦º3<M{V<>mtM§¼Ä<C2BC>r4æ<>DAšb8êK”<4B>Þ$r#%ÉÞ<C389>4­Î7Þu®ä<C2AE>°¨fNEkš"½xŠ(Eâ§µ§ÕD³°ˆzrô1OO‰ÏvžÖ÷˜®º¹z«êv Î1 ç¯^Ífµ?g—ˆ³ e+,;ÎrO/ÿ¦ˆ3>ÉâÌ»Šþ¤˜^njû½ër´Ö½?þ ììÔ„FÃýû˜ÎL.œ¿}´³«
xÚ}Ñnƒ †ï}
.»,<2C>`]cRíºxÑ­™í <1E>IEzÑ·l“õb$<24>|ðÿç8øi¶ÏT3ÿd:™Ã@ªF•ún4Hu£<<16>²ÃL¸ÊVhÏO<C38F>BŠˆ8žvû×m¹P½ ·ü†z¼
³¼œ,$%TÎq¾i ÁÌÙ>¿õ´™ª:E!¾µ5ý`nd±+»^¦½/SiTM—4Ç<34>|Ôú
<>P/Ž1s%Ê®„^ ¼ˆÚ“è`Gì<47>*ŸÎ·ÎUTòGTVMéšÅHG!cHœ:Z;ZMÄ1K@™#k@_àhëˆ#ñ9û£õ#¦­n®ƒÝ«º_s ÈùS³Ú<C2B3>O—e+,;LRGS„ ŸdaâŠ]Ñ?)¦—›Úþèº<1C>±ï<C2B1>;;5¡Qðø>ºÓ“ ç/fx³ 
endstream
endobj
53 0 obj
@@ -3708,28 +3699,29 @@ x
endstream
endobj
9 0 obj
<</Type/ObjStm/N 55/First 414/Filter/FlateDecode/Length 2430>>
<</Type/ObjStm/N 55/First 414/Filter/FlateDecode/Length 2428>>
stream
xÚµYksÚÈý¾¿b¾­¹)£y?R©ÔŽcÖIìg<><67>V0(„{1¢@Î&ÿþž†€½«$v•"i¦§gÎt·ˆgœIÁ„gR2¡-SI/˜aÚãb3*0cSŠY§˜2ÌqÉ”e²Ê1g1è™ š)ͼÔLsæ nyæ½gZ°` ƒ.ƒEa óÆ3¡ ÔbZA¥µð%<25>!& ‡ ÈY˜q<CB9C>ó
á$÷ŽyˤX„w w+°H ƒ»f2xΠ⚌ Š   a `ËGÀzƒ ‚ÕÜÂ>90„cZ#.É™¶ð×bÞsÃáÚÁ(r<>!J£ŒT0Å<30>¥eÆi h˜ X, ³Â8ŬâÁ%«=äA
„ñîâÁn€T\št;<3B>v™ÃF]d¿<{\~<7E>åIk:-ʤw{]ÒÛ«ñô˜óyÊ!ȳä$é&¼é,iaY/ywÑ¥ë Ì'OŸèÀ…³Æ„÷<E2809E>çÏ“|P¦Òù¦À¾:©šŠPâMÅÉÑTÙóç?ÅþM<)‹§³›Ù =ïO~ÑHsPܬÝPÖ4<C396>ðÊ ­UÓƒ{n¼øR¾ì•ý2KMÒ)&ż7ër<>ÞŸ]ÿº Ú½<C39A>ä×ôS;&
F¹cE¼ˆO†˜Ÿí}|
´Ûñ‰XµÄ¹”Ä
¹ÅfÎçÅ ——ir~tœ\æ_JxÑå<>êÖ®nÝe,³ÑÇÙ|t á~Yæóir”ò‹—í;<3B>ß}<7D>§AŸ ¨§<C2A8>N:-¨ÄÞôoòEzpT ͼl¨èïÁ ¶š¢¡"R  2.¦ÿ¡³="@{kD5”ÛÑ 0Èi…Çû??à5q<<—Mɦ·“I¶9éCÓp\6ýžY!B“N½PM@¹gZ6ƒ`Ú€j<>nÞÄÑW0±O·òÑ-Í›|¥@årA‰-nÖ/©ŒT ¸:eù¢¸<C2A2>òeDRi ñÏ<Ÿ–”Ñ*ÞMK¼.Rß³êh,(ûUÊWG†Ö. ~‹µ"9Yò:ŽûíâK<;&˜¦$<24>EÓ‡åöwæy¿,æ¯ú—ù{ö÷¸üÄ>Aå|žlÓ†·ƒ|~ðeøy<~¼ùÂþ:<3A>\.¹ù«Ñ¨VcëŽpXŽžÆ)/<2F>.åü×FeèlO[qŸ—<1E>Ë,zþºæÉ»E~v[NÆS¹F©žÄbl+Db´<62>~ÙŸ#W‡Ô[“™Za2RäÊÌÉÔ Óa3gð¨3çR)uæyuS)Riæmª@IÃmæ±P‡Œv7¤ ¢&ÌYÁI[M"¦"ÐÉ”I+i•Z lftj¹¬Ö#sC©ƒ5á£'ôO4Ï\€ë¨0Ërfp7¨T$ÝRT@Ô² ˆL ­¦Zš øzÒÆ¶.0ˆ^pΣ§2UÄ_í2óÖfP |‡6i1"2éãMÙÔýÖTi¨à©è4&£Ó±ðÚ¡£â'*},&<15>lEå«ÒðUó4ê£ËQAhàä2üPE<50>BÙä™Äã£gŠgŠ#x„· ê&>¾K<C2BE>iO;Œä;
Ü3mR<EFBFBD>Šª©õð´BåÏÓ]f2Ö¦òð
ÌAò5¨—…Úr@<40>B¯¡Ôb?,ìJœl<C593>°í µ4Œiä ת»ˆ®R§ŽJ» *cœÕšöZ¡âSWÁcCd<43>Ÿäò2 G ÁbMlhE¤P4qC<71>hVè¯f1<66>!
H§ÚaÓ¥àôÀŒGBA/žØ7xÀ(‰(!Re¨i["¢=ž±£FQû»F€ƒ \<5C>$hƒ0ª)ô@Du¤A9<41>ÚXIHkHÄ(u2O]Žt¸Ð<C2B8>a»hˆº"]b@;*ƒ‹ÒÑx téQIŠZàXÂm)xN{V…Ï—Aj¿Ür­)´`èxë"‰ºà¢'qƒÛªe±ÎÇ¢Å<C2A2>B×€GC‰p¤ ü#0 77^ ó€ÚjëîÚ.jÖ]O§{Dï4ÁêÒâìÅùIçäõ“âº(ÃWãѧ${_e~Ó<>~,bq<19>åüëAkX\ç<>äŒ:§ñttТ”ŒË¯ ™Í&ù ¾ìZP´óñ …€´GWÔ%WÔHomù¤µ<18>&g8•¾ø|ˆ*<2A>ôàÓÌ ¤ëÙIN¾F™ÖçÑÕxˆ*ƒüUµ©::0üPºØ¼£AâÆfIi~<hMG“œAvÒ-˜…Þ¯“¾œ÷§Å"ÆéOò<4F>¿çËȨìŽ&<26>Ç“¬ªê!™—È{â]oÌ?ïÈá
èÓäÅtP ~²1V<31>4ìÃzAµ]T<>ArY¼Ž!ަS=äÁ~j¼¿¼jÿ~±r¤]L†<4C>À û 3ü<33>0CXs/5Â5<>+–ÔüjH+EÔ^Ÿ{ÐÛ ‡Û¢G¨A<C2A8>]½µÙ¡wØ¡ë³ãèä<C3A8>vïjåGÞÏç‡åwüðà‡•?Âïq[ôP+z jîÒãPÈ%AÜ÷c/xwô°b“ Ç>͵ bwämëí«×žÐsëo|žÜäöxžç‡½b2~„LbõŠ)´±Wô£Ì¿aŠwæŽ)(æK¦H½YdHhMtÂöŽ+œVá£$#±º&pu/Ipƒ-f[4Q6~‡6¶>m.ÚoÏÎ<C38F>W-n'ýù#ÐÅoÇ)±8¿Õ¬ëý¾÷³[½Ðm%lʼn:MÉ>Õu "ùA\}‚¼üýøèýé“^ü½£×Ÿ.Îç<C38E>Õ<EFBFBD>¸ußjƒ&ü»¾Up©ïX¢ùº=1zƒ&Qj£… žàS#.ÄG :$|øÊïèO®¹CvQ\ãÂ÷(×[d¹Æ;¸­.ÖÕébïU_4»ÝНOšoNßöŽ¿qç¾vܺ§µŠ*‘ó?Ä-ï' ¤ÁgÖ4šZÎë%—ëÈ”ûøò„Ùêk]<5D>¾ö~ýµ³Û¾„ï`Ìiûô´µÏŸî#pƯû\îâŠþËè8£½Úh¸³{8s(Ä?uº´ »´yÆ;âø­Ž××éx²P:;-Œáõ©ó¦Ýíüùâ<1B>­“ñëÆ×*RÞþu@<40><>”[éF¯kTø®tcH7b¸Á­Þ××é}²P—7j§³1«îêÿWÞK
xÚµYksÚÈý¾¿b¾­¹)£y?R©Ô±ó²¯±×ÙhõƒB¸r6ù÷÷ô0ì]%qªXI3=ý8}ÔÝòzÆ™Lx&%Ú2%™ô‚¦=~Ì`GfŒcJ1ëS†9.™²ÌAV9æ,=sA3¥™—šiμÁE2ï ¼÷L ¬a0Âe`°( !!aÞx&”Zl+¨´¾2Ä„á09 3r^@!œäÞ1o™T‡ð¬aÁàj apÕLÏ™A\B“D”! l9â8o$"B°š[Ø'ç†pLkÄ%9ÓþZì{n˜"\;@.0Di
¦8°´Ì8­ 3‡¥aVا˜UÜ2¸dµ‡¼#H<>0ž½C<8 PJK““N§Ý_äCæ<43>¨óì—gϯ³<iM§E™ôn¯Kzz3žþ•´ù0Ÿ§<KŽ““¤ƒ <20>%-ë%—ç'ô;(óÉÓ':pá¬q<C2AC>á}ãùóä<”©t¾)<29>W'USJ¼©8y#š*{þü§Ø¿é<C2BF>'eñtv3ô¯çýÉo#ZiŠ›µÊš&^¹¡µjzpoÓ<6F>_Ê—½²_æ`) I:Ť˜÷fýAòÒÂûÓëÿADOnàùuýÝbJk]¢`”ë*âE¼3Ä„xç(÷ñ.P¶ã±j)ˆr)‰r)Š#2,ÍœÍA//Óä쨛\ä_JxÑå<>êÒ®.'ËXf£<66>³ùèÂý²ÌçÓä(ÿ<äç/Ûw¿ úwƒ>PO <0B>-tZ´P‰½ëßäôਚyÙPÑ߃l5ECE¤@e\LÿC+f{E6€öÖŠj(·½¢`,
<EFBFBD>÷ ÔÄëá¹lJ6½<36>L²ÍMšF€ã²é÷ì
šôÖ Õ”{¶e3¦ H öèæM¼ú
&öéV>º¥y“¯T¨£|Q.¨°ÅdýÊHª<>«·ì<_·óA¾ ŠHÊ"íÏ$þ3ϧ%U´ŠwÓ<12>TÅç¬z5Tý*å«W†Î. ~‹³"y=.*7³äm>÷ÛÅ—øî˜`š’<M–éïÌó~YÌÞô/ò÷ìïqù‰}‚Êù<ÿØ ¦ oùüàËðóx6üxó…ýy ¹4\róg£Q<C2A3>FêŽð²=Å–åuUp«Ì.åü×FeètO[1ÏK»ã2ž¿-†yr¹ÈOoËÉxŠ@"רԓXŒm…HŒ¶Ó/û“bDàê<C3A0>zk2#S+LfCŠZ™9™T:#læ nuæ\*¥Î<¯.*E)ͼM(i¸Í<ê<>QvCjq jž•ñL<>´Õ$"l*½™2#ie3­RdƒÍŒN-—ÕyTn(u°&|ô„žà‰æ™ pfÙÎ ®<06>Š$¢[Ššè<>¾£B ”ÕTK“¡ÁyÒÆ¶~&`½àœGOeªˆ¿Úeæ­Í @:ømÒbEdÒDz©­©ÓPÃSÑilF§+$bãµBGÍOTþú,Xl* HEå«ÒðUó4꣟£†,"ÐÀÉeø9¸Î3 Š>…¶É3‰ÆGÏÏnô;L||Ûž2Œâ'
\3mR<6D>Žªiôðt ¡öçé*3ƒ lkS yxæ øôKƒFm9 ×Pj »o¶FØrBc-c5ÈÀµê*¢«„ Ô©£ÖîŃÎwµ¦\+t|š*xˆ ê“\þ` ó‚€3q QBSÐÄ A Y ¢¿VØÅ6( <20>j‡¤KÁé†-X0 F=xbPÜà«$¢„H•¡¡m‰ˆö`xJ<DF<44>¢ñ#"#%²F€ƒ
\<5C>$(AØ
Õf ¢ºÒ œÆ%AÒ1
G“ $ÆÓ”#½\˜À<CB9C>.Z¢©HED—PFepQZ#¯<>.Ý*IQ ¼p[
žSΪðù2Hí—)ךB †^c]$ QüBô$n°"-Ý í ŠPç|¼<>A Z¼Phâðh(Ž´<C5BD>&á¦c¢á&¨­Rw7vÑð°žz:'GôL<¡)-î¿ë\vß?9/®²8|3}*I²÷uQæ7'Ó<>El.£ñ¢œ=h 뼜Òä4žŽN†h%ãòkFf³I~C<>†/§4­Á|<C# A—*íÑ<15> ÒÛÍf[>i-¤ÉN­¢A$=øô;såzvœ“¯Q¦õyt5¢Ë ~DUmêN‡ ?”.ï<18>¸±Yr2?´¦£IÎ ;é<>ÌBï×I_ÎúÓb?ãôOò<4F>Ï—Q/Ù mvÇ“¬ªú!™—¨{â]'æŸ3r¸úð8y1C€Ÿl¬U û°^PoÕ`<60>\—Ó1Ä1tª‡<ØO<C398>^çõ»Ç+GÚÅdø̰ß0Ãÿ3„5÷R#lQµbI<62>À ´RDíõù±½ z¸-z„ôØÕ[z‡º>;ÞwO_õ^­ü¨Àûùü°üŽü°òGøáݽô0njEtÍ]z
¹$ˆû>rìïŽVlÒêôا¹6AìAL}\¼yýâÃë'tßúŸ'7¹íÎóü°WLÆ<4C>PI¬^1…{E”ù7LñÎÜ1Í|É©7 ­©IØÞq…Ó)|tƒd$V·Ã®î%ÉÃn°Ål±ÅÕ`˃&jÓÆïÐÆ~G×i÷Z/Öí´¸<C2B4>ôç<C3B4>@¿Ýx¤ÂâüÖH²î;ô÷½Ÿ<ì‡nƒ(a“(NÔé:ûT×%ˆä;qõ òê¿o»<6F>'½ø÷Ž^º8?ÖtâÖs« šHòïæVÁ¥¾c‰æëñÄè šD©<44>6xO<E2809A>x-˜<>ðá+¿c>¹æÕEq<45>¾G¹Þ"Ëý0ÞÆmM±®Î{¯úÚ¤Ù<C2A4>V|}Ò´Û—í«£oÜy¤¯·ži­¢Näü±FËûIÃÅ&ið™µ$<24>¥¡ózÅå:2å>¾<€àa¶æZWg®½_mÆìŽ/¡>cÞ¾è^¶O÷ùsòœñë9׸¢ÿeôHœÑ^í-4ÜÙ=œ9âŸ&ÝMÚ„Ú<ãqüÖÄëëL¼Y¨M<C2A8><4D>ÆðúÔé¾=k½üÊ<E28093>6Éøõàk 5)oˆ: Ç½åFÊ­×=*|W¹1”›1ÜàÍÖìëë̾Y¨Ëµ3Ù˜ÕtõJÀÝÀ
endstream
endobj
88 0 obj
<</Type/XRef/ID[<511cd35f790d474e1502b741a35515c8><511cd35f790d474e1502b741a35515c8>]/Root
1 0 R/Info 2 0 R/Size 89/W[1 3 2]/Filter/FlateDecode/Length 270>>
<</Type/XRef/ID[<5ebbdf1bcb39b10469d72e82f20fd2a2><5ebbdf1bcb39b10469d72e82f20fd2a2>]/Root
1 0 R/Info 2 0 R/Size 89/W[1 3 2]/Filter/FlateDecode/Length 272>>
stream
xÚ5Ñ9/„QÆñóŒaÎ<>±ÌXÆÎŒ±/3$hiJ•B!­Æð5”Ý”*¥DˆVA”
…Ih^÷>9oóË?§9w‰¢„HFºh'ÍÑVš„HNrð-‰Àmî„Éñ¾M†é £#tŽÓ)Z¦3´JAtžÎÒ%º@kt™®Ñ:ôúĶ·Ðí iš¡YÚNÛ¨Ò<uІ¿ÞwGÁûdða7øŸÎÏëÁ—wÛ;}<7D>ÏÐ }_cÔwúúqh=áûʺýù´®@[ÖEèïžõ´ïKë^¸lÑzÎ÷©u\áÜzÑ÷Ÿu?\¹i½W‰Ï6W»°^…«§­Kp_ág·«"ÿ¿P.¼
xÚ5ѽ/ÃQÆñsªE˹EÕ[½”j½¿¶D˜ ˜š˜:˜$â?ð_%6‰Åj±°ÙDÓϽOË'ߜ圛+"E1¤´ÁV˜W´ˆÊö‡&¢ne=Lv·8釽pÀa8G`ŽÃQ¨0§àœ…Ó° çà"¬¨]ìs{l€Í°&a
6Ázh°:µË3ÿ»Ê¯kÁxðv#xïƒKÁÇîíS{ÚcgÔž«ì¼ïSv»ÚÛ»àûœ<C3BB>Uûze—Ô¾WÙj¿ì1ß'ìNu© {Ò÷»K]öˆ=ãû‡Ý­®øÉžWWú¿­G]ù˜½ ®’`çÔ-¿‡Ÿ]+ˆüžÎ.z
endstream
endobj
startxref
935208
935203
%%EOF

View File

@@ -17,7 +17,7 @@
\address{Rittmeisterkoppel 14-C, 22359 Hamburg, Germany}
% \github{}
% \linkedin{}
\photo{../me_m_8x8_4x.jpg}
\photo{me_m_8x8_4x.jpg}
\begin{document}

View File

@@ -1,6 +1,7 @@
# Curriculum-Vitae
This project contains my *curriculum vitae* writen in `TeX`.
This project contains my *curriculum vitae* writen in `TeX` using the class
[`awesome-cv`](https://github.com/posquit0/Awesome-CV).
## Install TeX
@@ -12,5 +13,11 @@ Go to https://tug.org/texlive/ and install the correct TeX for your operating sy
If you are using VS Code, I highly recommend to install [LaTeX Workshop](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop).
## Other CV variants
- [Article](../article/)
- [ModernCV](../moderncv)
- [Pedro-CV](../pedro-cv/)
##
Developed with ♥ by Pedro Pessoa Cabral

6
article/.gitignore vendored
View File

@@ -1,6 +0,0 @@
# Ignore all auto-generated files, except for PDF
*.*
!.gitignore
!*.tex
!*.pdf

File diff suppressed because one or more lines are too long

View File

@@ -1,75 +0,0 @@
\documentclass[11pt,a4paper]{article}
\usepackage[margin=1in]{geometry}
\usepackage{titlesec}
\usepackage{enumitem}
\usepackage{parskip}
\usepackage{hyperref}
\usepackage{fontspec}
\usepackage{graphicx}
\setmainfont{Helvetica Neue}
\titleformat{\section}{\large\bfseries}{}{0em}{}[\titlerule]
\titleformat{\subsection}{\normalsize\bfseries}{}{0em}{}
\pagestyle{empty}
\begin{document}
\begin{center}
\begin{minipage}{0.75\textwidth}
{\LARGE \textbf{Pedro Miguel Pessoa Cabral}}\\
\vspace{0.5em}
+49-(0)-17657-909188\\
\href{mailto:pmpcabral@gmail.com}{pmpcabral@gmail.com}\\
Rittmeisterkoppel 14-C, 22359 Hamburg
\end{minipage}%
\begin{minipage}{0.23\textwidth}
\includegraphics[width=\linewidth]{../me_m_8x8_4x.jpg}
\end{minipage}
\end{center}
\vspace{1em}
\section*{Profile}
\begin{tabular}{rl}
Date and Place of Birth: & January 17\textsuperscript{th}, 1988, Setúbal, Portugal \\
Nationality: & Portuguese \\
Languages: & Portuguese (First language), German (Fluent), English (Fluent),\\
& Spanish (Good), French (Basic)
\end{tabular}
\vspace{1em}
\section*{Experience}
\noindent
\textbf{Software Developer, HR4YOU AG} \hfill Großefehn, Germany \\
\textit{Feb 2017 Present} \\
Technologies: PHP, JavaScript, SQL
\vspace{0.5em}
\noindent
\textbf{Support \& Operations, SAFIRA/KPMG} \hfill Carnaxide, Portugal \\
\textit{Sep 2014 Apr 2016} \\
Worked with IBM Business Process Management and Forefront Identity Manager (FIM)
\vspace{0.5em}
\noindent
\textbf{Software Developer, SAFIRA} \hfill Carnaxide, Portugal \\
\textit{Apr 2013 Sep 2014} \\
Worked with IBM Business Process Management, IBM WebSphere Message Broker, SQL
\vspace{1em}
\section*{Education}
\textbf{Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa} \hfill Caparica, Portugal \\
Bachelor of Science \hfill 2013
\vspace{1em}
\section*{Skills}
PHP, OOP, JavaScript, jQuery, CSS, SQL, SOAP, REST, PL/SQL, XML
\end{document}

View File

@@ -1,7 +0,0 @@
# Ignore all auto-generated files, except for PDF
*.*
!.gitignore
!awesome-cv.cls
!*.tex
!*.pdf

View File

@@ -19,6 +19,9 @@ FILE="$1"
# append .tex file extension, iff not already passed
[[ "$FILE" != *.tex ]] && FILE="${FILE}.tex"
# remove the .tex extension from the file name to get the base name
BASE="${FILE%.tex}"
# Check that the file exists
if [[ ! -f "$FILE" ]]; then
echo -e "${BOLD}${RED}Error${RESET}${RED}: File '$FILE' not found.${RESET}"
@@ -28,8 +31,24 @@ fi
# Detect active \usepackage{fontspec} (ignore commented lines)
if grep -Eq '^[^%]*\\usepackage\{fontspec\}' "$FILE"; then
echo -e "${BLUE}Detected fontspec → Using XeLaTeX${RESET}"
xelatex -synctex=1 -interaction=nonstopmode -file-line-error "$FILE"
LATEX_CMD=(xelatex -synctex=1 -interaction=nonstopmode -file-line-error "$FILE")
else
echo -e "${BLUE}No active fontspec → Using pdfLaTeX${RESET}"
pdflatex -synctex=1 -interaction=nonstopmode -file-line-error "$FILE"
LATEX_CMD=(pdflatex -synctex=1 -interaction=nonstopmode -file-line-error "$FILE")
fi
"${LATEX_CMD[@]}"
rm -f \
"${BASE}.aux" \
"${BASE}.bbl" \
"${BASE}.bcf" \
"${BASE}.blg" \
"${BASE}.fdb_latexmk" \
"${BASE}.fls" \
"${BASE}.log" \
"${BASE}.out" \
"${BASE}.run.xml" \
"${BASE}.synctex.gz" \
"${BASE}.toc" \
"${BASE}.xdv"

View File

@@ -0,0 +1,95 @@
#!/bin/bash
set -euo pipefail
# Color definitions
BOLD='\033[1m'
RED='\033[31m'
BLUE='\033[34m'
GREEN='\033[32m'
YELLOW='\033[33m'
RESET='\033[0m'
if [[ $# -ne 1 ]]; then
echo -e "${BOLD}${RED}Error${RESET}${RED}: No commit hash provided.${RESET}"
echo "Usage: $0 <commit-hash>"
exit 1
fi
COMMIT="$1"
START_BRANCH="$(git branch --show-current)"
if [[ -z "$START_BRANCH" ]]; then
echo -e "${BOLD}${RED}Error${RESET}${RED}: Detached HEAD is not supported.${RESET}"
exit 1
fi
if ! git rev-parse --verify --quiet "${COMMIT}^{commit}" >/dev/null; then
echo -e "${BOLD}${RED}Error${RESET}${RED}: Commit '$COMMIT' not found.${RESET}"
exit 1
fi
COMMIT="$(git rev-parse --short "$COMMIT")"
PARENT_COUNT="$(git rev-list --parents -n 1 "$COMMIT" | wc -w | tr -d ' ')"
if [[ "$PARENT_COUNT" -gt 2 ]]; then
echo -e "${BOLD}${RED}Error${RESET}${RED}: Merge commits are not supported.${RESET}"
exit 1
fi
if [[ -n "$(git status --porcelain)" ]]; then
echo -e "${BOLD}${RED}Error${RESET}${RED}: Working tree is not clean.${RESET}"
echo "Commit, stash, or discard local changes before replicating a commit."
exit 1
fi
restore_branch() {
git switch --quiet "$START_BRANCH"
}
handle_error() {
echo -e "${BOLD}${RED}Error${RESET}${RED}: Replication failed on branch '$(git branch --show-current)'.${RESET}"
if [[ -f "$(git rev-parse --git-path CHERRY_PICK_HEAD 2>/dev/null || true)" ]]; then
git cherry-pick --abort >/dev/null 2>&1 || true
fi
restore_branch
exit 1
}
trap handle_error ERR
echo -e "${BLUE}Replicating commit ${COMMIT} from '${START_BRANCH}' to local branches.${RESET}"
while IFS= read -r BRANCH; do
if [[ "$BRANCH" == "$START_BRANCH" ]]; then
continue
fi
git switch --quiet "$BRANCH"
if git merge-base --is-ancestor "$COMMIT" HEAD; then
echo -e "${YELLOW}Skipping ${BRANCH}: commit is already present.${RESET}"
continue
fi
echo -e "${BLUE}Cherry-picking ${COMMIT} onto ${BRANCH}.${RESET}"
if ! git cherry-pick "$COMMIT"; then
if git diff --quiet && git diff --cached --quiet; then
echo -e "${YELLOW}Skipping ${BRANCH}: commit is already applied as an equivalent patch.${RESET}"
git cherry-pick --skip
continue
fi
false
fi
echo -e "${GREEN}Commit successfully cherry-picked to ${BRANCH}.${RESET}"
git push
echo -e "${GREEN}Branch ${BRANCH} successfully pushed.${RESET}"
done < <(git for-each-ref --format='%(refname:short)' refs/heads)
restore_branch
echo -e "${GREEN}Done. Returned to '${START_BRANCH}'.${RESET}"

7
moderncv/.gitignore vendored
View File

@@ -1,7 +0,0 @@
# Ignore all auto-generated files, except for PDF
*.*
!.gitignore
!*.tex
!*.pdf
!*.cls

View File

@@ -1,79 +0,0 @@
\documentclass[11pt,a4paper,sans]{pedro-moderncv}
\moderncvstyle{classic} % Style options: 'casual', 'classic', 'oldstyle', 'banking'
\moderncvcolor{blue} % Color options: 'blue', 'orange', 'green', 'red', 'purple', 'grey', 'black'
\usepackage[scale=0.75]{geometry}
% Personal data
\name{Pedro Miguel}{Pessoa Cabral}
\title{Curriculum Vitae}
\address{Rittmeisterkoppel 14C}{22359 Hamburg}{Germany}
\phone[mobile]{+49-(0)-17657-909188}
\email{pmpcabral@posteo.de}
\homepage{git.sueo.de/pcabral}
\social[]{} % Optional: GitHub, LinkedIn, etc.
\photo[3.5cm][0pt]{../me_m_8x8_4x.jpg}
\hyphenation{interpersonal}
\linespread{1.05}
\begin{document}
\makecvtitle
\begin{minipage}[t]{0.48\textwidth}
\section{Profile}
\cvitem{Date of Birth}{January 17\textsuperscript{th}, 1988}
\cvitem{Place of Birth}{Setúbal, Portugal}
\cvitem{Nationality}{Portuguese}
\end{minipage}\hfill
\begin{minipage}[t]{0.48\textwidth}
\section{Languages}
\cvitemwithcomment{Portuguese}{First Language}{}
\cvitemwithcomment{German}{Fluent}{}
\cvitemwithcomment{English}{Fluent}{}
\cvitemwithcomment{Spanish}{Good}{}
\cvitemwithcomment{French}{Basic}{}
\end{minipage}\hfill
\section{Experience}
\cventry{Jun 2021 -- Jan 2025}{Software Developer}{For Sale Digital Internet-Agentur GmbH}{Hamburg, Germany}{}{
PHP (\textit{native, Laravel, WordPress}), JavaScript (\textit{Vanilla, jQuery}), MySQL, Google Cloud Platform, TypeScript, React, Jenkins, ShipIt, Docker, Shopify.
}
\cventry{Feb 2017 -- May 2021}{Software Developer}{HR4YOU AG}{Großefehn, Germany}{}{
PHP, JavaScript (\textit{Vanilla, jQuery}), MySQL, CSS, LESS.
}
\cventry{Sep 2014 -- Apr 2016}{Support \& Operations}{SAFIRA/KPMG}{Carnaxide, Portugal}{}{
IBM Business Process Management, Forefront Identity Manager (\textit{FIM}).
}
\cventry{Apr 2013 -- Sep 2014}{Software Developer}{SAFIRA}{Carnaxide, Portugal}{}{
IBM BPM, IBM WebSphere Message Broker, SQL.
}
\section{Education}
\cventry{2013}{Bachelor of Science}{Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa}{Caparica, Portugal}{}{}
\section{Skills}
\cvitem{Languages}{PHP, JavaScript (\textit{Vanilla}), TypeScript, MySQL, CSS, SCSS, HTML}
\cvitem{Frameworks \& Libraries}{Laravel, React, jQuery, Bootstrap}
\cvitem{Content Management Systems}{WordPress, Shopify}
\cvitem{Development Tools}{PHPStorm, Visual Studio Code, Git, Composer, npm, Vite}
\cvitem{DevOps \& Automation Tools}{Jenkins, ShipIt, Docker, Kubernetes, Google Cloud Platform}
\cvitem{Software Development Practices}{Test-Driven Development (TDD), Object-Oriented Programming (OOP), Mobile-First Design}
\cvitem{Soft Skills}{Effective team player, collaborator, and mentor; strong communication and interpersonal skills; experienced moderator}
\section{About me}
I believe there are no stupid questions --- only opportunities to learn, improve, and build better things together.
\bigskip % bigger gap before Personal section
When I'm not coding, you'll usually find me taking care of and entertaining my two lovely kids.
\medskip % slightly smaller gap within Personal block
I also love singing, acting, playing the didgeridoo, and chopping wood. I regularly take cold showers (or ice baths when temperatures drop below zero) in the morning.
\end{document}

View File

@@ -1,32 +0,0 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{pedro-moderncv}[2026/02/24 Custom moderncv wrapper]
\LoadClassWithOptions{moderncv}
\RequirePackage{tikz}
\RequirePackage{etoolbox}
\AtBeginDocument{%
\makeatletter
% Safe scaled length
\newlength{\@photowidthscaled}
\patchcmd{\makecvhead}
{\includegraphics[width=\@photowidth]{\@photo}}
{%
% Copy original width
\setlength{\@photowidthscaled}{\@photowidth}
% Scale safely (no calc/dimexpr/TikZ parser issues)
\setlength{\@photowidthscaled}{1.2\@photowidthscaled}
\begin{tikzpicture}
\clip (0, 0) circle (\@photowidth/2);
\node at (-0.2cm, -0.3cm) {
\includegraphics[width=\@photowidthscaled]{\@photo}
};
\end{tikzpicture}
}
{}{}
\makeatother
}