Wednesday, June 04, 2025

Shopify Has Been Bad for the Ruby Community in the Last 10 Years

Ever since I took over the Montreal.rb Ruby Meetup 3 years ago, Shopify, which has presence in Montreal (Quebec, Canada), hasn't volunteered a single Ruby/Rails talk nor bothered to contact me to just say Hi and check if I need sponsorship or anything to demonstrate they care about the local Ruby community. Other companies with far less resources have reached out to me to offer talks or sponsorship though, so Shopify has zero excuses here. Shopify lost a lot of merit points because of this. 

During the last RubyConf in 2024 (at which I presented), everyone at the conference was friendly towards me except a small group of Shopify people who I met at a social event on the 3rd day. After I said hello, and was introducing myself, one of them interrupted me to claim he knew me, but then didn’t show any interest in talking or getting to learn how I’m doing or how my RubyConf talk went (everybody else at the conference cared to ask me about that). He looked at the other Shopify folks as if they didn't want me talking to them, so I left thinking it was such a weird interaction. It's one thing if they were busy or had to catch a plane, and they informed me of that in a friendly manner, but the way they treated me as not an equal human being who can be talked to like everyone else at the conference was very discriminatory, and only Shopify folks did that. Nobody else at the entire conference treated me that way. I’ve met people from other famous Ruby shops like GitHub, 37Signals, and Cisco Meraki, and none of them acted that way at all. By the way, a shout out to Cisco Meraki's folks for being the friendliest Rubyists at RubyConf, not just in 2024, but in 2023 as well (at which I presented too)! The irony is Shopify folks act as if they're "above everyone" instead of equal to everyone else, and by acting like that, they end up beneath everyone in merit. 

Around 2013, I actually applied for a job at Shopify when they expanded to Montreal. Given that I had learned Rails from its birthplace, Chicago, and had worked for Groupon, which was larger than Shopify at the time, I thought it would be easy for me to pass the interview as I had passed tough technical interviews with other Rails companies without a problem around that time. The weird thing is during the interview, the Shopify point of contact didn't ask me any technical questions (I mean first interviews are supposed to be technical usually). He met me briefly at a coffeeshop while talking in a way as if he didn't want to be there, and then had me go up to their office to meet other developers on the team I was being interviewed for. I tried to get to know their developers in a friendly manner (the same way I got to know many devs in Chicago when I worked there as a Rails Agile consultant for 6 years before joining Groupon), but suddenly in the middle of my conversation with them, the tech lead asked me very rudely to stop wasting their time. Wait, what! I'm there for an interview, not to waste anyone's time. And, I have the right to interview them just as much as they have the right to interview me. Perhaps, they're the kind of bad company that thinks rushing work produces better work than actually taking the time to discuss things intelligently, I don't know. Or, perhaps, their staff members are all demented and unethical. The next thing I know is I was put in a room with their HR person, so I started excitedly talking about my Rails tech accomplishments, which were very unique (including presenting at RailsConf a year before), but for a very weird reason, he had this extreme apathetic face with lack of interest to hear about my Chicago Rails accomplishments even though I came from a better place in Rails than Montreal. I mean I am pretty sure I had better Rails tech experience than some of their employees at the time. The whole interview was super weird. After two weeks passed without hearing back from them, I called them up, and their HR guy claimed I wasn't that good and that they found a better person. Wait, what! You guys never tested my Rails tech skills! I was a Rails consultant in Chicago who helped coach many people on Ruby on Rails development! I learned Rails at its birthplace! I presented at RailsConf in addition to RubyConf! I am sure that was 100% discrimination against me. There is no other way to explain it. I mean, eventually, I won 2 Fukuoka awards from Matz, the creator of Ruby himself, and spoke 6 times at RailsConf/RubyConf, which confirms 100% that I am not only highly qualified, but also more qualified to work at Shopify than many of their employees who don't have half my accomplishments, let alone I am friendlier than their staff and don't behave in an elite/aloof way. So, again, there is no way I'd get rejected for a job there except because of discrimination. Discrimination is unacceptable. In my opinion, any company that even discriminates against one person on earth must be shut down by the government immediately until their bad practices are cleaned up completely. I actually wrote about the topic of discrimination in the Ruby community in this blog post

