Ruby Rogues

Charles Max Wood, Darren Broemmer, Dave Kimura, John Epperson, Luke Stutters, Valentino Stoll, Andrew Mason, Nate Hopkins, Matt Smith, Tom Rossi, David Richards, Jason Swett, Eric Berry, Brian Hogan, Catherine Meyers, Jerome Hardaway, Coraline Ada Ehmke, Jessica Kerr, Saron Yitbarek, David Brady, Sam Livingston-Gray, Avdi Grimm, Peter Cooper, Aaron Patterson, James Edward Gray , Katrina Owen, Josh Susser, Mandy Moore, Gregory Brown


Our original panel podcast, Ruby Rogues is a weekly discussion around Ruby, Rails, software development, and the community around Ruby.

Available on


704 episodes

Bidirectional Code Generation - RUBY 558

* * Imagine a tool that lets you write templates that can generate code, but also parse that code back into the initial variables.  Depending on how flexible your templates are, it can even parse code that has been modified by hand after generation.  Today on the show, the panel interviews Lucas Luitjes, creator of Monocle, the tool that allows for this kind of integration. * In this episode… __ __ * Connect with Lucas via email: SPONSORS __ __ * LINKS __ __ * PICKS __ Charles- Just One | Board Game - BoardGameGeek Charles- 1883 (TV Series 2021–2022) - IMDb Charles- Top End Devs Conferences __ *

Aug 10
Vendor and Infrastructure Lock-In - RUBY 557

* * Vendor lock-in refers to a situation whereby the cost of switching to a different vendor or platform is so high that you are essentially stuck with the original platform.  Today on the show, Charles and Dave share personal stories of how they were forced to continue using a specific platform and what they did to rectify the various scenarios, plus they provide their insights on workaround strategies and how to prevent this from happening in the first place. IN THIS EPISODE… * __ __ * SPONSORS __ __ * PICKS __ Charles- DICE FORGE Charles- - TOP END DEVS Charles- 1883 - YELLOWSTONE PREQUEL (OFFICIAL SITE) WATCH ON PARAMOUNT+ __ * *

Aug 03
RAILS_ENV - Ruby 556

* * How do you manage your actual rails environment configurations?  When you create a new rails application, do you utilize the provided development, test, and production environments, or deviate?  Today on the show, Dave and Valentino share their best practices on how they manage their environment variables and workflows within their rails environments. IN THIS EPISODE… * __ __ * SPONSORS __ __ * PICKS __ Dave- RESCUE Outdoor Reusable Fly Trap FTR-SF4 Dave- Glide Gear TMP 100 - Shoot Smartphone/ DSLR Camera to Prompt Tablet/ Smartphone Teleprompter Valentino- rubyatscale Valentino- Cloudflare's wall of lava lamps used to generate randomness for cryptographic key generation __

Jul 27
Managing Files and Text in Rails with ActiveStorage and ActionText - Ruby 555

* * Today on the show, Charles shares about his current projects and inner workings related to managing files and text on his various podcast portals.  The panel discusses their history with legacy platforms, their personal tool preferences, and the pros and cons of ActiveStorage and ActionText. * In this episode… __ __ * SPONSORS __ __ * LINKS __ __ * Picks__ Charles- Marvel Legendary Dark City Board Game Charles- Vistaprint US Online Printing: Business Cards, Signage & More John- Glen Scotia 15 Year Old Scotch Whisky : The Whisky Exchange John- Drag and Drop File Uploads with Dropzone and StimulusReflex Valentino- Creating Excellent Developer User Experiences with Github Actions Valentino- Useful utilities and toys over DNS Valentino- doitlive - doitlive 4.2.1 documentation __

Jul 20
Build an Admin for Your Rails App Easily with Avo - Bonus

* * Today Charles talks with Adrian Marin, a developer and founder of Avo, a Ruby on Rails admin framework.  Coming with 10 years of developer experience, we discuss how Avo sets itself apart from other typical systems by allowing you to step out of the limitations of DSL and write custom code to meet the needs of each customer.  We discuss the three main parts of this fully tested framework, and talk about how you can kick the tires before diving in.  With such a wide range of companies successfully utilizing Avo, it’s something definitely worth checking out! LINKS __ __

Jul 15
Build an Admin for Your Rails App Easily with Avo - Bonus

