Sponsors

Panel

Dave Kimura

Nate Hopkins

Charles Max Wood

Special Guest - Radoslav Stankov

In this episode, the panelists of Ruby Rogues speak with Radoslav Stankov about GraphQL and its implementation in depth. Radoslav is based out of Sofia, Bulgaria and is the head of the engineering team at Product Hunt. He is a full stack developer since 2002, working on JavaScript, Ruby on Rails, Elixir and GraphQL.

Show Notes:

0:00 – Charles introduces the panel and the special guest.

0:30 – Advertisement: Sentry - Use the code “devchat” to get two months free on Sentry’s small plan.

1:40 - Radoslav introduces himself and gives a short description about what he is working on.

2:20 - Charles asks him about the stack at Product Hunt and details about the company. Radoslav gives a brief historical background while explaining that they moved to GraphQL two years ago. He states that his team consists of about six full stack developers. He explains that GraphQL is their main API currently for communicating with the Rail backend and a React client in the front. He also mentions that they released a new iOS app recently.

5:12 - Charles asks if increasing number of websites are moving toward the mentioned model where Rails provides the backend API and rendering happens in the front. Radoslav agrees while saying Rails is faster but if the complexity increases, it starts becoming increasingly complex. He gives an example of views to explain his point. He interprets GraphQL as an update on REST API which is much cleaner and easier to work with.

7:08 - Dave agrees that GraphQL is interesting and compares it to SOAP interface while explaining the comparison in detail. He asks Radoslav the reason why GraphQL is used internally without a client facing API. Radoslav answers that he prefers GraphQL to be private and explains with an example using it internally is very flexible, hassle free and can be used for anything that the user wants to do in a simple manner.

11:30 - Dave asks does GraphQL handles versioning as the application matures. Radoslav elaborates on it by saying that versioning is similar to REST API and with GraphQL, the scheme is statically typed and it’s easy to identify information such as which field was requested frequently by the customer and which needs to be deprecated.

14:08 - Dave asks if GraphQL has a documentation API like Swagger. Radoslav talks about a tool called “graphical” which is an IDE for graphical queries that generates automatic documentation.

15:31 - Nate asks about the origin of the metric tracking in GraphQL. Radoslav says that it comes from certain tools, that all the libraries such JavaScript, Ruby, Elixir have instrumentation hooks and information is obtained by plugging into them.

16:22 - Nate then says that this is basically like hoisting SQL database to frontend layer and then goes on to ask how the database queries are optimized. Radoslav explains in detail that the optimization is done similar as normal Rails and explains the process of batching. He mentions that he has written two blog posts on the same topic - optimization for N+1 queries.

19:27 - Dave shares that GraphQL has a good feature where you can restrict the query based on what the user wants. Radoslav talks about the method of caching for optimization.

21:30 - Charles asks if building resolvers has gotten better than before. Radoslav answers in affirmative and talks about the usage of classes, methods and mutations that makes the procedure simple. He explains that one of his libraries has a GraphQL plugin where you have to define search queries and it exports those to GraphQL types and arguments that can be plugged into GraphQL schema.

24:20 - Nate asks about the implementation of GraphQL components. Radoslav says that it is separated into a single namespace, exposed to a controller, the GraphQL types are matched to REST serializers. The frontend has React component and the backend contains the controller, utility classes and the GraphQL logic. He then goes on to explain the structure in depth.

26:47 - Nate asks if this strategy has been blogged about to which Radoslav answers that he hasn’t but has given talks on it.

27:15 - Nate asks about the downsides of GraphQL. Radoslav shares his worries about making the API public as it should be made more bullet-proof as it could have performance issues on such a large scale and would involve much better monitoring. He says that authorization for resources would also be a problem.

29:17 - Nate mentions that in the end it is a tradeoff as it is with any software and asks at what point does it start to make sense to use GraphQL. Radoslav answers that it depends on the roadmap, the kind of the product is and gives some examples to elaborate further.