I have met ex-Shopify folks that seemed a lot more normal and friendly than current Shopify employees, confirming how there is darkness in Shopify that makes people adopt this mean elitest aloof attitude. It seems after people escape that weird unethical dark environment, they become well-adjusted better people. Some of the people that left Shopify told me that they left it because of weird or disrespectful interactions/practices happening there that drove them away.

Contrary to popular belief and general appearances, the Ruby community has actually degraded, not improved, since Shopify became big about 10 years ago. Gullible devs don't see that, but intelligent devs can see it as clear as day. Before then, Rubyists were very nice (MINASWAN), open-minded, and comfortable with novel unproven open-source projects, supporting countless innovative ideas in the Ruby community while keeping a friendly open dialog about the quirkiness of unproven ideas until proven. Nowadays, Rubyists on Ruby/Rails subreddits meanly downvote any novel open-source ideas that are outside-the-box while openly preferring non-Ruby technologies to Ruby (e.g. React), and Rubyists in the real world often ignore interesting open-source projects without discussing why. I could totally understand it if Rubyists are pushing back because there are valid reasons for why an open-source project isn't a good idea. But, being aloof without being helpful comes across as just ignorant and mean anti-MINASWAN behavior that discourages and kills outside-the-box open-source ideas instead of encouraging them. Especially in cases where Ruby code does provide an astonishing improvement in productivity compared to alternatives in JavaScript or other languages.

Shopify betrayed the Ruby community by not investing their endless resources in building a Ruby based desktop code editor/IDE that would have advanced the Desktop Development story in Ruby, yet lazily defaulting to VSCode even though Ruby as a language could provide a much more productive and maintainable editor building experience than JavaScript. Shopify also betrayed Frontend Ruby options by lazily defaulting to React in the Frontend instead of investing their endless resources into Frontend Ruby, which would have provided leaps and bounds in productivity for everyone in the Ruby on Rails community by comparison. Shopify's actions demonstrate that they don’t really believe in Ruby as they don’t put money where their mouth is regarding Ruby in general outside of standard Rails. 

Additionally, Shopify spent a lot of resources optimizing Ruby when in fact Ruby might have not been the right tool for the job in places where performance optimization was needed as Ruby was already fast enough for its appropriate uses at countless other companies. Shopify could have invested in Crystal and improved integration between Ruby & Crystal in ways that made it a no brainer to upgrade Ruby code to Crystal code with types whenever performance optimization is needed given Crystal's code is so close to Ruby's (though some other open-source efforts helped make a flavour of that possible eventually).

In conclusion, Shopify is part of the problem not the solution in the Ruby community, contributing to the Ruby community becoming mean and anti-MINASWAN as reflected by the behaviour of Shopify people towards me. Companies with far less resources than Shopify have contributed talks to the Montreal.rb Ruby Meetup, which is quite embarrassing to Shopify. In summary, the Ruby community was way better, friendlier, and more open-minded toward innovation before Shopify became a big thing. 

By the way, everybody makes mistakes. The difference between bad people and good people is that when bad people make mistakes, they don't own up and apologize for them. When good people make mistakes, no matter how big, they are always humble enough to own up to error, apologize, and resolve to correct their mistakes. I don't mind it if I stand corrected by having Shopify folks reach out to me to show they care, tell me they think of me as equal to everyone else, agree I deserve to be treated nicely by everyone there, apologize for past unnice behaviour, propose Ruby talks for the Montreal.rb Ruby Meetup, inform me they are willing to support Ruby in Desktop Development and Frontend Development, and confirm they care about upholding MINASWAN in the Ruby community. I’d gladly apologize and remove my posts about them if that happens. Alas, if it doesn't happen, as they say, not making a move is a move. Just like in timed chess, not making a move can result in losing the game, the same thing would happen in real life if Shopify doesn't react at all as that would ding their merit very badly and confirm that I am right all along.

Friday, May 16, 2025

How To Compliment an Open-Source Software Project

The best compliment of an open-source project is using it, even if only in a proof of concept or a toy project.

When I started the first desktop version of the Glimmer project back in 2006, I had multiple coworkers support me by not only trying the project out, but also making contributions to the project via pair-programming.

If somebody ever compliments your open-source project without using it, it means they didn't compliment it at all, yet just lied. 

