In this installment of the Cosmic JS Developer Spotlight Series, we sat down with Jason Lengstorf, a developer, architect, keynote speaker and occasional designer residing in Portland, Oregon. Having worked previously at IBM and Precision Nutrition, Jason now serves as Head of Developer Relations at Gatsby. Check out the video of the pair programming session he did demonstrating how to use Cosmic JS to power your Gatsby websites. Follow Jason on Twitter, GitHub and his blog and enjoy the Q/A.
Cosmic JS: When did you first begin building software?
Jason: As a teenager, I was in a band, and we needed things like concert posters, merch designs, and a custom MySpace page. I wrote my first few lines of CSS around then, and slowly started doing more and more: I built our first website, learned Flash so I could embed our music, learned PHP and built a crappy CMS so the rest of the band could post updates to the site, and just kept going deeper and deeper down that rabbit hole. Eventually it became obvious that I wasn't rockstar material, so I stopped pretending to be a musician and focused exclusively on design/code.
What is your preferred development stack?
Right now, I work mostly with React, GraphQL, and Node.js.
What past projects are you most proud of and why?
The first two that come to mind are GrAMPS and the Gatsby swag store.
GrAMPS is a way to allow multiple independent teams to publish GraphQL schemas as npm packages that are then aggregated and stitched together. IBM Cloud, which I was working on when my team and I built it, uses a microservice architecture, which means that a different team owns each piece of the data. This meant that the API surface was hard to understand, largely undocumented, and extremely difficult to keep track of. By introducing GraphQL with GrAMPS, these teams got to keep control of their data sources, but gave us the ability to expose all of the data through a centralized GraphQL endpoint. This was a huge win for everyone inside the company, and it led to much better communication and standardization within the team.
The Gatsby swag store is a Gatsby site where we sell our swag, but it's also a way for us to give back to the community. Anyone who contributes to Gatsby — whether that's through code, giving a talk, writing an article, or something else — can log in with their GitHub account and get a discount code for free swag. This is our way of saying "thank you" to the community for all the hard work they put in. It's only a small part of what we try to do for the Gatsby community, but for me, it's a really fun way to give back and joke around.
What are your biggest challenges in building the community at Gatsby?
I'm very fortunate at Gatsby, because the community is incredible. I often make the joke that working in developer relations really just means retweeting all the nice things people already say about us.
The most challenging part has been making sure we don't miss things. People have questions, and when they reach out to us and we lose the message, that sucks. Gatsby is a community-powered company, so we work extremely hard to make sure the community stays at the center of everything we do: how does Gatsby make people's lives easier? how do we make sure every decision we make is creating a better experience for the community? how do we ensure that our community is a safe and supportive place for everyone, regardless of experience level or background?
How do things change moving from a legacy company like IBM to a bleeding-edge startup like Gatsby?
Both have their perks and problems. For example, at IBM I felt like I spent months asking permission to do a few weeks' worth of work, which was super frustrating. However, IBM can solve any problem because they have so many incredibly talented people working there, and their resources are... significant.
At Gatsby, we can quickly move toward new ideas with minimal bureaucracy, but we also hit resource limits: I can't necessarily hire all the people I'd like to for my team, or sponsor every event I'd like to, or spin up an exploratory team to tackle an interesting-but-unproven problem.
In general, the biggest difference for me has been the amount of chaos available to me. I'm the kind of person who loves to be buried in hard problems with fuzzy definitions. I like trying to make sense out of the mess, and identify pathways through tricky problem spaces. At IBM, there are occasional challenges like this — the GraphQL/GrAMPS project was one of them — but mostly things are relatively well established, so the level of chaos is fairly low. At Gatsby, it often feels like everything we do is being done for the first time, so there's no shortage of chaos. My personality type tends to thrive in the Gatsby environment, I've found.
What are some technologies you are excited about or want to learn more about?
The Cosmic JS Spotlight Series is dedicated to showcasing developers that are building apps using modern tools. Learn how to Contribute here. To stay connected with us follow us on Twitter and join the conversation on Slack.