![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220111_72ppi_05_TalkRecapFromRubyConf2021.jpg?v=1646251175&width=600)
Search results for “Kevin Lin”:
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220111_72ppi_05_TalkRecapFromRubyConf2021.jpg?v=1646251175&width=600)
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220216_72ppi_03_7LessonsForOptimizingApacheFlinkApplications.jpg?v=1647287310&width=600)
7 Tips For Optimizing Apache Flink Applications
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220411_72ppi_05_CodeRanges-ADeeperLookAtRubyStrings.jpg?v=1651177888&width=600)
Code Ranges: A Deeper Look at Ruby Strings
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220411_72ppi_01_ImplementingEqualityInRuby.jpg?v=1653388463&width=600)
Implementing Equality in Ruby
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/Our_Favorite_Moments_From_RailsConf_2022.jpg?v=1653428464&width=600)
Our Favorite Moments From RailsConf 2022
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_221018_72ppi_06_DoBigRubyGemsDependOnSmallRubyGems.jpg?v=1667611985&width=600)
Finding Relationships Between Ruby’s Top 100 Packages and Their Dependencies
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220216_72ppi_03_7LessonsForOptimizingApacheFlinkApplications_8648a0cf-025d-4da2-bc29-424913527a6b.jpg?v=1670333665&width=600)
3 (More) Tips for Optimizing Apache Flink Applications
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_211008_216ppi_02_TryOutYJITforFasterRubying.jpg?v=1673882706&width=600)
Ruby 3.2’s YJIT is Production-Ready
![](https://cdn.shopify.com/s/files/1/0779/4361/articles/ShopifyEng_BlogIllustrations_220411_216ppi_02_RubyExecutionModels_1.jpg?v=1677186891&width=600)