Beware of fake "open-source supporters". They actually weigh you down by pretending to support you with words alone without actually supporting you with actions. Meaning, they're all talk and no walk. I try to intentionally alienate such people from my open-source projects all the time. They're total trash!!! Not real supporters of open-source software. 

If someone compliments one of your open-source projects, put them on the spot by asking them if they used it. If they didn't, it means they only offered a cheap compliment, so tell them not to compliment your project until they've used it, or else they would be lying because if they didn't even try the project out for themselves, the compliment isn't sincere.


Tuesday, April 22, 2025

Montreal.rb April 2025 Domain Driven Design in Ruby on Rails

The video, slides, and repo for the Montreal.rb April 2025 talk "Domain Driven Design in Ruby on Rails" have been published!

YouTube Video:

https://www.youtube.com/watch?v=JlJLz2dJlhQ&list=PLRAf4zt5oEjc2mqmEN9m_O0JovQCXxvxt&index=17 

Presentation Slides: 

https://docs.google.com/presentation/d/e/2PACX-1vT91M7Aw715dVfewkEn_kcDBjDIBJPN7eB6PH0lEkH41EUFGiL5GANj2rFxIGPU68s4Lm-O8Ch5WHZv/pub?start=false&loop=false&delayms=60000&slide=id.p1

GitHub Repo:

https://docs.google.com/presentation/d/e/2PACX-1vT91M7Aw715dVfewkEn_kcDBjDIBJPN7eB6PH0lEkH41EUFGiL5GANj2rFxIGPU68s4Lm-O8Ch5WHZv/pub?start=false&loop=false&delayms=60000&slide=id.p1

Talk Description:

Software development is not just about translating business requirements into a static software design. It is about ensuring that in the long run, the system can evolve with the business needs and facilitate communication between business people and developers around the business domain in order to quickly and accurately add or modify features. This requires superb knowledge crunching and domain modeling skills.

Domain Driven Design is an approach that Eric Evans popularized in the mid 2000s to address these concerns. It is a process that centers design of software around the business domain.

This presentation will cover several of the topics and ideas in the Domain Driven Design approach (but not all topics of the book):

  • Domain Modeling
  • The Ubiquitous Language
  • Model Driven Design

Additionally, there will be a few code examples to illustrate some of the Domain Driven Design ideas as applied in a Ruby on Rails application.

Monday, March 31, 2025

Addressing Selfish Lame Excuses for Anti-MINASWAN Behavior

When mentioning the problem of Ruby/Rails subreddit members behaving in anti-MINASWAN ways (anti Matz Is Nice And So We Are Nice), some devs give ignorant selfish lame excuses like "Nobody forced you to join those groups!". This is exactly like saying to someone who got poisoned at a restaurant "Nobody forced you to go to that restaurant!", selfishly allowing other people to get poisoned there daily and even die regularly without caring to report the problem and resolve it for the benefit of everyone. Newsflash! If a restaurant does not meet health standards, it must not be open! You cannot allow people there to profit at the expense of other people who visit the restaurant without offering them healthy food and respectful treatment.

The idea of "Nobody forced you to go there" is misapplied here. It does apply if someone is complaining that "Ruby on Rails libraries do not seem to offer the performance characteristics of C/C++". In that case, those devs can go and join a C/C++ subreddit or the subreddits of other more performant statically typed programming languages instead, assuming they received fully respectful non-discriminatory treatment. But, the idea of "Nobody forced you to go there" does NOT apply when basic things like respect and niceness aren't provided equally to everyone, which is a literal form of discrimination! 

In fact, Reddit mods are total hypocrites because they do claim to provide a "safe environment" except they ironically do it with a double-standard discriminatory way by allowing some people who are mean, lazy, and literal haters of Ruby to "feel safe" while making others who are nice, hard-working, and passionate about using Ruby feel unsafe. 

Many Ruby on Rails devs are passive with regards to addressing this covert discrimination because they are indirect benefactors of it. When I hear of discrimination, I don't stay silent. I show concern. I listen. I ask if there is a way to help. In fact, there are Ruby on Rails devs that do those things with a double-standard by ironically discriminating against whoever they lend support to for "discrimination" instead of being against all discrimination for everyone equally. 

Friday, March 28, 2025

2025 Reminder That DHH Is a Total Idiot!

