18
jream
2y

I don't know if I'm being pranked or not, but I work with my boss and he has the strangest way of doing things.
- Only use PHP
- Keep error_reporting off (for development), Site cannot function if they are on.
- 20,000 lines of functions in a single file, 50% of which was unused, mostly repeated code that could have been reduced massively.
- Zero Code Comments
- Inconsistent variable names, function names, file names -- I was literally project searching for months to find things.
- There is nothing close to a normalized SQL Database, column ID names can't even stay consistent.
- Every query is done with a mysqli wrapper to use legacy mysql functions.
- Most used function is to escape stirngs
- Type-hinting is too strict for the code.
- Most files packed with Inline CSS, JavaScript and PHP - we don't want to use an external file otherwise we'd have to open two of them.
- Do not use a package manger composer because he doesn't have it installed.. Though I told him it's easy on any platform and I'll explain it.
- He downloads a few composer packages he likes and drag/drop them into random folder.
- Uses $_GET to set values and pass them around like a message contianer.
- One file is 6000 lines which is a giant if statement with somewhere close to 7 levels deep of recursion.
- Never removes his old code that bloats things.
- Has functions from a decade ago he would like to save to use some day. Just regular, plain old, PHP functions.
- Always wants to build things from scratch, and re-using a lot of his code that is honestly a weird way of doing almost everything.
- Using CodeIntel, Mess Detectors, Error Detectors is not good or useful.
- Would not deploy to production through any tool I setup, though I was told to. Instead he wrote bash scripts that still make me nervous.
- Often tells me to make something modern/great (reinventing a wheel) and then ends up saying, "I think I'd do it this way... Referes to his code 5 years ago".
- Using isset() breaks things.
- Tens of thousands of undefined variables exist because arrays are creates like $this[][][] = 5;
- Understanding the naming of functions required me to write several documents.
- I had to use #region tags to find places in the code quicker since a router was about 2000 lines of if else statements.
- I used Todo Bookmark extensions in VSCode to mark and flag everything that's a bug.
- Gets upset if I add anything to .gitignore; I tried to tell him it ignores files we don't want, he is though it deleted them for a while.
- He would rather explain every line of code in a mammoth project that follows no human known patterns, includes files that overwrite global scope variables and wants has me do the documentation.
- Open to ideas but when I bring them up such as - This is what most standards suggest, here's a literal example of exactly what you want but easier - He will passively decide against it and end up working on tedious things not very necessary for project release dates.
- On another project I try to write code but he wants to go over every single nook and cranny and stay on the phone the entire day as I watch his screen and Im trying to code.

I would like us all to do well but I do not consider him a programmer but a script-whippersnapper. I find myself trying to to debate the most basic of things (you shouldnt 777 every file), and I need all kinds of evidence before he will do something about it. We need "security" and all kinds of buzz words but I'm scared to death of this code. After several months its a nice place to work but I am convinced I'm being pranked or my boss has very little idea what he's doing. I've worked in a lot of disasters but nothing like this.

We are building an API, I could use something open source to help with anything from validations, routing, ACL but he ends up reinventing the wheel. I have never worked so slow, hindered and baffled at how I am supposed to build anything - nothing is stable, tested, and rarely logical. I suggested many things but he would rather have small talk and reason his way into using things he made.

I could fhave this project 50% done i a Node API i two weeks, pretty fast in a PHP or Python one, but we for reasons I have no idea would rather go slow and literally "build a framework". Two knuckleheads are going to build a PHP REST framework and compete with tested, tried and true open source tools by tens of millions?

I just wanted to rant because this drives me crazy. I have so much stress my neck and shoulder seems like a nerve is pinched. I don't understand what any of this means. I've never met someone who was wrong about so many things but believed they were right. I just don't know what to say so often on call I just say, 'uhh..'. It's like nothing anyone or any authority says matters, I don't know why he asks anything he's going to do things one way, a hard way, only that he can decipher. He's an owner, he's not worried about job security.

Comments
  • 8
    my advice:

    RUN!

    if you can't change some _fundamental_ things about the situation, get out of this quagmire while you still can.
  • 4
    Escape while you still have your sanity and before you burn out
  • 4
    Why are you still there
    Run πŸƒπŸƒπŸƒπŸƒ
  • 1
    Escape, like a bad SQL function. Run like those bash scripts. It sounds like you might be alone on this team? If you don’t have any support you’ll never make changes here. (Speaking from years of wasted experience)
  • 1
    I wondered if he's using version control at all, and was surprised to read about a .gitignore file. Not using version control wouldn't really come at a surprise in such a setting...
  • 0
    And he keeps his company running (for now) since some dumb companies can't move on or modernize, and keep using his legacy software.
  • 2
    No my man you are not pranked you are tortured now leave while you still can!
  • 0
    On one hand, you should leave. You shouldn't have to fight for every line of code you write.

    On the other hand, I feel offended. I can clearly see your bias towards established solutions being superior than custom ones. Granted, your bosses codebase is weird, but apart from several provable security flaws I don’t see objective downsides that aren’t a matter of taste.

    You talk about two knuckleheads and their solutions vs. established frameworks. This is an offensive prejudice towards the establishment that makes vulnerable people like me to never dare to invent something new. Well, I don’t use frameworks. I don’t believe in reusing business-logic code. I write everything from scratch every time I start a new project. It’s called “architecture”. I rarely even need libraries other than a DB driver.

    “Everything is already invented” is the destructive mindset that should die.
  • 0
    The only fundamental thing your boss failed at is lowering cognitive complexity. Everything else is okay.

    And don’t you dare insult bash scripts. They are perfect. My CI/CD is bash exclusively. I’m a CTO.
  • 2
    Fighting is a matter of cultural fit. You don’t fit him, he doesn’t fit you. Maybe you’ll fit a team with other approaches, and he in turn will have a perfect match with some other programmer to whom this codebase feels like home.
  • 1
    Yep, just run run, run like the windπŸ’¨πŸƒ‍♀️
  • 0
    Well I taught him to use git flow as pull requests with 3 other employees. I suggest using many different solutions other than code that has no structure or sense. I am here because it pays a lot. I'm not great at finding jobs. I don't care if we had our own framework but everywhere with look it's an antipattern. I can't type enough how frustrating all this is. I'm trying to tell him how to set a reverse proxy for node, disregards me for hours on the line and just monkeys around into 3 hours later he realizes he has to do EXACTLY what I said and he then explains it to me as if he found something new. At the 7th hour on call watching him haggle together a system and refusing to install git locally to get it to work I am at wits end. I have never worked with someone that disregards everything you say, why do they pay me so much if they don't listen? Nothing makes sense. Then I get told we got to stop setting things up, I'm like I was set up with node in 5 minutes its you drinking around!
  • 0
    He is a solo programmer from before the time where large software design / architecture actually had some love. Or he never bothered to read up on the stuff...

    Action guy, just dives in and codes. Most solo programmers who don't work for a sufficiently large company are like that.

    Just take the money. Do your own thing on the side. Save. Invest. Retire. Don't sweat it too much. YOLO.
Add Comment