167

I absolutely HATE "web developers" who call you in to fix their FooBar'd mess, yet can't stop themselves from dictating what you should and shouldn't do, especially when they have no idea what they're doing.

So I get called in to a job improving the performance of a Magento site (and let's just say I have no love for Magento for a number of reasons) because this "developer" enabled Redis and expected everything to be lightning fast. Maybe he thought "Redis" was the name of a magical sorcerer living in the server. A master conjurer capable of weaving mystical time-altering spells to inexplicably improve the performance. Who knows?

This guy claims he spent "months" trying to figure out why the website couldn't load faster than 7 seconds at best, and his employer is demanding a resolution so he stops losing conversions. I usually try to avoid Magento because of all the headaches that come with it, but I figured "sure, why not?" I mean, he built the website less than a year ago, so how bad can it really be? Well...let's see how fast you all can facepalm:

1.) The website was built brand new on Magento 1.9.2.4...what? I mean, if this were built a few years back, that would be a different story, but building a fresh Magento website in 2017 in 1.x? I asked him why he did that...his answer absolutely floored me: "because PHP 5.5 was the best choice at the time for speed and performance..." What?!

2.) The ONLY optimization done on the website was Redis cache being enabled. No merged CSS/JS, no use of a CDN, no image optimization, no gzip, no expires rules. Just Redis...

3.) Now to say the website was poorly coded was an understatement. This wasn't the worst coding I've seen, but it was far from acceptable. There was no organization whatsoever. Templates and skin assets are being called from across 12 different locations on the server, making tracking down and finding a snippet to fix downright annoying.

But not only that, the home page itself had 83 custom database queries to load the products on the page. He said this was so he could load products from several different categories and custom tables to show on the page. I asked him why he didn't just call a few join queries, and he had no idea what I was talking about.

4.) Almost every image on the website was a .PNG file, 2000x2000 px and lossless. The home page alone was 22MB just from images.

There were several other issues, but those 4 should be enough to paint a good picture. The client wanted this all done in a week for less than $500. We laughed. But we agreed on the price only because of a long relationship and because they have some referrals they got us in the door with. But we told them it would get done on our time, not theirs. So I copied the website to our server as a test bed and got to work.

After numerous hours of bug fixes, recoding queries, disabling Redis and opting for higher innodb cache (more on that later), image optimization, js/css/html combining, render-unblocking and minification, lazyloading images tweaking Magento to work with PHP7, installing OpCache and setting up basic htaccess optimizations, we smash the loading time down to 1.2 seconds total, and most of that time was for external JavaScript plugins deemed "necessary". Time to First Byte went from a staggering 2.2 seconds to about 45ms. Needless to say, we kicked its ass.

So I show their developer the changes and he's stunned. He says he'll tell the hosting provider create a new server set up to migrate the optimized site over and cut over to, because taking the live website down for maintenance for even an hour or two in the middle of the night is "unacceptable".

So trying to be cool about it, I tell him I'd be happy to configure the server to the exact specifications needed. He says "we can't do that". I look at him confused. "What do you mean we 'can't'?" He tells me that even though this is a dedicated server, the provider doesn't allow any access other than a jailed shell account and cPanel access. What?! This is a company averaging 3 million+ per year in revenue. Why don't they have an IT manager overseeing everything? Apparently for them, they're too cheap for that, so they went with a "managed dedicated server", "managed" apparently meaning "you only get to use it like a shared host".

So after countless phone calls arguing with the hosting provider, they agree to make our changes. Then the client's developer starts getting nasty out of nowhere. He says my optimizations are not acceptable because I'm not using Redis cache, and now the client is threatening to walk away without paying us.

So I guess the overall message from this rant is not so much about the situation, but the developer and countless others like him that are clueless, but try to speak from a position of authority.

If we as developers don't stop challenging each other in a measuring contest and learn to let go when we need help, we can get a lot more done and prevent losing clients. </rant>

Comments
  • 25
    Welcome! You write crystal english, I am a little surprised you dont appear slighly bothered...

    We need more people like you here
  • 15
    @carlosjpc Thanks, I appreciate that. And I'm definitely bothered, but there's no use raging over stupidity.
  • 9
    I am impressed with those numbers. You really crushed it.

    Too bad some people are too dense to appreciate it.

    Good show!
  • 4
    Great job sir, and welcome to devRant
    Why don't you get an avatar?
  • 5
    @JMoodyFWD yeah you are right but this kind of people should learn things or die.
  • 13
    Wtf?

    "Yeah, its 10 times better but you are not using redis"

    Lol, I think I would schedule a meeting and humiliate him in front of his superiors and peers.

    Don't you guys have a contract? They can't walk away like that.

    Why is his company listening to a fucktard that fucked up things in the first place?
  • 2
    Beautiful rant :)
  • 4
    I mean, if I am the client and it had that much improvement, I wouldn't ask questions. You did animal sacrifices to make it faster? It won't give away secure information? Ok, here is your money
  • 2
    He [client's developer] just wants to keep his job man.

    Try to work it out with him -_-''
  • 2
    I understand the struggles of working with Magento, especially Magento 1.x
  • 2
    @JMoodyFWD Someone give this guy a higher rank for writing that long post.
  • 2
    You shat all over the devs ego, he bit back.

    It happens and it fucking sucks. I mean, he spent months trying to fix it and you guys got it done and in a better way.

    Most people can’t handle saying they’re wrong and need to learn something, especially if they feel like their job security is (even potentially) on the line.
  • 1
    Another company powered by managers haven't given a fuck about hiring decent CTO and paying him decent money. So this is what happens when you hire smily ass do-all guy with shiny resume who claims to be able to do everything.

    Bet he sold himself with that "first-hand redis experience" and "excellent php knowledge" buzzwords.

    Always check github. If he doesn't have a github profile, it's 95% that his claimed skills are bullshit. If you can't check it and interview him by yourself, ask fellow tech lead or CTO to interview a programmer for you. It's better to pay trusty IT guy a 500$ for that once than to lose all your money and time funding your own failure.
  • 1
    what a jerk dev. thank you for writing much details
Add Comment