Just a reminder that DHH is a total idiot for not adding any Frontend Ruby tech to the Rails stack in recent years. For the last 10 years, he's pretended to be "forward thinking" and "innovative", but has been closed-minded and standing in the way of progress. He is not what he used to be when he was open-minded in the minded-2000s and helped merge Merb with Rails. Nowadays, he is clearly biased towards JavaScript against Ruby to the detriment of the Ruby community. He claims he is "embracing" JavaScript for "pragmatic reasons", which might sound good on paper and might be something I'd normally agree with, but in fact is hurting the Ruby community significantly as illustrated by the attached JS code examples that many Ruby on Rails devs write nowadays as a result of DHH's closed-mindedness and stupidity. His claim for embracing JavaScript would only be true if there weren't huge differences between JavaScript and Ruby, alas there are enormous differences between the two languages. As such, DHH is an idiot and will always be called idiot unless he humbly corrects his ways and apologizes for destroying the Ruby on Rails community by enabling devs to write code like the attached code in the last 10 years. The blood of such crappy code is on DHH's hands! Only bigger idiots would support DHH's idiotic position. They're all enemies of progress and innovation in the Ruby on Rails community. We all know Hotwire isn't enough, and the Stimulus bit is the part that many devs replace with React.js eventually or from the get-go because it doesn't solve everything effectively and conveniently. By the way, I do not necessarily propose that everyone needs Frontend Ruby as Hotwire could be sufficient for more basic Rails projects, but 100% of devs who use JS libraries like React/Angular/Ember/Vue/Svelte have zero excuses not using Frontend Ruby instead to cut their work by half with much better possibilities facilitated only by the Ruby programming language. The fact that DHH doesn't get that demonstrates how much out of depth and out of touch he's become in Ruby over the last 10 years. 




Tuesday, March 25, 2025

Me vs Typical Members of Ruby/Rails Subreddits

Me vs typical members of the Ruby/Rails subreddits who claim to be gods in Software Development:

  • Me: Have you ever presented at RubyConf, or multiple RubyConfs?
  • Them: No
  • Me: Have you ever presented at RailsConf, or multiple RailsConfs?
  • Them: No
  • Me: Did you ever win a Fukuoka Ruby Award, or multiple Fukuoka Awards?
  • Them: No
  • Me: Do you maintain any Open-Source Software Projects, or award-winning Open-Source Software Projects?
  • Them: No
  • Me: Do you have a Master's Degree in Software Engineering, or a Bachelor in any computing related field?
  • Them: No
  • Me: Do you have 10 years of experience in Software Engineering at least?
  • Them: No
  • Me: But, you think you're a god in Software Development?
  • Them: Yes

🤣🤣🤣🤣🤣 Totally delusional! 🤣🤣🤣🤣🤣 

I mean, my answer to all those questions is Yes, and yet I don't consider myself a god at all! That's because As a Software Engineering professional, I must avoid all "pride" to be able to always stay unbiased and open-minded about better ways of Software Development instead of getting attached to what I know while unintelligently pretending that makes a god. The moment someone thinks they are a god (or even a god to their former selves) is the moment they stop improving and stop performing as well as they could be.

The Ruby/Rails subreddits are currently the biggest embarrassments of the Ruby community as they often contain people who are very unhumble and unnice despite lacking experience and skills, violating the Ruby principle of MINASWAN (Matz Is Nice And So We Are Nice) as they don't give Software Engineers with interesting creative outside the box ideas the benefit of the doubt or any much-needed support, thus embarrassing themselves when such Software Engineers end up winning awards for their ideas by Matz, the creator of Ruby himself (like Glimmer DSL for Web winning at the Fukuoka Prefecture Future IT Initiative 2025 competition). Such subreddits are so badly managed that mean/unhumble developers are excused/enabled while nice/hard-working developers are usually allowed to get mistreated and piled upon there. Ruby & Rails subreddit members literally downvoted my posts about Covert Discrimination to zero, not realizing unintelligently that this ended up offering a 100% irrefutable proof of how discriminatory and hateful they are as anyone who doesn't discriminate would have immediately offered support and concern without double-standards if discrimination is pointed out, saying something like "discrimination is wrong no matter what kind it is!" without actually discriminating live against the individual raising the issue with discrimination as to prove it. 

