Nice to meet you, my name is Tiago!
I'm a Software Engineer with 13 years of experience in full-stack software development, software architecture, web performance, leadership and agile methodologies. Throughout my career, I've acted as an evangelist for good practices, code quality, unit tests and positive collaboration, through servant leadership. I've mentored individuals and trained entire teams with diverse skill sets in front-end, back-end, leadership, and agile practices.
My published body of work includes more than a dozen articles in renowned websites and magazines such as InfoQ, DZone, FreeCodeCamp Medium, Dev.to, AirPair and Java Magazine. I've spoken at several major conferences internationally, such as ForwardJS, FEDC, Abstractions, DevCon5, and HTML5DevConf, as well as in meetups and corporate training in San Francisco and New York.
Last but not least, I'm a keen member of the developer community, both authoring and contributing to existing open-source software, and volunteering with non-profits for under-represented groups.
Here are my highlights
- Strong expertise in JavaScript, CSS, Node.js, React, Redux, Marionette.js, Backbone.js, Jasmine, Jest, Python, Flask, Java, Spring, JUnit, Git, SQL, Unit Tests, Functional Programming, Web Performance, Design Patterns, Responsive Design, System Design.
- Architected, orchestrated and spearheaded the implementation of several pages and features for top U.S. e-commerce sites. I led teams and redesigned architectures, tech stacks and user experiences, targeting productivity, performance, responsive design, design patterns, unit tests, SEO and accessibility.
- Empowered companies to achieve excellent results in terms of increased revenue, reduction in page load time and speed index, improved user engagement and boosted SEO ranking. I enhanced team productivity by adopting modern technologies, teaching innovative techniques and coaching.
- Started Avenue Code's branch in Brazil as its first employee, assuming the roles of Software Engineer, Tech Lead and Tech Manager. In the first 4 years, I led the growth to 120 employees in 3 offices.
- Awarded First Prize on AirPair's 2015 Developer Writing Competition.
- Awarded First Place among the Computer Science students at UNIFEI (equivalent to summa cum laude).
- Organized the Backbone.js Hackers meetup in San Francisco from 2014 to 2016, having 1000 members at the time.
These are my featured works
Talks
- Lazy Loading JS modules in the browser is about loading JS modules both synchronously (during page load) and asynchronously (performing lazy-loading) using System.js over Babel, as well as using Webpack to bundle your app and resolve dependencies.
Presented at:- ForwardJS (2017) in San Francisco, CA
- Mobile+Web Devcon (2017) in San Francisco, CA
- Abstractions (2016) in Pittsburgh, PA
- DevCon5 (2016) in New York, NY
- Front-End Design Conference (2016) in St. Petersburg, FL
- SF Web Performance Meetup (2016) in San Francisco, CA
- Women Who Code Meetup (2016) in San Francisco, CA
- Design Patterns for JavaScript featuring Modules is about some essential design patterns for JavaScript applications such as Constructor, Façade and Module, focusing on the different module strategies as CommonJS, AMD and ES2015 Modules.
Presented at:- Women Who Code Meetup (2016) in San Francisco, CA
- DevCon5 (2015) in New York, NY
- 10 tips for writing maintainable code in Backbone.js and Backbone.js tricks or treats are about some pitfalls, solutions and good practices in Backbone.js, covering Marionette.js, React, Epoxy.js and Sinon.JS and how do they solve problems with performance, memory, productivity and code organization.
Presented at:- Dancing with Marionette.js meetup (2015) in New York, NY
- HTMLDevConf (2014) in San Francisco, CA
Articles
- Pragmatic rules of web accessibility that will stick to your mind is a refresher on web accessibility (ADA, WCAG, WAI-ARIA, impairment types and exclusions) and 3 practical rules that will stick to your mind and give you guidance on implementing a11y in your project. Published on FreeCodeCamp Medium.
- A brief review of Scoping and Hoisting in JavaScript is about how Scoping and Hoisting effect the way code we write will deal with our declarations (such as var, let, const and function) with a few examples. Published on FreeCodeCamp Medium.
- Lazy Loading ES2015 Modules in the Browser is about how to load ES2015 modules synchronously (during the page load) and asynchronously (performing lazy-loading) using System.js. Published on DZone.
- Mastering ES6 higher order functions for Arrays is aboutthe native Higher-order functions for Arrays in JavaScript, and how to develop your own higher-order function for Arrays. Published on AirPair.
- Catching up with JavaScript higher-order functions is about the Higher-order functions in JavaScript. Published on AirPair.
- Leveling up - Simple steps to optimize the Critical Rendering Path is about the Critical Rendering Path and how to optimize it. Published on AirPair.
- The mind-boggling universe of JavaScript Module strategies is about JavaScript Module strategies and how to work with them. Published on AirPair.
- Revisiting XP - be a thoughtful programmer by exercising more collective ownership is about effectively exercising collective ownership to avoid confrontation and technical debt. Published on InfoQ.
Projects
- Authored marionette-vdom, a Virtual DOM implementation for Marionette.js, with 30k downloads on NPM as of 03/2019.
- Authored jasmine-precondition and karma-jasmine-precondition, a Jasmine helper for asynchronous preconditions and its karma adapter, with 64k downloads combined on NPM as of 03/2019.
Know my interests
- Passionate about clean coding.
- Fond of spreading good practices and mentoring people.
- Fan of functional programming.
- Strong believer in Servant leadership.
- Driven by empathy, kindness and creativity.
- Ethical vegan.
- Capoeirista.
- Sober.
- Frequent platelets donor.
- Mindfulness practitioner.
- Married to Cintia Romero and dog daddy.
- Guitar, ukulele, berimbau and hand percussion player.
Get in touch
Hit me up! I would love to hear out from you.