31:35 - Nate says that early planning could be needed for growing the team in a particular way. He also talks about the disadvantage of growing trends that break down solutions into smaller parts that it takes away the ability of small teams to build entire solutions. Radoslav says that while it is true, the developers in his team are full stack and capable of working with all kinds of tasks be it frontend or backend that come their way.

35:45 - Nate asks about the team’s hiring practices. Radoslav describes that they started with senior developers and later on hired interns and juniors as well. He states that interns and juniors ask better questions and work well with component driven design.

39:18 - Nate asks why Ruby is considered to be a good choice for GraphQL. Radoslav answers that the Ruby implementation of GraphQL is one of the best, used by big companies like Shopify, GitHub, Airbnb. It solves code scaling issues and integrates well with Rails.

42:45 - Dave says that it will be interesting to see what Facebook will come up next in the frontend framework. Radoslav agrees and says Facebook infrastructure team makes good tradeoffs and gives the example that each time there is React update, the team updates the whole codebase to the newest React version.

45:56 – Dave and Radoslav talk about the React team’s versioning being unusual.

For every 5 episodes tagged (particularly Ruby, JavaScript, testing, new programmers, etc), one hour of coaching will be given. You can open an issue on GitHub for each episode you’re tagging so it does not get mixed up with other listeners.

Sponsors Sentry– use the code “devchat” for 2 months free on Sentry small plan CacheFly Host: Charles Max Wood Guest: Maciej Mensfeld Summary Maciej Mensfeld, a polish developer, shares his story with Charles Max Wood. Maciej starts with how he got into computers through gaming and explains how his interest depends later in school. Maciej discu ...…

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan .TECH– tech/MRS and use the coupon code “TECH” and get a 1 year .TECH Domain at $9.99 and 5 Year Domain at $49.99. Hurry! CacheFly Host: Charles Max Wood Guest: Igor Morozov Summary Igor Morozov shares what the ruby community looks like in Moscow, Russia and what Russ ...…

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan .TECH– tech/MRS and use the coupon code “MRS.TECH” and get a 1 year .TECH Domain at $9.99 and 5 Year Domain at $49.99. Hurry! CacheFly Host: Charles Max Wood Special Guest: Tung Nguyen Episode Summary In this episode of My Ruby Story, Charles hosts Tung Nguyen, Presid ...…

Sponsors Sentry use code “devchat” for 2 months free Triplebyte $1000 signing bonus Redisgreen Cachefly Panel Andrew Mason Nate Hopkins Eric Berry David Kumira Joined by Special Guest: Kurtis Rainbolt-Greene Episode Summary Kurtis has been working with Ruby and open source for 12 years. These days he works on maintaining large libraries like VC ...…

Sponsors Triplebyte $1000 signing bonus Sentry use the code “devchat” for $100 credit RedisGreen Panel David Kumira Eric Berry Andrew Mason Joined by special guest: Xavier Noria Episode Summary This episode of Ruby Rogues features Xavier Noria, who has a background in mathematics, but started software in 2000. He has been freelancing for the pa ...…

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan .TECH– tech/MRS and use the coupon code “MRS.TECH” and get a 1 year .TECH Domain at $9.99 and 5 Year Domain at $49.99. Hurry! CacheFly Host: Charles Max Wood Special Guest: Justin Searls Episode Summary In this episode of My Ruby Story, Charles hosts Justin Searls, co ...…

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Triplebyte offers a $1000 signing bonus RedisGreen Cachefly Panel Charles Max Wood Nate Hopkins David Richards Dave Kimura Summary Charles Max Wood puts the question to the panel, how hard is it to learn ruby on rails? This leads them on an discussion of the evolution ...…

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan .TECH– tech/MRS and use the coupon code “MRS.TECH” and get a 1 year .TECH Domain at $9.99 and 5 Year Domain at $49.99. Hurry! CacheFly Host: Charles Max Wood Special Guest: Stefan Wintermeyer Episode Summary In this episode of My Ruby Story, Charles hosts Stefan Winte ...…

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Triplebyte offers a $1000 signing bonus CacheFly Host: Charles Max Wood Guest: Genadi Samokovarov Episode Summary In this episode of My Ruby Story, Charles chats with Genadi Samokovarov, a software developer who loves using Ruby. Genadi has also been a guest on the po ...…