* * Today Charles talks with Adrian Marin, a developer and founder of Avo, a Ruby on Rails admin framework.  Coming with 10 years of developer experience, we discuss how Avo sets itself apart from other typical systems by allowing you to step out of the limitations of DSL and write custom code to meet the needs of each customer.  We discuss the three main parts of this fully tested framework, and talk about how you can kick the tires before diving in.  With such a wide range of companies successfully utilizing Avo, it’s something definitely worth checking out! LINKS __ __

Jul 15
Speed Up Your Rails App by Lazy Loading Your N+1 Queries - RUBY 554

* * Wouldn't it be great if ActiveRecord didn't make you think about eager loading and it just did the "right" thing by default?  Lazy loading is extremely helpful when the list of associations to load is determined dynamically.  Today on the show, Charles and Luke interview Evgeniy Demin, Principal Engineer at Toptal.  They discuss how you can speed up your processes by lazy loading your N+1 queries, plus various tools to optimize your workflows. * In this episode… __ __ * SPONSORS __ __ * LINKS __ __ * PICKS __ Charles- PODFEST EXPO | Where Your Voice Matters Charles- Legendary: A Marvel Deck Building Game - Guardians of the Galaxy Charles- Vistaprint US Online Printing: Business Cards, Signage & More Charles- Products Charles - Winco Foods Evgeniy - Toptal Evgeniy - Telltale Games Luke- Watch The Lincoln Lawyer | Netflix Official Site __

Jul 13
A Novel Type and Effect-Guided Synthesis Tool for Ruby with Sankha Guria - RUBY 553

* * In recent years, researchers have explored component-based synthesis, which aims to automatically construct programs that operate by composing calls to existing APIs.  However, prior work has not considered efficient synthesis of methods with side effects that update a database.  Today on the show, Sankha Guria shares about his research in this area, introducing a new approach to type and effect-guided synthesis tools for Ruby. * In this episode… __ __ * SPONSORS __ __ * LINKS __ __ * PICKS __ Luke- A better zip bomb Luke- Shawn Hymel – Tiny ML Sankha- Scythe Valentino - Stripe __

Jul 06
Development on the Road - RUBY 552

* * How do you develop remotely in new ecosystems such as when you are on vacation, in a coffee shop, or traveling for business?  The panel today discusses various strategies on how to manage these environments to achieve the most efficient outcomes. IN THIS EPISODE… * __ __ * SPONSORS __ __ * LINKS __ __ * PICKS __ Charles - Unlock! Charles- Podcast Hosting and Analytics - Welcome to Fireside! Charles- Conferences | Top End Devs Dave- ZenScreen MB14AC|Monitors|ASUS Global Luke- GitHub - evrencoskun/TableView Luke- GitHub - jeremyevans/rodauth John- Anker PowerCore III Elite 25600 mah 87W USB-C PD Portable Charger Black A1291H11-1 - Best Buy John- Railsconf 2022 __

Jun 29
Kafka and Karafka Integrations with Maciej Mensfeld - RUBY 550

