Cristian Planas
I am a software engineer that has been working primarily with Rails since the release of Rails 3, more than 10 years ago.
Performance optimization has been an obsession for me since I founded my first start-up as a solo engineer in 2012. Currently, I am a Group Tech Lead and Senior Staff Engineer at Zendesk, where I focus on performance optimization.
A Rails performance guidebook: from 0 to 1B requests/day
Building a feature is not good enough anymore: all your work won't be of use if it's not performant enough. So how to improve performance? After all, performance is not an easy discipline to master: all slow applications are slow in their own way, meaning that there is no silver bullet for these kinds of problems.
In this presentation, we will guide you across patterns, strategies, and little tricks to improve performance. We will do that by sharing real stories of our daily experience facing and solving real performance issues in an application that daily serves billions of requests per day.
Recorded Video
Ryo KAJIWARA
Adventures in the Dungeons of OpenSSL
As part of implementing Hybrid Public Key Encryption (HPKE; RFC 9180) in Ruby, I had a chance to send a patch into Ruby's OpenSSL gem. Missing functionalities? Major version upgrade of the OpenSSL backend? There is a deep dungeon behind one of Ruby's default gem, and I will talk about one adventure through this dungeon.
Recorded Video
Yuji YOKOO
Developing cross-platform mruby software for Dreamcast and Wii
With mruby, we can write Ruby for many environments including old video game consoles. I am working on a cross-platform library for mruby so software written for mruby on Dreamcast can be run on Wii with little change to the source. I have ported the block puzzle I showed at RubyConfTW 2019 to Wii, and am now working on the presentation tool.
I will tell you about what is involved in making a cross-platform mruby library for Dreamcast and Wii, as well as challenges and lessons learned.
This presentation will (hopefully) be delivered on either of those consoles and will include some live demos.
Recorded Video
HIROTA Tetsuya
High Speed Parsing Massive XML Data in Ruby
A massive XML called BioProject has been published. However, when I parsed the XML as it was, rexml got freeze somewhere, and nokogiri ended up consuming a large amount of memory and being slow. Looking at the sample implementation in Python, it uses iterparse() to parse each element in the first layer. Therefore, we created a similar mechanism in Ruby and also used ractor to speed it up.
Recorded Video
Jian Wei-Hang
Refining Fork Management: From Workarounds to `Process#_fork`
With the release of Ruby 3.1 in 2021, an enhancement arrived as Process#_fork
, allowing us to override the fork method. This addition simplifies creating callbacks when forking. While there was no official method to track fork events prior to Ruby 3.1, this limitation didn't deter the community from exploring various approaches to achieve the same goal.
In the past, Rails encouraged the use of before_fork
and after_fork
for connection management, redis-rb ensured fork safety by storing the Process#pid
in a variable, and some even used threads to track fork events.
During this session, I will delve into the backstory of _fork
and explore the diverse methods the community employed for creating callbacks during forking prior to Ruby 3.1.
Recorded Video
Mark CHAO
Translating XML and Epub using ChatGPT
Natsukantou and epub-translator gems offer XML translation by allowing users to mix & match filters and translation services (DeepL/ChatGPT). The gem's architecture will be presented, showcasing its middleware pattern, the use cases and wizard configuration inference.
Recorded Video
SHIBATA Hiroshi
Deep dive into Ruby require
Since Ruby's bundled and default gems change every year with each release, some versions may suddenly happen LoadError
at require
when running bundle exec
or bin/rails
, for example matrix
or net-smtp
.
In this presentation, I will introduce the details of the functionality that extends Ruby's require
to provide guidance to users on what they can do to load them. And I will also show how $LOAD_PATH is build behind Ruby and Rails by Bundler.
Recorded Video
Helio Cola
He(lio) is a passionate software engineer and has created things primarily in C/C++ & Ruby, over the past 20+ years. He(lio) met Ruby v1.8.7 and Rails 2.x in 2010 and it is a Happy Developer since then.
He(lio) is currently helping small and medium side Dev teams as a part-time Rails consultant, while he is dusting off some old products, building new ones, doing some OSS, and enjoying more time with his 2 children.
Let's pop into Passkeys
Can you recall a world without having to remember passwords? If Passkeys becomes widely available, that world is a few steps away in our future. Instead of remembering passwords, we will use our biometrics, already available in our phones, laptops, and desktops, and public key encryption! To a future with no passwords!
Recorded Video
Ho Tse-Ching
從設計階段就開始元件化 Rails 專案 / Use View Components with Rails Projects from the Design Stage
介紹如何從 Figma 設計稿,就開始規劃、製作與預覽元件(View Component + Lookbook)。 說明目前偏好的元件組成方式,協助製作元件的工具和注意事項,以及安置元件到頁面中的方式(partial + helper)。 展示利用 settings 搭配 builder 活用元件的嘗試。
Let’s start to plan, create, and preview view components from the design stage with Figma, ViewComponent and Lookbook. I will introduce my preferred way to compose view components, the tools and tips which can help build, and how to use partial and helper to render it. I will also show you a pattern to rendering view components with settings and builder.
Recorded Video
KOBAYASHI Junichi
Understanding Parser Generators surronding Ruby with Contributing Lrama
At RubyKaigi 2023, yui-knk introduced Lrama, for which I submitted a PR to implement the 'Named References' feature, a functionality found in GNU Bison. In this presentation, I will delve into the internal workings of Lrama gained through this implementation. Alongside, I will touch upon the foundational knowledge of parsers and parser generators, as well as the current state of parsers surrounding Ruby.
Recorded Video
HASUMI Hitoshi
The Rise of Microcontroller Ruby
In this presentation, we will embark on a journey of live coding to bring microcontrollers to life. All you need is (at least) two "Raspberry Pi Pico W" boards, the same number of USB cables, and a laptop. Witness the realization of PicoRuby, a production-ready Ruby implementation for microcontrollers, as we delve into the world of innovation.
Recorded Video
Radoslav Stankov
Component Driven UI with ViewComponent gem
The View layer is the messiest part of a Ruby on Rails application. Developers are confused about where to put logic. Should it be in the model, presenter, decorator, helper, or partial?
ViewComponents, developed by GitHub simplifies the View layer and makes it much easier to manage.
Recorded Video
Aotoki Tsuruya(蒼時弦也)
Rethink Rails Architecture
Rails 讓開發 Web Application 變得相當容易,然而因為簡化了許多問題,當我們面臨更複雜的系統時感到極大的挑戰。複雜的 Rails 專案之所以難以維護是 Rails 在架構上的設計造成的限制,讓我們重新思考 Rails 來尋找更容易維護的架構。
Recorded Video
Andrei Bondarev
Andrei has been a software engineering professional for almost 13 years. Among many others he’s been fortunate to make his impact at Spree Commerce (Acquired by First Data), WeddingWire (merged with The Knot), FiscalNote (IPO), National Public Radio, and USA Today. He currently runs a software dev firm, and serves as an Architect/Engineering Manager/Fractional CTO on the client projects. In his free time he enjoys playing tennis and going on long runs while listening to podcasts.
Catching the AI Train
The Large-Language Models have taken application development by storm. Ruby has libraries that help build LLM applications, e.g.: Langchain.rb. We need to understand what kind of LLM applications can be built, how to build them, and what are common pitfalls when building them. We're going to look at building vector (semantic) search, chat bots and business process automation solutions. We're going to learn AI/LLM-related concepts, terms and ideas, learn what AI agents are, and look at some of the latest cutting edge AI research.
Recorded Video
Samuel Giddins
Handling 225k requests per second to RubyGems.org
Chances are you’ve run bundle install or gem install at some point, seeing as we’re at RubyConf. Turns out, you’re not alone. At peak times, RubyGems.org has received as many as 225 thousand requests per second. How does a small, mostly-volunteer team handle serving all that traffic with their rails app? Let’s dive into how using CDNs, scaling with static files, and wrangling expensive endpoints has kept your favorite gem index up and running over the past decade.
Recorded Video
Warren Wong
How Rails 7 Helped Us Achieve GDPR Compliance
Rails 7 introduced a new feature called Active Record Encryption. I will go over what it is, how it works, and how Viewabo used it to help us achieve GDPR compliance. I will include example usage and an overview of the preparatory work that went into implementing Active Record Encryption.
Recorded Video
Delton Ding
Yet Another Ruby DSL for LLM
在過去一年裏我們經歷了 LLM 的巨大衝擊,但是對於使用 LLM 實作應用依然困難重重。如何利用 Ruby 的 meta-programming 更好地對 LLM 進行處理和約束從而實作下一世代的 AI 應用是本 Topic 試圖討論的關鍵問題。
Recorded Video
Du Gia Huy
Software Engineer, Rakuten Viki
Huy is a Software Engineer driven by a genuine passion for his craft. He loves tackling complex challenges in finance and technology. He firmly believes that technology can revolutionize our world in every aspect, and he’s excited about using his skills to make a positive impact.
Monadic Approach to Ruby Error Handling
Error handling is an essential part of software development. No matter how well-written your code is, there will always be errors. The key is to handle them in a way that minimizes their impact.
In this talk, we will build a foundation of error handling concepts, categorizing errors and exceptions in Ruby. We'll look at practical code examples that demonstrate common issues when propagating errors through layers of code. Explore how Monadic Handling abstract away error handling details by combine Monads Result and Service Object in Ruby programming.
This talk will empower you understand how to use Monadic Handling Ruby code. You'll leave with a deeper appreciation of monads and concrete strategies for encapsulating errors elegantly in your Ruby applications. Join me to discover how monads enable you to minimize disruption and maximize control over error handling in Ruby.
Recorded Video
John Lin
Principle Engineer at West Pharmaceutical Services. Ruby lover. All-stack developer. Organizer of Swift Taipei. Find me at https://johnlin.vc
發掘 Ruby 的內建 Gems / Unearth Ruby builtin Gems
你曾經在不用外部 Gems
的情況下使用 Ruby 嗎?
Ruby 其實內建了很多非常實用的 Gems
。不需要做任何的額外安裝就可以直接使用。
這些Gems
包括方便的資料結構與演算法,跨平台的檔案處理,實用的簡易伺服器等等。讓我們一起來發掘各種鮮為人知的內建 Gems
。
How many times did you run ruby
without external Gems
?
Ruby includes many Gems
by default. We can use them without extra installation steps. These Gems
includes convenient data structure and algorithms, cross platform file handling and practical simple server, etc. Let's unearth the less known builtin Gems
.
Recorded Video
OKURA Masafumi
Writing Minitest clone in 30 minutes
Minitest is a testing library for Ruby that's bundled with CRuby. Unlike RSpec, it takes more straightforward approach. Class, method and assertion are all we need to write tests in Minitest.
However, there are still some magical things going on here. What do assertions actually do? How does autorun
feature work?
In this talk, we'll write code together. More specifically, we'll write simpler clone of Minitest and make it work.
Recorded Video
Cindy Liu
Development Engineer, DEVCORE
大家好,我是 Cindy,5 年 Rails 工程師經驗,目前在資安公司 DEVCORE 擔任開發工程師,歡迎大家參觀我的 個人網站。 / Hello, everyone! I'm Cindy, with 5 years of experience as a Rails engineer. I currently work as a developer at a cybersecurity company called DEVCORE. Feel free to visit my personal website.
你有被同事打過嗎? / Ever Been Punched by a Colleague?
Race condition 是在 Ruby on Rails 應用程式中可能出現的問題之一,尤其涉及多執行緒的情況。這次演講提供了 race condition 的基本概念,以及如何在 Rails 中測試和解決這些問題的方法。測試 race condition 的方法至關重要,可以通過模擬並發情境來確保穩定性。
"Race condition" is a potential issue in Ruby on Rails applications, especially in situations involving multiple threads. This presentation provides a basic understanding of race conditions and how to test and resolve them in Rails. Testing for race conditions is crucial and can be achieved by simulating concurrent scenarios to ensure stability.
Recorded Video
Ted Johansson
Baconware
A web developer of twenty years, and a Rubyist of ten, Ted spends his time both at work (Discourse) and outside of it contributing to open source projects. He's also really into rock climbing, but not particularly good at it. You'll often find him reminiscing about "the good old days", when web development (allegedly) wasn't so complicated.
The Forgotten Web
Is Rails still a good choice in 2023? For a new project at work? For a side hustle? How about for someone just looking to get into web development? How does it stack up against "modern" frameworks?
In this presentation we explore the ancient history of web development, discuss the perils of "the modern web application", highlight a brewing generational conflict, and examine how Rails' connection to the past puts it in a unique position to project itself into the future.
Recorded Video
ihower
淺談 Generative AI Engineer: 給 Rubyist 的上手指南 / A Brief Introduction to Generative AI Engineer: A Guide for Rubyists
在這場分享中,我們將新定義 Generative AI Engineer (生成式 AI 工程師) 這一新興職位。除了 LLM 模型本身之外,要真正開發 AI 應用,我們還需要面對許多的挑戰和工作。隨著開發 AI 應用的門檻逐漸降低,許多原先沒有 AI 背景的應用軟體工程師,現在也能透過呼叫 LLM API 轉型成為 AI 工程師,不再需要從零開始學習訓練機器學習模型,而是專注在 Prompt Engineering (提示工程) 和開發各種 AI 應用,如 Chatbot、Retrieval Augmented Generation(RAG)、Vector Search、Agents 和 OpenAI Function Calling 等。歡迎一起探索這個新時代的 AI 工程師角色。
In this talk, we redefine the emerging role of Generative AI Engineer. Beyond just the LLM itself, developing AI applications presents many challenges and tasks. Now software developers can build AI apps by using LLM APIs and don’t have to start learning machine learning from the beginning. We can focus on Prompt Engineering, Retrieval Augmented Generation(RAG), Vector Search, Agents, and OpenAI Function Calling. Join us in exploring the role of AI engineers in this new era.
Recorded Video
Hiếu Nguyễn
I’m an enthusiastic programmer who focuses on backend development. Writing about coding is my usual blogging gig, but I also like to talk about books, manga, and other random things.
I’m currently Senior Staff Software Engineer at Ascenda. My work involves building world-class authentication system tailored for rewards program in financial industry.
You can also checkout my bio in https://hieuk09.github.io/bio
Solving Real-World Challenges with Ruby Ractor
In this talk, we explore on how we can take advantage of Ractor to improve parallel processing in some real world scenarios, such as data encryption and transaction processing. We delve into some features of Ractor, with their strength and limitation, and how to migrate thread-based or process-based functionalities using them. This talk hopefully will give the audience more insights on how they can improve their application performance.
Recorded Video
Charles Oliver Nutter
Ruby on the Modern JVM with JRuby
Over the past year, the JVM has added native support for fibers (via Project Loom virtual threads), native function calls (via Project Panama), and now has started to add support for native ahead-of-time compilation. JRuby is uniquely positioned to bring these features to Ruby! This talk will show how JRuby is taking advantage of the modern JVM with exciting examples you can try today!
Stephen Margheim
How (and why) to run SQLite in production
You've heard the whispers, sensed the hype, but you're still not sure what all the fuss is about with SQLite these days. Join me as we explore the use-cases and benefits of running SQLite in a production environment. Along the way, we will learn why SQLite makes sense as your next production database and how to ensure that your setup is optimized for end-user performance and developer happiness. We will setup and deploy a full Rails application—with caching, background jobs, websockets, and full-text search all backed by SQLite—in these 40 minutes. Come along for the ride!
Recorded Video
Tim Riley
Quest of the Rubyist
What do curiosity, cooperation and cognisance mean for the budding Rubyist? And can these virtues help us follow the path of programmer happiness?
As we enter a land where both peril and opportunity abound, how can we plot a course towards towards the Ruby of our future? Let’s find out together, as we embark on the adventure of our time!
Recorded Video
11:25
I am a software engineer that has been working primarily with Rails since the release of Rails 3, more than 10 years ago.
Performance optimization has been an obsession for me since I founded my first start-up as a solo engineer in 2012. Currently, I am a Group Tech Lead and Senior Staff Engineer at Zendesk, where I focus on performance optimization.
A Rails performance guidebook: from 0 to 1B requests/day
Building a feature is not good enough anymore: all your work won't be of use if it's not performant enough. So how to improve performance? After all, performance is not an easy discipline to master: all slow applications are slow in their own way, meaning that there is no silver bullet for these kinds of problems.
In this presentation, we will guide you across patterns, strategies, and little tricks to improve performance. We will do that by sharing real stories of our daily experience facing and solving real performance issues in an application that daily serves billions of requests per day.
Recorded Video
Adventures in the Dungeons of OpenSSL
As part of implementing Hybrid Public Key Encryption (HPKE; RFC 9180) in Ruby, I had a chance to send a patch into Ruby's OpenSSL gem. Missing functionalities? Major version upgrade of the OpenSSL backend? There is a deep dungeon behind one of Ruby's default gem, and I will talk about one adventure through this dungeon.
Recorded Video
13:30
Developing cross-platform mruby software for Dreamcast and Wii
With mruby, we can write Ruby for many environments including old video game consoles. I am working on a cross-platform library for mruby so software written for mruby on Dreamcast can be run on Wii with little change to the source. I have ported the block puzzle I showed at RubyConfTW 2019 to Wii, and am now working on the presentation tool.
I will tell you about what is involved in making a cross-platform mruby library for Dreamcast and Wii, as well as challenges and lessons learned.
This presentation will (hopefully) be delivered on either of those consoles and will include some live demos.
Recorded Video
High Speed Parsing Massive XML Data in Ruby
A massive XML called BioProject has been published. However, when I parsed the XML as it was, rexml got freeze somewhere, and nokogiri ended up consuming a large amount of memory and being slow. Looking at the sample implementation in Python, it uses iterparse() to parse each element in the first layer. Therefore, we created a similar mechanism in Ruby and also used ractor to speed it up.
Recorded Video
14:15
L405
Speaker
Refining Fork Management: From Workarounds to `Process#_fork`
Jian Wei-Hang
Refining Fork Management: From Workarounds to `Process#_fork`
With the release of Ruby 3.1 in 2021, an enhancement arrived as Process#_fork
, allowing us to override the fork method. This addition simplifies creating callbacks when forking. While there was no official method to track fork events prior to Ruby 3.1, this limitation didn't deter the community from exploring various approaches to achieve the same goal.
In the past, Rails encouraged the use of before_fork
and after_fork
for connection management, redis-rb ensured fork safety by storing the Process#pid
in a variable, and some even used threads to track fork events.
During this session, I will delve into the backstory of _fork
and explore the diverse methods the community employed for creating callbacks during forking prior to Ruby 3.1.
Recorded Video
Translating XML and Epub using ChatGPT
Natsukantou and epub-translator gems offer XML translation by allowing users to mix & match filters and translation services (DeepL/ChatGPT). The gem's architecture will be presented, showcasing its middleware pattern, the use cases and wizard configuration inference.
Recorded Video
15:30
Deep dive into Ruby require
Since Ruby's bundled and default gems change every year with each release, some versions may suddenly happen LoadError
at require
when running bundle exec
or bin/rails
, for example matrix
or net-smtp
.
In this presentation, I will introduce the details of the functionality that extends Ruby's require
to provide guidance to users on what they can do to load them. And I will also show how $LOAD_PATH is build behind Ruby and Rails by Bundler.
Recorded Video
He(lio) is a passionate software engineer and has created things primarily in C/C++ & Ruby, over the past 20+ years. He(lio) met Ruby v1.8.7 and Rails 2.x in 2010 and it is a Happy Developer since then.
He(lio) is currently helping small and medium side Dev teams as a part-time Rails consultant, while he is dusting off some old products, building new ones, doing some OSS, and enjoying more time with his 2 children.
Let's pop into Passkeys
Can you recall a world without having to remember passwords? If Passkeys becomes widely available, that world is a few steps away in our future. Instead of remembering passwords, we will use our biometrics, already available in our phones, laptops, and desktops, and public key encryption! To a future with no passwords!
Recorded Video
16:15
L405
Speaker
從設計階段就開始元件化 Rails 專案 / Use View Components with Rails Projects from the Design Stage
Ho Tse-Ching
從設計階段就開始元件化 Rails 專案 / Use View Components with Rails Projects from the Design Stage
介紹如何從 Figma 設計稿,就開始規劃、製作與預覽元件(View Component + Lookbook)。 說明目前偏好的元件組成方式,協助製作元件的工具和注意事項,以及安置元件到頁面中的方式(partial + helper)。 展示利用 settings 搭配 builder 活用元件的嘗試。
Let’s start to plan, create, and preview view components from the design stage with Figma, ViewComponent and Lookbook. I will introduce my preferred way to compose view components, the tools and tips which can help build, and how to use partial and helper to render it. I will also show you a pattern to rendering view components with settings and builder.
Recorded Video
Understanding Parser Generators surronding Ruby with Contributing Lrama
At RubyKaigi 2023, yui-knk introduced Lrama, for which I submitted a PR to implement the 'Named References' feature, a functionality found in GNU Bison. In this presentation, I will delve into the internal workings of Lrama gained through this implementation. Alongside, I will touch upon the foundational knowledge of parsers and parser generators, as well as the current state of parsers surrounding Ruby.
Recorded Video
17:00
The Rise of Microcontroller Ruby
In this presentation, we will embark on a journey of live coding to bring microcontrollers to life. All you need is (at least) two "Raspberry Pi Pico W" boards, the same number of USB cables, and a laptop. Witness the realization of PicoRuby, a production-ready Ruby implementation for microcontrollers, as we delve into the world of innovation.
Recorded Video
Component Driven UI with ViewComponent gem
The View layer is the messiest part of a Ruby on Rails application. Developers are confused about where to put logic. Should it be in the model, presenter, decorator, helper, or partial?
ViewComponents, developed by GitHub simplifies the View layer and makes it much easier to manage.
Recorded Video
18:30
「AI浪潮下工程師的快樂之道」/ The Path to Engineer Happiness in the Age of AI
Speaker
Cristian Planas
Speaker
Charles Oliver Nutter
Speaker
Ted Johansson
「AI浪潮下工程師的快樂之道」/ The Path to Engineer Happiness in the Age of AI
在生成式 AI 風起雲湧的今天,軟體開發的格局正迅速變革。從 GitHub Copilot 到 ChatGPT 的 Code Interpreter,生成式 AI的影響力滲透至開發工作的每一個角落。在這一波浪潮中,網頁應用開發者如何定位自己,保持創造力和專業熱情?
本次座談會將邀請幾位在 LLM(Large Language Models)有相關經驗的資深工程師,共同探討在 Generative AI 的浪潮下,工程師如何保持專業的熱情與創造力。我們將圍繞一個核心問題:AI 是否將成為軟體工程師的威脅,或是進步的助力?
在 Ruby 社群中,「開發者快樂」一直是其哲學的核心。那麼在AI的影響下,我們如何探索運用 Generative AI 的力量來提升開發者的幸福感?
我們將在本次座談會中,尋找那些將會導引我們走向光明未來的答案。
In today’s era of Generative AI, the landscape of software development is rapidly evolving. From GitHub Copilot to ChatGPT’s Code Interpreter, the influence of Generative AI permeates every corner of the development work. In the midst of this wave, how can web application developers position themselves and maintain creativity and professional enthusiasm?
This panel discussion will invite several senior engineers with experience in Large Language Models (LLM) to explore how engineers can maintain their professional enthusiasm and creativity amidst the Generative AI wave. We will focus on a core question: Is AI a threat to software engineers or an advancement?
In the Ruby community, “developer happiness” has always been a core philosophy. So, how can we explore the use of Generative AI to enhance developer happiness in the wake of AI’s influence?
We will seek answers that will guide us towards a brighter future in this panel discussion.
10:00
Rethink Rails Architecture
Rails 讓開發 Web Application 變得相當容易,然而因為簡化了許多問題,當我們面臨更複雜的系統時感到極大的挑戰。複雜的 Rails 專案之所以難以維護是 Rails 在架構上的設計造成的限制,讓我們重新思考 Rails 來尋找更容易維護的架構。
Recorded Video
Andrei has been a software engineering professional for almost 13 years. Among many others he’s been fortunate to make his impact at Spree Commerce (Acquired by First Data), WeddingWire (merged with The Knot), FiscalNote (IPO), National Public Radio, and USA Today. He currently runs a software dev firm, and serves as an Architect/Engineering Manager/Fractional CTO on the client projects. In his free time he enjoys playing tennis and going on long runs while listening to podcasts.
Catching the AI Train
The Large-Language Models have taken application development by storm. Ruby has libraries that help build LLM applications, e.g.: Langchain.rb. We need to understand what kind of LLM applications can be built, how to build them, and what are common pitfalls when building them. We're going to look at building vector (semantic) search, chat bots and business process automation solutions. We're going to learn AI/LLM-related concepts, terms and ideas, learn what AI agents are, and look at some of the latest cutting edge AI research.
Recorded Video
10:45
Handling 225k requests per second to RubyGems.org
Chances are you’ve run bundle install or gem install at some point, seeing as we’re at RubyConf. Turns out, you’re not alone. At peak times, RubyGems.org has received as many as 225 thousand requests per second. How does a small, mostly-volunteer team handle serving all that traffic with their rails app? Let’s dive into how using CDNs, scaling with static files, and wrangling expensive endpoints has kept your favorite gem index up and running over the past decade.
Recorded Video
How Rails 7 Helped Us Achieve GDPR Compliance
Rails 7 introduced a new feature called Active Record Encryption. I will go over what it is, how it works, and how Viewabo used it to help us achieve GDPR compliance. I will include example usage and an overview of the preparatory work that went into implementing Active Record Encryption.
Recorded Video
11:30
Yet Another Ruby DSL for LLM
在過去一年裏我們經歷了 LLM 的巨大衝擊,但是對於使用 LLM 實作應用依然困難重重。如何利用 Ruby 的 meta-programming 更好地對 LLM 進行處理和約束從而實作下一世代的 AI 應用是本 Topic 試圖討論的關鍵問題。
Recorded Video
Software Engineer, Rakuten Viki
Huy is a Software Engineer driven by a genuine passion for his craft. He loves tackling complex challenges in finance and technology. He firmly believes that technology can revolutionize our world in every aspect, and he’s excited about using his skills to make a positive impact.
Monadic Approach to Ruby Error Handling
Error handling is an essential part of software development. No matter how well-written your code is, there will always be errors. The key is to handle them in a way that minimizes their impact.
In this talk, we will build a foundation of error handling concepts, categorizing errors and exceptions in Ruby. We'll look at practical code examples that demonstrate common issues when propagating errors through layers of code. Explore how Monadic Handling abstract away error handling details by combine Monads Result and Service Object in Ruby programming.
This talk will empower you understand how to use Monadic Handling Ruby code. You'll leave with a deeper appreciation of monads and concrete strategies for encapsulating errors elegantly in your Ruby applications. Join me to discover how monads enable you to minimize disruption and maximize control over error handling in Ruby.
Recorded Video
13:30
L405
Speaker
發掘 Ruby 的內建 Gems / Unearth Ruby builtin Gems
John Lin
Principle Engineer at West Pharmaceutical Services. Ruby lover. All-stack developer. Organizer of Swift Taipei. Find me at https://johnlin.vc
發掘 Ruby 的內建 Gems / Unearth Ruby builtin Gems
你曾經在不用外部 Gems
的情況下使用 Ruby 嗎?
Ruby 其實內建了很多非常實用的 Gems
。不需要做任何的額外安裝就可以直接使用。
這些Gems
包括方便的資料結構與演算法,跨平台的檔案處理,實用的簡易伺服器等等。讓我們一起來發掘各種鮮為人知的內建 Gems
。
How many times did you run ruby
without external Gems
?
Ruby includes many Gems
by default. We can use them without extra installation steps. These Gems
includes convenient data structure and algorithms, cross platform file handling and practical simple server, etc. Let's unearth the less known builtin Gems
.
Recorded Video
Writing Minitest clone in 30 minutes
Minitest is a testing library for Ruby that's bundled with CRuby. Unlike RSpec, it takes more straightforward approach. Class, method and assertion are all we need to write tests in Minitest.
However, there are still some magical things going on here. What do assertions actually do? How does autorun
feature work?
In this talk, we'll write code together. More specifically, we'll write simpler clone of Minitest and make it work.
Recorded Video
14:15
L405
Speaker
你有被同事打過嗎? / Ever Been Punched by a Colleague?
Cindy Liu
Development Engineer, DEVCORE
大家好,我是 Cindy,5 年 Rails 工程師經驗,目前在資安公司 DEVCORE 擔任開發工程師,歡迎大家參觀我的 個人網站。 / Hello, everyone! I'm Cindy, with 5 years of experience as a Rails engineer. I currently work as a developer at a cybersecurity company called DEVCORE. Feel free to visit my personal website.
你有被同事打過嗎? / Ever Been Punched by a Colleague?
Race condition 是在 Ruby on Rails 應用程式中可能出現的問題之一,尤其涉及多執行緒的情況。這次演講提供了 race condition 的基本概念,以及如何在 Rails 中測試和解決這些問題的方法。測試 race condition 的方法至關重要,可以通過模擬並發情境來確保穩定性。
"Race condition" is a potential issue in Ruby on Rails applications, especially in situations involving multiple threads. This presentation provides a basic understanding of race conditions and how to test and resolve them in Rails. Testing for race conditions is crucial and can be achieved by simulating concurrent scenarios to ensure stability.
Recorded Video
Baconware
A web developer of twenty years, and a Rubyist of ten, Ted spends his time both at work (Discourse) and outside of it contributing to open source projects. He's also really into rock climbing, but not particularly good at it. You'll often find him reminiscing about "the good old days", when web development (allegedly) wasn't so complicated.
The Forgotten Web
Is Rails still a good choice in 2023? For a new project at work? For a side hustle? How about for someone just looking to get into web development? How does it stack up against "modern" frameworks?
In this presentation we explore the ancient history of web development, discuss the perils of "the modern web application", highlight a brewing generational conflict, and examine how Rails' connection to the past puts it in a unique position to project itself into the future.
Recorded Video
15:25
L405
Speaker
淺談 Generative AI Engineer: 給 Rubyist 的上手指南 / A Brief Introduction to Generative AI Engineer: A Guide for Rubyists
ihower
淺談 Generative AI Engineer: 給 Rubyist 的上手指南 / A Brief Introduction to Generative AI Engineer: A Guide for Rubyists
在這場分享中,我們將新定義 Generative AI Engineer (生成式 AI 工程師) 這一新興職位。除了 LLM 模型本身之外,要真正開發 AI 應用,我們還需要面對許多的挑戰和工作。隨著開發 AI 應用的門檻逐漸降低,許多原先沒有 AI 背景的應用軟體工程師,現在也能透過呼叫 LLM API 轉型成為 AI 工程師,不再需要從零開始學習訓練機器學習模型,而是專注在 Prompt Engineering (提示工程) 和開發各種 AI 應用,如 Chatbot、Retrieval Augmented Generation(RAG)、Vector Search、Agents 和 OpenAI Function Calling 等。歡迎一起探索這個新時代的 AI 工程師角色。
In this talk, we redefine the emerging role of Generative AI Engineer. Beyond just the LLM itself, developing AI applications presents many challenges and tasks. Now software developers can build AI apps by using LLM APIs and don’t have to start learning machine learning from the beginning. We can focus on Prompt Engineering, Retrieval Augmented Generation(RAG), Vector Search, Agents, and OpenAI Function Calling. Join us in exploring the role of AI engineers in this new era.
Recorded Video
I’m an enthusiastic programmer who focuses on backend development. Writing about coding is my usual blogging gig, but I also like to talk about books, manga, and other random things.
I’m currently Senior Staff Software Engineer at Ascenda. My work involves building world-class authentication system tailored for rewards program in financial industry.
You can also checkout my bio in https://hieuk09.github.io/bio
Solving Real-World Challenges with Ruby Ractor
In this talk, we explore on how we can take advantage of Ractor to improve parallel processing in some real world scenarios, such as data encryption and transaction processing. We delve into some features of Ractor, with their strength and limitation, and how to migrate thread-based or process-based functionalities using them. This talk hopefully will give the audience more insights on how they can improve their application performance.
Recorded Video
16:10
Ruby on the Modern JVM with JRuby
Over the past year, the JVM has added native support for fibers (via Project Loom virtual threads), native function calls (via Project Panama), and now has started to add support for native ahead-of-time compilation. JRuby is uniquely positioned to bring these features to Ruby! This talk will show how JRuby is taking advantage of the modern JVM with exciting examples you can try today!
How (and why) to run SQLite in production
You've heard the whispers, sensed the hype, but you're still not sure what all the fuss is about with SQLite these days. Join me as we explore the use-cases and benefits of running SQLite in a production environment. Along the way, we will learn why SQLite makes sense as your next production database and how to ensure that your setup is optimized for end-user performance and developer happiness. We will setup and deploy a full Rails application—with caching, background jobs, websockets, and full-text search all backed by SQLite—in these 40 minutes. Come along for the ride!
Recorded Video
16:55
Quest of the Rubyist
What do curiosity, cooperation and cognisance mean for the budding Rubyist? And can these virtues help us follow the path of programmer happiness?
As we enter a land where both peril and opportunity abound, how can we plot a course towards towards the Ruby of our future? Let’s find out together, as we embark on the adventure of our time!
Recorded Video
National Taipei University of Education - Student Center 4F
國立臺北教育大學 活動中心4樓
No.134, Sec. 2, Heping E. Rd., Da-an District, Taipei City 106, Taiwan (R.O.C.)
臺北市大安區和平東路2段134號
We are looking for a Backend Developer with web and API development experience who is enthusiastic about clean and performant code to work on high-traffic applications that provide fun creative experiences for millions of people around the world.
薪資範圍 NT$ 1,000,000 - 1,800,000 (年薪)
薪資範圍 NT$ 1,800,000 - 2,700,000 (年薪)
We believe entertainment can move people’s hearts. It expands the world you see and deepens connections between family, friends, and those you have yet to meet. Entertainment creates experiences that are unforgettable in life. By being true to our creative and expressive selves and by resonating with artists and creators from around the world, Akatsuki aims to continue to deliver entertainment that moves people's hearts.
4.營運分紅獎品/獎金
4.員工交流社團
3.順暢的升遷管道
8.未滿一年即享年假
8.員工協助方案
曉數碼旗下遊戲工作室品牌「曙光工作室」新作《The Star Named EOS》將於明年推出 歡迎至 Steam 試玩並加入願望清單!
Hahow 以知識技能分享概念創立的線上學習平台,取名自台語的 “學校” ha̍k-hāu,透過全球首創群募開課機制,打造多元跨領域的學習內容,以既有內容轉譯專業技術及優質內容盟友,共創知識有價與分享創作的舞台。
從 2015 年創立以來,每個月有 10,000+ 名來自台灣、美國、香港、馬來西亞的會員在這裡尋找新知,Hahow 協助超過 700 位老師將深藏的才藝分享給世界並獲得收入,服務守護好的課程內容,創造知識技能有效流動的社群,讓分享與學習成為一種生活體驗。長期研究、優化線上學習體驗,累積 8 年、91 萬使用者的 2C 端經驗,我們善於製作創新且高品質的課程影音,搭配鼓勵學習的系統機制,提高數位學習動機與自主性。
在 2019 年,Hahow 推出全新的產品,以 Hahow for Business 提供高品質的學習內容與數據中心後台,透過建立企業人才的數位學習習慣、創造內部學習社群生態,驅動企業高度自主學習與溝通交流的文化,有效管理發展人才,喚醒學習動能,升級企業潛能。
在 Hahow,我們擁有可以自律自主管理工作的環境,以及鼓勵挑戰學習的風氣,讓每一位 Hahower 沒有框架地在擅長領域中盡情發揮;因此,我們期待有自信接受多元挑戰、渴望持續成長的你,加入 Hahow!
法定項目
勞保、健保、特別休假、勞退、婚假
其他福利
< 凱鈿福利 2.0 > 除了基本員工團保、每年員工健康檢查、三節禮金外,凱鈿擁有七大不可思議!
我們希望這是真正吸引你加入凱鈿的原因: 凱鈿 A.I.R,這是凱鈿人習以為常就像空氣一樣的企業文化!
迅速因應國際市場變化和客戶需求,塑造不斷滾動調整的團隊文化,改善是我們的精神,熱情使我們不斷突破挑戰,以適應不斷變化的環境。
凱鈿擁有一支國際化的團隊,這意味著我們來自不同的文化和背景,能夠接納和尊重多元的觀點。在凱鈿,我們鼓勵每位凱鈿人分享自己的想法,透過透明且開放的溝通方式,激盪出創新的火花。
可靠的團隊凝聚在一起,齊力打造可靠的服務體驗於客戶。每位凱鈿人專注於為客戶提供優質服務和產品,在這裡你可以找到屬於自己能發光發熱的舞台。
快加入我們成為令人驕傲的凱鈿人!Be Awesome Today!
< Kdan Benefits and Perks 2.0 > Despite the basic bonus for three festivals, high-quality health check, and group insurance, there are also seven mysteries in Kdan!
☞ Besides the annual leave established by the government, you can also enjoy a bonus 8-day Kdan VIP holiday per year.
☞ Flexible work time arrangement, you will decide your own work time!
☞ There are always unlimited snacks and drinks for you to accelerate your brain. No worries, there are also stationary bikes if you want to burn a couple calories during the day.
☞ Occasional team building events, outdoor activities, movie reservations, bowling events, we make sure to let you have fun while you’re here.
☞ Provide learning packages for you to upgrade yourself!
☞ Open and cozy workspace, anywhere in the office can be your desk.
☞ We have a bartender held up by the design team, a singer held up by the programming team, and many more interesting individuals for you to know!
Join us now to become one of our proudest Kdan members! Be Awesome Today!
勞健保、特別休假、勞退
優於勞基法之特休日
每月健身房補助
每年員工健康檢查
技術書籍補助
個人專業成長補助
PicCollage 拼貼趣
嗨!我們是來自矽谷的新創團隊 PicCollage Company,我們團隊鼓勵自由創造,擁抱差異與多元文化,打造『開放、學習、分享』的工作環境。團隊近期專注於將『Creative AI』的概念導入產品開發,運用 Generative AI、Machine Learning、Data Analytics等技術,致力打造讓使用者能輕鬆發揮創意的影像編輯產品。 主要產品『PicCollage 拼貼趣』是一個追求自由創造及分享的影像拼貼App,主要使用者來自美國、英國及日本等國家。目前全球下載量已突破 2.6 億,每個月 1500 萬穩定用戶量,並穩定增長中!另外,新產品團隊 Explore 以『團隊協作、AI應用及影音編輯 』三大方向, 持續開發具有影響力的產品,再戰繼 PicCollage App 之後的下一個產品里程碑 期待遇見更多 #builders #dreamers #thinkers 來激盪創意,加入 PicCollage Company 和我們一起做出好玩、富有創意的軟體產品到全世界 globe showing Americas🌍
曉數碼股份有限公司
曉數碼為日本上市集團 Akatsuki 於 2014 年在台灣設立的子公司,致力於營運、開發各種能躍動人心的手機遊戲。
曉數碼與日本知名 IP 商合作營運國際版手遊,重視在地化品質並放眼國際市場,團隊中聚集了來自不同區域的成員,包含台、日、韓、英、法、德、西與印度等,在多元的文化激盪下,提供最貼近全球用戶的在地化作品。而旗下子品牌「曙光工作室」所原創開發的敘事解謎遊戲《傾聽畫語》,自上市以來獲得無數國際獎項的肯定;2023 年更宣布新作《The Star Named EOS》製作中,將娛樂所帶來的幸福感,不斷傳遞給世界各地的人們。
同時,曉數碼亦積極打造幸福職場 ,透過完善且多元的福利制度,守護團隊成員的身心健康,並支持成員們發揮創意、挑戰與學習。我們深信,只要於創作中注滿熱忱,必定能將這份感動加以擴散,成就令人們笑顏逐開的世界,帶來無比閃耀的多彩風貌。
hahow
凱鈿行動科技股份有限公司
Kdan Mobile Taiwan 凱鈿行動科技致力提供全方位的行動工作軟體服務,服務項目包含數位文件管理、電子簽署、內容創作及數據整合服務等,協助全球用戶與企業加速數位轉型,提升工作效率,並以更有效率且便利的方式,實踐永續發展的未來。
凱鈿總部位於台灣,營運據點佈及中國、美國、日本和韓國。在 2023 年榮登金融時報 (Financial Times) 亞太地區高成長企業 500 強,名列台灣IT與軟體類別之首,旗下服務至今已累積全球超過一千兩百萬的會員數。
凱鈿行動科技致力於人才的永續發展,我們
我們相信,多元共融的文化,成就更好的你
Faria
Faria Education Group is the trusted partner of over 10,000 schools and 4 million students in 155 countries worldwide. A leader in international education systems and services, Faria offers integrated support across all aspects of curriculum management, teaching and learning, admissions, school-to-home, online courses, revision and professional development. With rigorous standards for data protection and security, first-class training and support, and an unwavering commitment to innovation, Faria’s technology suite is built for the modern international school. Connect with us to explore our services, including ManageBac, OpenApply, Atlas, SchoolsBuddy, Pamoja and Oxford Study Courses.
Hong Kong CalDawin Software Technology Company Limited
Hong Kong CalDawin Software Technology Company Limited, established in February 2023, is a leading gaming solutions provider based in Hong Kong. Our primary focus is on serving the rapidly evolving Asian and global gaming market. At CalDawin, we are driven by a vision to deliver cutting-edge technological advancements and immersive multimedia entertainment that enhance the operational efficiency and exceed the expectations of land-based gaming operators.
Our world-class team at CalDawin comprises highly skilled professionals with a wealth of technical expertise, a track record of success, and extensive knowledge in various business domains. We are committed to ensuring the utmost satisfaction of our customers by providing them with unparalleled solutions and services.
By leveraging our innovative technologies and comprehensive industry insights, we empower gaming operators to stay ahead in today’s competitive landscape. CalDawin is dedicated to revolutionizing the gaming industry by delivering unparalleled gaming experiences and contributing to the success of our valued customers.
香港卡爾達文軟件科技有限公司(卡爾達文)成立於2023年2月,是一家總部位於香港的業界領先的遊戲解決方案提供商。我們的主要聚焦於服務快速發展的亞洲和全球遊戲市場。我們的願景是應用頂尖技術和提供身臨其境的多媒體娛樂,並且提高營運效率,從而使實體遊戲營運商達到超預期的效果。
卡爾達文的世界一流團隊由高技術的專業人士組成,他們擁有豐富的技術專業知識、成功的經驗以及各個業務領域的豐富知識。我們致力於透過為客戶提供貼心的解決方案和服務來確保他們的最大滿意度。
卡爾達文透過利用創新技術和全面的行業洞察力,我們幫助遊戲營運商在當今的競爭格局中保持領先地位。並致力於透過提供多元化的遊戲體驗並為我們寶貴的客戶的成功做出貢獻,從而徹底改變遊戲產業。
Ascenda
Ascenda powers innovative premium rewards programs that accelerate the growth of financial services. We deliver easy-to-deploy rewards infrastructure to rapidly scale acquisition, card spending, cross-selling, and retention. We serve major financial services brands and disruptive fintechs across the globe, including Brex, HSBC, Virgin Money, American Express, and Capital One.
幣託集團 BitoGroup
幣託集團 BitoGroup 成立於2014年,主要業務是加密貨幣交易所、錢包、Web3應用,期望用技術解決問題,用最簡單的方式讓區塊鏈進入每個人的日常生活,協助企業與消費者進入 Web3 時代。幣託集團擁有 80 萬會員,在加密貨幣領域佔有率超過90%,期望打造亞洲最完整的虛擬貨幣生態系。
BitoPro加密貨幣交易所擁有最完整一站式加密貨幣理財服務,致力提供安全、便利、信賴且創新的交易環境。BitoPro已通過金管會洗錢防制聲明, 並與合作銀行進行台幣信託,為台灣首選法幣入金交易所。獲國際標準ISO/IEC 27001資訊安全管理系統認證,並通過比特幣及虛擬通貨發展協會「資訊安全管理政策聲明」。
國北教大 - 數位科技設計學系
由於科技持續地發展與應用,不斷推陳出新的資訊產品,牽動了人們對於數位科技的產品觀點與需求,此一衝擊主導了現在與未來就業市場對於兼備數位科技與視覺設計領域人才的迫切需求。 具備跨領域能力的人才,不僅不可取代性高,在未來也更具備競爭優勢。有鑑於相關人才的迫切需求,本校積極投入相關資源,嘗試以更前瞻、更開放的作法來培養現在與未來的產業所需的人才,而數位科技設計學系的成立,正是國立臺北教育大學積極培養跨領域人才的濫觴。 本校於民國95年8月成立《數位內容設計學系》開始招收一般高中生,以科技、資訊與設計的理論課程為核心,搭配紮實的實作與專題課程,培育學生具備優異的跨領域數位科技設計的專長,畢業學生授予《設計學士學位》。
ANDPAD Inc.
ANDPAD is the No. 1 cloud-based construction project management service in Japan, enabling centralized management from site efficiency to management improvement.There are more than 130,000 companies using the service, thanks to our intuitive, easy-to-use development and our thorough support for installation and operation.Our service is used by more than 330,000 people in the construction and building industry.We are rising to the challenge of changing society with technology, to bring digital transformation to the construction industry.
Ruby Central
Ruby Central is the US non-profit supporting the Ruby community around the world. We organize RubyConf & RailsConf, and fund maintenance and development work on RubyGems.org, Bundler, and other open source projects that Ruby developers use to create, manage, and install gems. To learn more about our work and mission, visit rubycentral.org.
Test IO
Test IO has over a decade of experience and innovation building ‘crowd’ into a powerful, efficient, and impactful quality engine. In addition to Test IO’s crowd based solutions, Test IO offers a range of products and accelerators that can augment Test IO’s quality solutions or be used stand-alone. Offering unmatched scalability, solution customization, expertise across traditional testing solutions, as well as solutions that unlock the full power of AI – Test IO would be proud to help you ship better products with greater confidence, faster, for less.
Zendesk
Zendesk is on a mission to simplify the complexity of business and make it easy for companies and customers to create connections. Our customer experience software unlocks the power of billions of interactions, enabling businesses to build rich, meaningful relationships with their customers. The company was conceived in Copenhagen, Denmark and today operates in more than 20 countries around the world.