We talked to Leonardo Andrés Garcia Crespo, a Frontend Engineer at Twitter, who works on the web team and previously – TweetDeck
In this interview with React Advanced, Lenny Garcia Crespo, a software engineer at Twitter, shares his passion for React and explains what makes the framework and the community behind it so successful. Lenny also speaks about the work he did for Match.com and what he is currently working on at Twitter, how Twitter is different from any other place he previously worked at, and why this social media (as opposed to Facebook) became so popular among web developers. Lenny gives a talk at React Advanced in London, Oct 25.
Hi! I’m Lenny, and I’m a software engineer at Twitter, currently living in London, UK, originally from Buenos Aires, Argentina.
I started programming with Visual Basic but shortly after that, I jumped into .NET, where I started doing web development.
After a couple of years working with Backbone, I got to know React. I didn’t immediately fall in love with it, I actually ditched it the first time I saw it as “yet another new framework”, but after reading David Nolen’s blog post about The Future Of MVCs, I gave it a second look and it was then when I never looked back.
I also did some Angular work during that time, which gave me some perspective on how React was a better choice for me and the kinds of problems it solved.
Can you, please briefly describe your previous work experience culminating in your current position at Twitter?
As mentioned, I started doing some Visual Basic, but then moved to .NET working on web apps using ASP.NET Web Forms and then, ASP.NET MVC, which was an architecture more similar to what Ruby on Rails gives you.
After working on some big projects with .NET, I wanted to move to Ruby as I really liked the community and the innovation that was happening (all the great ideas I was seeing in .NET where basically ports of ideas from Ruby). I did that and while I was working with Rails in several projects I started poking into some advanced UI manipulation with Backbone. I worked on a project for a real-time dashboard with lots of interactions and we did it as a single page app using Backbone, and it was a great decision looking back considering alternatives at the time.
Then I worked on some other projects, also for interactive dashboards with charts, but this time with Angular, which again felt like progress compared to Backbone, as it gave much more structure. At the same time, I was looking at React for side projects, and I actually started using it for a job shortly after.
Before joining Twitter I worked at a very big project at Match.com, working on the redesign of the app which was being built as a single page app with React, Flux, and later on GraphQL.
Finally, when I joined Twitter I started working at TweetDeck until recently. TweetDeck is an incredible web app that allows you to see Twitter as a power user, viewing multiple timelines at the same time, all updated in real-time, and also advanced functionality such as filtering and scheduling tweets. Not so long ago, I joined the Twitter.com team, still from London, doing platform type of work.
I am currently working on the web team, which owns twitter.com and mobile.twitter.com mainly. I recently joined the team to work on foundation and platform type of things. Previously I was working on the TweetDeck team, also as a web developer, which is part of what I’ll be speaking about in my talk.
When it comes to social media, I have only worked on Match.com previously, but I’m not sure I can compare experiences since the situation and type of company are way different than Twitter. I don’t know much about working at other social companies, so not really sure of the differences in that case. What I have seen different from my previous experiences is the amount of cross-team collaboration that happens inside the company, the amount of experimentation that is done, which I have never seen as much before, and how everything is driven by data. Also, the fact that you are able to make an impact on millions of people with your code, is really cool.
Why do you think Twitter (as opposed to Facebook) has become a preferred social medium for web developers?
I think Twitter was chosen as the medium for web developers because everything happens in public, and our industry is really good at sharing in general (code, learnings, thoughts, skills). As a Twitter user, I mainly use it to get up to date on what’s going on in the industry, and what I really liked about Twitter when I started using it is how easy it is to start following people and get your timeline full of interesting information based on what you like. It’s a never-ending stream of unrelated but related pieces of information, collection of blog posts, thoughts shared, conversations, about the particular things that interest you. It is also a way to broaden your perspective on some other things, that may not be exactly your interests, but are important and related, mainly as a person working with other people. In my experience, it helped me get better at what I really like doing, but also be aware and get better at things I didn’t know I should get better at.
I really like working with React and GraphQL, with a client such as Relay or Apollo, as I think it removes a lot of problems from product developers so they can focus on the creative part of building a product, and less on repetitive (but important) tasks such as data fetching, while doing the right thing in those cases.
I like React because it has the right tradeoff (for me) between flexibility and performance. It allows me to develop user interfaces really fast, and in a way that allows me to mix and match as much custom logic as I need in-between without resorting to advanced features or workarounds from a framework. The API surface is small compared to others.
Also, I really like how the React core team and community is thinking of the next problems to solve and pushing the boundaries of the web in order to make the experience feel more native-like.
What’s the most controversial thing in React, in your opinion? Do you think React as a technology is deemed to supersede Vue and Angular?
There have been some discussions recently about how React prefers an immutable type of architecture, where you don’t modify things directly, but create copies with the modifications and pass those new values around. This doesn’t sound controversial on its own, but because of this decision and what it enables for UIs, some solutions to problems may have been a bit controversial to people, like hooks being inside the function body and being called all the time, making side effects seemingly conflated with the purity of rendering.
Actually, I think maybe the syntax is something that is always controversial in React. JSX was controversial in the beginning (maybe still is?), and hooks now (this is the conceptual syntax).
I think in some way React is already part of Vue, Angular, and others, so even if it doesn’t supersede them, in some way it will, as the ideas from React are alive in all other libraries.
Having said that, because of how the core team and community are thinking into the future, beyond what the web can currently do, I think React is here to stay for at least a long-long time.
What’s your involvement in open source? Which projects have you contributed to? Which projects are your favorite? Which of them are you most proud of?
I do some open-source sporadically, haven’t done much recently. I have some small projects like React Sound, and a loader for graphql persisted documents. I’ve contributed to Apollo by improving the Typescript support and participated when introducing the Query, Subscription, and Mutation components (now hooks exist for those). I really like poking at what’s happening in React, Relay, and Apollo, and I closely look at the newsletters such as This Week in React, by Philipp Spiess.
Be curious, willing to make things better, be team players, and nice to others.
Do you have any hobbies? You mentioned on Twitter that you loved making bad jokes, can you tell us one?
I have a daughter so I really like playing with her when I’m home. I love playing and listening to music, I play the bass guitar (and guitar, kinda), and I love dad jokes and puns, like this one: “Where does a component order pizza from? DOM node’s”
Are you excited about the upcoming conference in London? What are you going to talk about and what are your expectations from the event?
I am very excited! Looking forward to meeting people, talking about tech and non-tech things, and learning from people doing really advanced and maybe even crazy things with React.
In my talk, I am going to talk about some of the techniques we used for effectively migrating parts of the TweetDeck codebase to React, so that people in the same situation can learn from this and maybe even apply them to modernize their stack and get the benefits of using React.