Making his second appearance on the podcast, Maciej Mensfeld joins the show to share his latest developments with his Kafka and Karafka integrations and libraries. He shares his framework for Kafka 2.0, his personal approach to Rails, and how to integrate Kafka and Karafka most effectively. The panel also discusses regulation and security risks with open-source libraries for developers. About this Episode… What is Kafka and Karafka and how are they used? The Rails mindset with Kafka and Karafka vs. batches What is making Karafka faster? Open-source libraries and regulation and security risks Sponsors Top End Devs ( Coaching | Top End Devs ( Links Apache Kafka ( GitHub - karafka/karafka: Framework for Apache Kafka based Ruby and Rails applications development. ( Closer to Code ( Mitigate Open Source Supply Chain Risks ( GitHub:Maciej Mensfeld ( Picks Charles- Legendary: A Marvel Deck Building Game ( Charles- FTP and SSH online - upload, edit, copy, move, rename & more ( Charles - ( Dave- Thunderbolt 4 Pro Cable (3 m) ( John- Speyside Single Malt Scotch Whisky | Aberlour ( John- OS 10 - Wikipedia ( Maciej- 100 W 1.5 Ohms Resistors ( Valentino- Lint Filenames - GitHub Marketplace ( Valentino- GitHub - domialex/Sidekick: A Path of Exile helper ( Valentino- Scoped gems proposal by mullermp · Pull Request #40 · rubygems/rfcs ( Special Guest: Maciej Mensfeld.

1h 10m
Jun 15
Your Tools Matter: Should you change your tooling? - RUBY 549

John Epperson and Luke Stutters discuss developer tools - whether those are the IDEs or Text Editors we use, the gems/libraries we include in our projects, or the OS we make use of. We talk about How we decide to replace our tools, and we talk about a number of tools that we use, the ones that we like and the ones that we wish had better replacements. Sponsors Top End Devs ( Raygun | Click here to get started on your free 14-day trial ( Coaching | Top End Devs ( Picks John- Turbo, the speed of a single-page web application without having to write any JavaScript ( John- Use Stimulus in your Ruby on Rails app ( John- Ever:J Clothing line ( Luke - 2022 State of Software Engineers ( Luke- GitHub - ankane/pgsync ( Luke- Panels and System Monitoring - Victron Energy (

1h 15m
Jun 08
Be a 1x Developer - RUBY 548

A 10x developer is defined as a professional who is 10 times more productive than other developers with an equal level of expertise in the field. Accordingly, a 10x developer would be able to complete 10 times more tasks and writes 10 times better code than any other competent member of their team working in the same conditions. Does a 10x developer exist, or is this a myth? Today on the show, Charles and Valentino parse out this philosophy by comparing a 1x developer vs. a 10x developer. In this episode… What do you expect out of a programmer? Increasing work output on a team The ego of a programmer Being a team player Sustaining a steady pace toward a common goal The time to fix things is now Focusing on your team and output Sponsors Top End Devs ( Coaching | Top End Devs ( Links 1x Programming ( Picks Charles - Game pigeon ( Charles - Signs on the Cheap ( Charles - ( Charles - Podio ( Charles - Top End Devs ( Valentino - Ninja Keys Library ( Valentino - ( Valentino - Rust and Ruby Integration (

Jun 01
Desktop Apps in Ruby ft. Andy - RUBY 547

Andy Maleh joins the show today to share his opensource desktop development library app for Ruby, Glimmer. Enjoy hearing about why and how Andy created Glimmer, specific applications for implementation, comparison to other apps, DSL framework, using widgets within Glimmer, feature additives, testing, and various compatibilities. In this episode… What is Glimmer and how does it work The story on why Andy built Glimmer The DSL framework Using widgets in Glimmer Distribution for Glimmer Missing features in Glimmer Compatibility with RubyMotion How to test with Glimmer Sponsors Top End Devs ( Coaching | Top End Devs ( Links Code Master Blog: Glimmer ( Glimmer DSL for SWT Video Tutorial 1 - Hello, World! - YouTube ( GitHub: AndyObtiva/glimmer ( Picks Charles- Pandemic Iberia ( Charles- Podio ( Charles- ( Charles- GlobiMail ( Charles- RightSignature ( Charles- TopEndDevs | Conferences ( Dave- StickerMule ( John- Avocados ( John- GitHub: ankane/pretender ( Luke- PwnFunction - YouTube ( Special Guest: Andy Maleh.

1h 7m
May 25
The Joy Of Structs - RUBY 546

Is it a class? Is it a hash? No, it's Ruby Struct! Brooke Kuhlmann joins the Rogues to explore this often-overlooked object. We extend simple structs with refinements, use pattern matching to compress complex logic and close the door on OpenStructs. Brooke talks about the challenges and rewards of introducing busy teams to advanced techiques, software craftsmanship and the transformational philosophy of ( Sponsors Top End Devs ( Raygun | Click here to get started on your free 14-day trial ( Coaching | Top End Devs ( Links Ruby Refinements | Alchemists ( Refinements | Alchemists ( Class: Pathname (Ruby 2.6.3) ( dry-rb - dry-monads v1.3 - Introduction ( What's New in Python 2.6 ( GitHub - troessner/reek ( Software Craftsmanship and Code Retreats with Corey Haines ( Master the Object Oriented Mindset in Ruby and Rails - ( Picks Brooke- Polished Ruby Programming ( Brooke- Everdell ( Luke- | Fantastic Beasts: The Secrets of Dumbledore | Movies ( Luke- Ruby Pattern Matching by Brooke Kuhlmann of the Alchemists Collective - YouTube ( Valentino- GitHub - thisredone/rb ( Valentino- What About A Plain Text Web - Earthly Blog ( Valentino- A morse themed arcade rhythm game ( Special Guest: Brooke Kuhlmann.

1h 18m
May 18
Railway Oriented Development and DRY-Monads - RUBY 545

It's not every day that you learn a new approach to error handling for Ruby. Today Abiodun Olowode shares her insights with railway oriented programming (ROP), a functional programming technique that allows sequential execution of functions, not necessarily synchronous. The key concept is that each function can only accept and return Container of either Success or Failure. They also dive into the topic of dry monads, the gems that helps you achieve railway oriented programming in that it helps bind your methods together and give you a success or failure result. In this Episode… What is railway oriented programming (ROP) Examples of ROP and dry monads Limitations of dry monads How to test your configurations Dry schema implications What is the developer culture like in Nigeria, Africa? Links Railway Oriented Programming In Rails Using Dry-Monads - Honeybadger Developer Blog ( Picks Abiodun- Bridgerton ( Charles- Scythe: Invaders from Afar ( Charles- ( Charles- ( Luke- A new bootable USB solution Luke- Front end load library ( Special Guest: Abiodun Olowode .

May 11
GraphQL with David Sanchez - RUBY 544

GraphQL is a flexible, strongly-typed query language. It's useful because it gives front-end developers the ability to query the database without many changes to the back-end. In this episode, David Sanchez explains how to design and build GraphQL APIs in Rails. In this Episode… What is GraphQL and how do you get started with it? What are the advantages and disadvantages of GraphQL? What is REST and how do you integrate in your workflow? Common misconceptions with GraphQL What is GraphiQL and how does it differ from GraphQL? How to use max_depth in your queries. Sponsors Top End Devs ( Raygun | Click here to get started on your free 14-day trial ( Coaching | Top End Devs ( Links GraphQL APIs in Rails ( Codeando ( Twitter: David Sanchez ( @SanchezDav90 ) ( Picks David- GraphQL APIs in Rails ( Luke- Build something new and fun at your local MakerSpaces ( Valentino- RubyConf 2021 video favorites playlist ( Valentino- A Wordle alternative called Hurdle ( Special Guest: David Sanchez.

May 08
Isolator with Sidekiq - RUBY 543

Anton Ivanopoulos joins the show today to share his approach with using Isolator and Sidekiq to ensure simple, efficient background jobs for Ruby. Discover how Isolator and Sidekiq integrate and how you can have more reliable message processing, group jobs into a set to follow their progress, and ultimately stop worrying about queues and focus on your app. Anton shares his story how he moved from delayed jobs to Sidekiq and why he replaced his backend and why Sidekiq is more effective in the long run. In this Episode… What is Isolator and how does it integrate with Sidekiq? A new way to catch the errors and add confidence and reliability message processing. How to build good habits, moving deploys from being atomic things to things where there is continuous deployment for efficient background jobs. Sponsors Top End Devs ( Coaching | Top End Devs ( Links Do you want to take your career to the next level? Access a free coaching session with Charles Max Wood today ( Listen to these podcasts, ad free, with Top End Devs Premium! ( Delivering Video with Less than 1s Latency with CacheFly ( Picks Anton – Spirit Island Board Game ( Charles – The Lost Ruins Of Arnak Board Game ( Charles – Rails Remote Conf ( John – GitHub: importmap-rails ( John – Turbo ( John – Stimulus ( Valentino – Julia Evans ( Special Guest: Anton Ivanopoulos.

Apr 28
Propshaft with David Heinemeier Hansson (DHH) - RUBY 542

David Heinemeier Hansson (DHH) creator of Ruby on Rails joins the Rogues to discuss the successor to the asset pipeline and webpacker that's coming in the next version of Ruby on Rails. He talks through the differences between the asset pipeline, webpacker, and propshaft and talks about the reasons you may or may not want to use each solution. Sponsors Top End Devs ( Raygun | Click here to get started on your free 14-day trial ( Coaching | Top End Devs ( Links David Heinemeier Hansson (DHH) ( David Heinemeier Hansson ( Picks Charles- Dice Forge | Board Game | BoardGameGeek ( Charles- BoardGameGeek – Gaming Unplugged Since 2000 ( Charles- is coming soon ( Dave- Drifting Ruby: Ruby on Rails Screencasts for Web Developers ( David- Social Warming - Oneworld Publications ( David- Mailbrew - Your personal email digest ( John- CoffeeScript ( John- GitHub: importmap-rails ( John- 15 Year Old Whisky ( Luke- Rework: Build Half a Product, Not a Half-Assed Project ( Valentino- Women Streamers, Programmers and Game Developers Valentino- PacketAI: World's first Autonomous Monitoring Solution ( Special Guest: David Heinemeier Hansson.

1h 18m
Apr 20
Styler and Ruby with Benito Serna - RUBY 541

Ever feel like your code isn’t “Stylish” enough? Us too. In this episode, the Rogues sit down Benito Sandoval, the author of the Ruby tool Styler that’ll help you customize your UI and keep things running smoothly. “My goal was to create something that allowed you to compose classes and use them in your templates.” - Benito Sandoval In This Episode 1) How to STOP relying on the tail-end and customize your UI using Styler 2) Why Styler is an excellent solution compared to defining classes yourself 3) The TRUTH about partials and when to/not to use them Sponsors Top End Devs ( Coaching | Top End Devs ( Links Styler, a tool to compose css classes with ruby ( The source code of the tool ( A little post that introduces a list of examples with styler and tachyons ( The actual list of examples with styler and tachyons ( The code of the list of examples that also uses styler ( Picks Benito- Utopia ( Benito- Action Scopes in Rails Charles- Taco Cat Goat Cheese Pizza ( Charles- Death on the Nile ( Charles- ( for upcoming meetups! Luke- Ruby Conf 2013 - REPL driven development with Pry by Conrad Irwin ( Luke- Blynk IoT platform ( Valentino- Taking our Ruby & Kafka stack to the next level ( Valentino- Ruby Together ( Special Guest: Benito Serna.

Apr 12
Understanding the Red Tape - RUBY 540

If you’re a solo developer who’s making the switch to a company, this episode is for you. Today, the Ruby Rogues discuss how to navigate the red tape and stand out at your new job. In This Episode 1) How adapt your home processes to a company WITHOUT reinventing everything 2) Why you NEED to master the art of “code review” (and no, software can’t do it for you!) 3) The TRUTH about gems (and why the issue isn’t black and white) Sponsors Top End Devs ( Raygun | Click here to get started on your free 14-day trial ( Coaching | Top End Devs ( Picks Charles- Dice Forge | Board Game | BoardGameGeek ( Charles- Mergify ( Dave- Plausible ( Dave- Take ownership for your actions, especially with kids John- Home - Docker ( John- Glen Scotia | Campeltown Whisky ( Valentino- GitHub: reenhanced/gitreflow ( Valentino- ( Valentino- Avdi Grimm - No Code - Southeast Ruby 2017 - YouTube (

1h 14m
Apr 06
Service Objects for Legacy Projects with Petr Hlavicka - RUBY 529

Before you jump into legacy codebases and controllers, you need some info. In this episode, John sits down with Petr Hlavicka, a Rails developer who’s passionate about simplifying this section of Rails and helping people along the way. “I want to make everything easier for me and my colleagues. I want it to be easily understandable even for juniors. And just because you do things differently doesn’t mean it’s wrong.” - Petr Hlavicka In This Episode 1) What you NEED to know about legacy codebase projects before you jump in 2) Petr’s go-to tactics for separating business logic from controllers (without going insane) 3) How you can leverage articles and feedback to simplify complex issues and make your life easier Sponsors Top End Devs ( Raygun | Click here to get started on your free 14-day trial ( Coaching | Top End Devs ( Links GitHub: Petr Hlavicka ( CiTroNaK ) ( Picks John- Beginner Drone John- Counterweights for Boom mic stands Petr- Phone gimbals Petr- Tabletop RPGs Special Guest: Petr Hlavicka.

Mar 16
Audit Logging in Rails - 538

If you think all audits suck, think again. In this episode, the Rogues sit down with Jeremy Smith, a developer and writer who’s ready to show us the RIGHT way to implement audit logs in Rails. “I want to be cautious about how much I bring into a code base. As gems grow, they accumulate more functionality.” - Jeremy Smith In This Episode 1) Why you NEED audit logs in Rails this year (and how to keep your clients happy with them) 2) Jeremy’s recommendation for top-notch audit gems 3) The answer to “Build it or Buy it?” to keep your code (and your business) tidy Check out Jeremy’s work: Audit Logging in Rails 2 Sponsors Top End Devs ( Coachong | Top End Devs ( Picks Charles- 7 Wonders Duel | Board Game | BoardGameGeek ( Charles- Encanto | Disney Movies ( Charles- Airmeet ( Jeremy- The Trusted Advisor ( Jeremy- Brian Lovin ( Jeremy- How I Built a Date Picker - Decoding ( Luke- Clean Agile by Robert C. Martin | Audiobook | ( Luke- Effective Testing with RSpec 3 ( Valentino- Github Codespaces is Great, but Mutagen is Better ( Valentino- Light up your WFH meetings with HomeKit ( Special Guest: Jeremy Smith.

1h 3m
Mar 09
Async Ruby - RUBY 537

Not a fan of typical Ruby? We got you. In this episode, the Rogues talk with Bruno Sutic, an Async Ruby developer who will convince you why Async Ruby is a fantastic and stable alternative. “Async Ruby was invited to Ruby’s standard library, so it’ll enjoy the support of Ruby.” - Bruno Sutic In This Episode 1) What you NEED to know about Async Ruby if you’re new to it 2) Why Async Ruby is SUPER promising for 2022 and beyond 3) The ONE thing Ruby’s creator regrets (and what it reveals about Ruby!) Sponsors Top End Devs ( Raygun | Click here to get started on your free 14-day trial ( Coaching | Top End Devs ( Picks Bruno- RSS Charles- Wavelength | Board Game | BoardGameGeek ( Charles- Upcoming workshops at (! John- A’bunadh Scotch Whisky John- RailsBump ( Valentino- SmarTek-Home ( Valentino- Timescale: Time-series data simplified ( Valentino- Brad Frost A/B Bird Feeder Special Guest: Bruno Sutic.

1h 1m
Mar 02
The State of State Machines - RUBY 536

Interested in state machines? We’re not sure you should be…but it depends. In this episode, the Rogues discuss the merits of state machines and how to know if you actually need one…or if you just need to do some soul searching. They lay out the KEY to organizing your code, how automobile analogies will help you simplify your situation, and what to know about callbacks, records, and controllers this year. In This Episode 1) Why you probably don’t need a state machine (with SOME exceptions) 2) How remembering “the car and its oil level” keeps you from overcomplicating your situation 3) The BEST tools for organizing your code and reducing headaches 4) Do’s and don’ts of callbacks, records, and controllers in 2022 (hint: go slow and steady!) Sponsors Top End Devs ( Coaching | Top End Devs ( Picks Charles- Calico | Board Game | BoardGameGeek ( (Great to play with your kiddos!) Charles- Invest time and money in your local economy Dave- Airthings CO2 ( Dave- AlgenAir ( Luke- MacBook M1 Luke- Wire touch turn off hack Luke- Uninstall Polkit Luke- Join your local professional developers’ society! (ACM in the States) Valentino- 99 Bottles of OOP - 2nd Edition ( Valentino- ELEGOO Saturn MSLA 3D Printer ( Valentino- GitLab V2.35 (

1h 8m
Feb 23
How to Migrate to Rails 7 - RUBY 535

Rails 7 is HERE and we’re pumped. In this episode, the Ruby Rogues discuss all things migration, including the BEST method for a safe move, why you NEED to learn about “Turbo Frames” to streamline your Rails 7 experience, and everything you need to know about gems to help you stay on track. In This Episode 1) The CORRECT way to migrate to Rails 7 (and the best tools to get the job done) 2) Why learning “Turbo Frames” will make your Rails 7 experience WAY easier 3) The BIGGEST perks of Rails 7 (and why you’ll feel inspired using them!) 4) How to get your gems up and running in Rails 7 WITHOUT slowing you down Sponsors Top End Devs ( Raygun | Click here to get started on your free 14-day trial ( Coaching | Top End Devs ( Picks Dave- Right Angle USB-C extension adaptor Dave- ASUS 14in USB-C powered monitor John- Rails Dev John- Amazon for building your own PC John- PCPartPicker ( Luke- Cruiser 3D Printer Luke- Tinkercad | Create 3D digital designs with online CAD ( Valentino- Developer Conference Agenda 2022 Valentino- 12x6 LCD Panel

1h 8m
Feb 16