Who is Khalil Stemmler ?
Let's meet Khalil Stemmler. He's Canadian software developer and is actually working at Apollo as a Developer Advocate.
I went to both college and university for Computing and Networking Telecommunications. It was a 5-year collaborative program between Brock University and Sheridan College. I studied a lot of computer networking, core internet routing protocols in addition to the basic university computer science stuff you would expect like math, architecture, and object-oriented programming.
And he is also writing a blog on khalilstemmler.com to help people to make testable, flexible, and maintainable code.
What is he doing at Apollo?
The main part of his job is to communicate with other devs about Apollo.
I'm a Developer Advocate. As part of the Developer Experience team, my goal is to inspire, educate, and interact with the developer community at scale. Sometimes that means creating content like blog posts, streams, and videos. Sometimes it means interacting with the community, learning how developers are using Apollo, where they're getting stuck, and taking that information to inform the product and open-source teams to help them make decisions that empower developers.
What is Apollo ?
It is a Graphql implementation. It allows you to connect pretty much of all your data to make it available on any platform in one data graph. Providing both server side and client side implementation, Apollo is one of the most complete and the most used Graphql tool.
But what is GraphQL ?
Graphql is a query language for APIs created by Facebook. It makes queries easy to understand and allows you to ask only for the data you need.
GraphQL is a declarative data-fetching technology. It's a new way to ask for data from a backend, and perform operations. In GraphQL, we create a schema that describes the shape of all our data, then the client-side can ask for data using either queries or mutations. It simplifies the experience for front-end developers who need to use remote data. Traditionally, we used REST APIs to GET, POST, DELETE, UPDATE (and so on) against resources on a backend. GraphQL is a more flexible and elegant solution.
It's used by : Facebook, Github, Pinterest, Shopify and many more...
Let's know a little bit more about Khalil and what he likes
Khalil, what are your favorite libraries and frameworks so far ?
Gatsby is amazing. I found Gatsby a few years ago searching "site like wordpress but with JavaScript" on Google. Their SEO led me to 'em. It's a great piece of software.
Another one is React. It's remarkable how simple they've been able to keep their API over the years.
What are the projects you’re the most proud of or you loved the most ?
I spend a lot of time writing content for my personal blog and I'm probably the most proudest of that at the moment. My blog was what initially put me out there into the universe. Peggy Rayzis, head of Developer Experience at Apollo, found my blog and invited me to join the team.
I'm also really excited about finishing solidbook.io, a handbook I'm writing that acts as an introduction to software design and architecture using Node.js and TypeScript. It's the book I wish I had when I was first starting out at my first real-world programming job.
Any idea of a nice project to learn nodejs ?
To learn a new programming language, I always suggest building something that you're passionate about so that you won't stop when you get stuck. I'm a huge music nerd so my first Node.js apps were media players and step-sequencer clones.
The idea to use something you love to learn something else is probably the best way to stay motivated in the learning process. Few years ago I wanted to learn how to build a software with javascript and I really love music as well so I built a music player with electron. Download links are down and I never tested it again : welisten
What do you think the future of the web will be ?
I'm betting on JAMstack, serverless, and GraphQL. We're never going to get rid of things like SQL; we live in a largely relational world.
Most of the articles on this blog are about serverless and JAMstack technologies, so check them out here !
I would like to have your thoughts about MMI (the university course my fellow students and I are in).
If you don't know what MMI is I suggest you to read the about page, there's a brief explanation of what we do
When I was going to school, they didn't teach us libraries or frameworks either. The only language we used in school was Java; I learned JavaScript on my own time. I think school is great to provide you with a curriculum to learn the basics and to expose you to the true breadth of things there are to learn, but there will definitely be gaps in your knowledge.
Treat school as a way to figure out what you like and what you don't like.
In my opinion, the most important skills you can extract from school are to learn how to learn and how to not give up when faced with hard problems.
I still consider myself a student and have a stack of books sitting on my desk that I'm trying to find time to get to. I think that your most pivotal experiences are going to happen outside of school, so take in as much as you can, but also - prepare to take learning into your own hands as well.
Thank you Khalil Stemmler for having answered these questions