The silence of the Ruby community about this incriminates everyone who is silent about this no matter who they are. I don't care if it's DHH, the creators of Puma, maintainers of Ruby/Rails, Ruby podcast/newsletter content authors, or whoever else. they're all guilty of being enemies of the Ruby community if they remain silent about this problem or even encourage it to happen because this problem kills good ideas, degrading the Ruby community as a whole. This forces the Ruby community to regress to least common denominator weak ideas that "the majority approves of". Truly good citizens of the Ruby community will follow MINASWAN and call out this anti-MINASWAN behavior in the Ruby/Rails community subreddits continuously until the situation is fixed. Beware of people who claim to believe in MINASWAN but apply it with double-standards, discriminating covertly against certain people.

This issue with lack of humility resulting in delusional incompetence is not limited to Redditors as it happens with everyone who has zero humility despite being lazy and having no degrees, no extensive work experience, no open-source contributions, no awards at any Software/Tech Competitions, no presentations at local meetups, no talks at software conferences, and no sufficient reading of Software Engineering books. It's so counter-productive and embarrassing how such devs who lack humility try to argue nonsense with Software Engineers who are very passionate about Software Engineering with actions not just words alone, are true hard workers, have a solid university degree or more, have more than 10 years of work experience, maintain many open-source projects, present frequently at their local meetups, talk at software conferences, and win awards in Software/Tech Competitions. Remember that a beginner snowboarder can't "school" Shaun White on snowboarding, but if they were humble, they could learn a lot about snowboarding from Shaun White who's won Gold Medals at the Olympics with his snowboarding skills. This problem with lack of humility might also be a form of Covert Discrimination against specific people that are not listened to no matter how experienced and accomplished they might be while listening to others with similar or even less experience/accomplishments. That's a form of discrimination, so it is still embarrassing given that discrimination is unacceptable.

Lack of humility in inexperienced devs is a recipe for disaster as such devs never improve, getting stuck in their mediocrity forever as a result. When I was a Junior-to-Mid-level Software Developer, I was extremely humble and always did my best to defer to the knowledge of more senior Software Developers while learning from them as much as I could. Ignoring the knowledge/experience/advice of more senior Software Developers is 100% the loss of the less experienced devs. By the way, I am not saying that as a Junior/Mid-level Software Developer, I didn't have some ideas that were better than the ideas of the more senior Software Developers. The more senior Software Developers always kept an open dialog with me to explore ideas that they have not thought of. That said, many of my ideas were ones that they already encountered and tested, finding out for themselves whether they are effective or not. I listened humbly to them when they pushed back on some of my ideas instead of "feeling offended" like so many selfish self-obsessed non-humble devs who don't put serving customers at the top of their priorities.

By the way, this post is assuming good ethical hard-working Senior Software Engineers who listen to less experienced Software Developers with a two-way dialog, not mediocre unethical rude ones who shut down dialog completely. I sometimes see some younger devs getting immaturely caught up with the drama of "experience wars" (having the attitude of "I told them! I made them understand I'm right despite not having as many years of experience as they did!") while completely forgetting customers and the focus on selflessly maximizing the use of past experience of all coworkers on a team with selfless teamwork to humbly learn and do the best work possible for customers.

Thankfully, devs that are not humble enough to learn and improve give the rest of us job security when they make fools of themselves! Thank you!!!

Sunday, March 23, 2025

I Am Not a Fan of Ruby

I am not a fan of Ruby. I am mentioning this to dispel any misunderstandings that some devs have about my use of Ruby. I do not have any personal preference for using Ruby. I do not find Ruby's syntax beautiful. I do not think of Ruby code as art or anything like that. I do not like or love Ruby. 

In all circumstances, I only use Ruby as a Software Engineering decision to provide the best solution possible for specific customer functional requirements while weighing Ruby against alternative technology options, such as Java, Python, JavaScript, C++, C, Swift, Lisp, etc... in relation to pros, cons, trade-offs, and non-functional requirements, such as productivity, maintainability, extensibility, and flexibility.

I am a Software Engineer first and a Rubyist as a byproduct of that, always. If a better programming language than Ruby comes along, I would be the first to start using it to solve customer problems more effectively. That said, I will not jump on any newer programming languages just because of peer pressure or hype/buzz when they do not in fact perform better than Ruby in meeting my customer requirements.