Sponsors Sentry use code “devchat” for 2 months free on Sentry small plan TripleByte offers a $1000 signing bonus Panel Dave Kimura Eric Berry Charles Wood Joined by special guest: Jesus Castello Episode Summary In this episode, Jesus Castello, a ruby developer who has been programming since he was 10 years old. He has been a Ruby Developer for ...…

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan CacheFly Host: Charles Max Wood Special Guest: Vladimir Dementyev Episode Summary In this episode of My Ruby Story, Charles hosts Vladimir Dementyev, a backend engineer at Evil Martians and a mathematician who found his happiness in programming Ruby and Erlang. He is ...…

Sponsors Sentry- use the code “devchat” for $100 credit Triplebyte CacheFly Episode Summary In this 400th episode of Ruby Rogues, the panelists - Dave Kimura, Andrew Mason, Eric Berry, Charles Max Wood talk about themselves, their backgrounds, things they are working with, their journey and perspectives on life in general. Eric has been a devel ...…

Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan CacheFly Host: Charles Max Wood Special Guest: Radoslav Stankov Episode Summary In this episode of My Ruby Story, Charles hosts Radoslav Stankov, the head of the engineering team at Product Hunt. Listen to Radoslav on the podcast Ruby Rogues on this episode. Radoslav ...…

Sponsors Sentry use the code "devchat" for $100 credit TripleByte Panel Dave Kimura Nate Hopkins Charles Max Wood Special Guest - Radoslav Stankov In this episode, the panelists of Ruby Rogues speak with Radoslav Stankov about GraphQL and its implementation in depth. Radoslav is based out of Sofia, Bulgaria and is the head of the engineering te ...…

Sponsors Sentry use the code "devchat" for $100 credit TripleByte CacheFly Panel Dave Kimura Charles Max Wood Special Guest: Nathan Ruehs In this episode of Ruby Rogues, the panelists talk with Nathan Ruehs. Nathan is a programmer residing in the Milwaukee area. He started working for a large corporation right after college and is currently try ...…

Panel: Eric Berry Dave Kimura Nate Hopkins Charles Max Wood Special Guest: Vladimir Dem In this episode of Ruby Rogues, the panel talks with Vladimir Dem who is a Ruby developer and currently lives in Brooklyn, New York. Today, the panelists and guest talk about cables, concurrency, and Ruby. Check it out! Show Topics: 0:00 – Advertisement: Sen ...…

Panel: Charles Max Wood Guest: Kerri Miller This week on My Ruby Story, Chuck talks with Kerri Miller who is a developer who resides in Seattle! Chuck and Kerri talk about her background, how she got into programming, software, and much more. Check it out! In particular, we dive pretty deep on: 0:00 – Get A Coder Job! 0:52 – Chuck: Hello! Our g ...…

Panel: Eric Berry Dave Kimura David Richards Charles Max Wood In this episode of Ruby Rogues, the panelists talk amongst themselves on today’s topic, which is “speculation on frameworks.” They consider where the tech community currently is right now, and where it’s heading towards the future. They bring-up topics such as: Rails, Ruby, Angular, ...…

Panel: Charles Max Wood Guest: Olivier Lacan This week on My Ruby Story, Chuck talks with Olivier Lacan who works for Pluralsight remotely while living in France. Chuck and Olivier talk about his background, his education, and how he got into Ruby. Check it out! In particular, we dive pretty deep on: 0:00 – Get A Coder Job! 0:55 – Chuck: Hi! Ca ...…

Panel: Dave Kimura Charles Max Wood Nate Hopkins Special Guest: Josh Justice In this episode of Ruby Rogues, the panelists talk with Josh Justice who is a developer, writer, and speaker. Josh streams JavaScript and web development on Friday’s at 2:00 PM (ET) here! The panelists and the guest talk about Josh’s background and frontend testing in ...…

