My name is Marcelo and I'm a Software Developer!
I quit Google to follow my entrepreneurship dreams.
I really enjoy programming and am constantly — almost every day — learning more about it and practicing.
I believe that thinking even a little bit about what we are going to code before actually coding it usually allows us to produce better results, faster. In other words, doing some software design — but not in a BDUF1 kind of way — can help us a lot.
I also believe that maintainability is one of the (if not the) most important features of a codebase. Code architecture and readability play fundamental parts.
Now I'll list some coding stuff that I like and find interesting or useful, including projects that I created.
If you want to know more about me or get in touch, keep reading below. I also added some typical GitHub readme stats there 😆️.
-
Astro: it is a full-stack web framework that defaults to generating VERY fast static sites, with great Lighthoust/Speedtest results. I created my website using it (the site repo pinned below).
Good performance means better user experinece, and it should always be one of our focuses.
-
Tailwind CSS: a great alternative to writing pure CSS. It is easy to learn, use, has great developer experience, and help us produce beautiful websites, quickly.
-
Daisy UI: Tailwind plugin with beautiful styles for frequently used components (button, tooltip, etc).
-
clsx: great helper for writing conditional CSS/Tailwind classes.
-
Deno: JavaScript and TypeScript runtime with very interesting features, e.g. a fine-grained permission system, npm support, no
node_modules
, etc. Can be used as a replacement for Node in many cases. Pair well with Deno Deploy. -
Clojure: amazing language for people that are not allergic to parethesis hahaha.
-
Babashka: an alternative Clojure installation/runtime for running Clojure code without the JVM startup penalty.
-
nbb: Babashka for Node. An alternative ClojureScript installation/runtime for running ClojureScript code without a compilation step.
- Google Closure Keyboard Shortcut Handler example: an example of how to create a simple Keyboard handler. Works in JavaScript too, even though the example is in ClojureScript.
- ClojureScript nbb example script: an example nbb script from the creator or nbb. (The link is to my fork of it.)
(Disclaimer: I haven't used all references mentioned here. In each section I mention which ones I actually used.)
-
Cracking the coding interview: great book that helped me pass Google interviews. It was the 4th edition back then, I think, and I completed most of it, especially the exercises.
-
This list is meant to be both a quick guide and reference for further research into these topics. It's basically a summary of that comp sci course you never took or forgot about, so there's no way it can cover everything in depth.
-
Curated coding interview preparation materials for busy software engineers.
- I completed my Computer Engineering undergrad at ITA (Instituto Tecnológico de Aeronáutica), one of Brazil's 🇧🇷 most renowned engineering schools. It was from 2010 to 2015, with one year exchange program in...
- The Netherlands 🇳🇱, attending to TU/e (Eindhoven University of Technology) and UT (University of Twente).
- I worked at Google as an intern for 6 months in 20152 and as a full time developer from 2016 to 20203.
- I worked at startups after 20204, until deciding to create my own company.
- I have 15+ years of coding experience! My first line of code was in C, in 2010.
You can check a few of my projects below, some stuff I learned and am learning in this essay (in English) or in my blog (in Brazilian Portuguese).
My social pages are linked in the profile, if you want to get in touch.
Cheers!
Marcelo.
Currently, Jul 18, 2024, my pinned repos show some of my projects. Not everything fits, as GitHub only allows 6 pinned repos, so I try to list more at my website or CV.
FYI: I'm ignoring some languages. Click here to see why.
- They are not languages (e.g. HTML, CSS, Dockerfile).
- I haven't used them meaningfully in a long time (e.g. Python, Java, C, C++).
- I use them mostly as "glue" and not to write actual programs (e.g. Shell, PowerShell, Vimscript).
Footnotes
-
Big Design Up Front is a software development methodology in which the software design is fully completed before any coding happens. It is not applicable in many (most?) software development contexts, particularly apps and websites. Relates to the Waterfall model. ↩
-
I worked mostly with iOS apps, writing a lot of Objective-C. Also wrote some Python and used Bazel. ↩
-
Wrote mainly C++, but also Python, Java, JavaScript and some Shell. ↩
-
Worked mostly with JavaScript/TypeScript, React and Node. ↩