Panel: Dave Kimura Eric Berry Charles Max Wood Nate Hopkins Special Guest: Pedro Cavalheiro In this episode of Ruby Rogues, the panelists talk with Pedro Cavalheiro who is from Brazil, but currently resides in Hamburg, Germany where he works at Xing. He is a software engineer, an actor, and has been working with the web since 2010. He has worke ...…

Panel: Charles Max Wood Guest: Michael King This week on My Ruby Story, Chuck talks with Michael King who is a developer, an enthusiast for natural languages, developing, and mathematics. Charles and Michael talk about his background, and past/current projects that Michael is working on right now. Other topics of discussion include Ruby, Rails, ...…

Panel: David Kimura Eric Berry In this episode of Ruby Rogues, the panelists talk amongst themselves about their favorite software, equipment, and apps. Both Eric and David thoroughly share their preferred picks within these categories, and they explain how and why they use the specified item. Check out today’s episode to hear more! Show Topics ...…

Panel: Charles Max Wood Guest: Pawe? D?browski This week on My Ruby Story, Chuck talks with Pawe? D?browski who is a coder and author who resides in Poland. He is a blogger and writes about the Ruby language, Ruby on Rails, and related technologies. To read more about Pawe?, please visit his ABOUT ME via his blog. Today, Chuck and Pawe? talk ab ...…

Panel: Dave Kimura Charles (Chuck) Max Wood Nate Hopkins Special Guest: Dan Mayer In this episode of Ruby Rogues, the panel talks with Bozhidar Batsov who is the VP of Engineering at Toptal, and an Emacs fanatic. The panel and the guest talk about RubCop, Emacs, and Komodo, among other topics! Check out today’s episode for more details. Show To ...…

Panel: Charles Max Wood Guest: Jérémie Bonal This week on My Ruby Story, Chuck talks with Jérémie Bonal who works at Ekylibre. He is a web developer and he has been using Ruby for the past few years now. They talk about Jérémie’s background, Ruby, Ekylibre, past/current projects, and so much more! Check it out! In particular, we dive pretty dee ...…

Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Dan Mayer In this episode of Ruby Rogues, the panel talks with Dan Mayer who believes that small distributed software teams can make a large impact. Dan loves Ruby, distributed systems, OSS, and making development easier. The panel and Dan talk about performance and benchmarking. ...…

Loading …

Welcome to Player FM

What if radio played only the shows you care about, when you want? Player FM is scanning the web for high-quality podcast content right now. Try us out on any web browser — desktop, mobile, or tablet.

Take it with you

Start listening to All Ruby Podcasts by Devchat.tv on your phone right now with Player FM's free mobile app, the best podcasting experience on both iPhone and Android. Your subcriptions will sync with your account on this website too. Podcast smart and easy with the app that refuses to compromise.

Guides you to smart, interesting podcasts based on category, channel, or even specific topics

Right from the start, I found the experience of using Player FM enjoyable … I’m actually rather surprised this app is free.

Looking for a high-quality podcasts app on Android? Player FM might just be it.

Player FM isn’t just about looks: What sets the app apart from other podcasting applications is its emphasis on discovery.

(Order of stories changed to match how they originally aired each day, with stories from previous 6 programs included afterwards. See http://kevin.micke.com/ for details.)Hosted by Terry Gross, Fresh Air from WHYY is the Peabody Award-winning weekday magazine of contemporary arts and issues. One of public radio's most popular programs, Fresh Air features intimate conversations with today's biggest luminaries.

Are you a new Ruby on Rails developer in need of guidance? Well, StartHere: Ruby on Rails is the show for you! Dain Miller is your Ruby on Rails coach and he'll provide insight, and resources to help get you from knowing nothing to becoming a full-time Ruby ninja. Everyone starts somewhere and you’re starting here!

Tiny Desk Concerts from NPR Music feature your favorite musicians performing at All Songs Considered host Bob Boilen's desk in the NPR office. Hear Wilco, Adele, Passion Pit, Tinariwen, Miguel, The xx and many more. This is the audio version of the podcast. A video version is also available.