My code works. I have no idea why. Closed/proprietary systems are a mystery.

Signs You Might Be Working for Amateurs


In case you haven't noticed yet, I've been absent from this site and Noise for a few days, which is likely to carry on for the rest of this month (and possibly longer, depending on how things go). That's because I've got a job working freelance for an international Web development firm. As it turns out, they're a bunch of amateurs.

First impressions of the system on which I'm working are as follows:

1. The developer documentation for it is possibly as large as the manual for the language in which it's writ. (It's over 400 pages of small print.) That's usually indicative of a problem (bloat/complexity, if nothing else). I don't even want to know how many thousands of lines of code are contained therein.

2. The core of the system cannot be accessed, debugged or stepped through, because it's (apparently) encrypted (and only unencrypted at run time). The developers are not given the keys.

3. Developers do not have access to the source code for the core, only for/to add-on modules. Any faults in the core will remain as-is unless a new system is built (which seems unlikely). Ironically, it's touted as an "open-source" system. How the hell am I supposed to analyse/debug/understand the code if I can't run/step through it on my own machine, with break points, instead relying on having to insert var_dump() and print_r() calls everywhere I want to inspect the state of things (all while hoping I don't make a typo, call the wrong function or supply arguments/parameters in the wrong order)? How the hell am I supposed to be efficient/productive with one hand tied behind my back, the only test environment being a test server to which I have to FTP an entire file (not even diffs) every time I change it? I'm not fast at the best of times. There's paranoia and secrecy in protecting one's IP and then there's sheer idiocy.

4. All of the logic of the system passes through index.php (and it's not an MVC-based system, as far as I can tell).

5. It looks like it was built in the early-to-mid 2000s and hasn't been redesigned/significantly updated since. (The interface is as ugly and non-responsive as you'd expect from that description. Oh, how I yearn for Bootstrap or Foundation.)

6. I'm the only one on the team whom uses GNU/Linux. At least I get to use my own computer(s) and am not forced to use Windows, which would further slow me down. The problem is that I have to commit my files with CRLF line endings, for the other developers. Trying to configure git to respect that is not trivial (since it expects things to be checked in/pushed with LF line endings, which is sensible).

7. Changes to the code are pushed to the main branch (instead of develop) after testing by a single developer (usually the one whom wrote it, as opposed to the team lead and client liaison).

8. The company doesn't even use a dedicated hosting provider for its own site and email; it's all done through Google/Gmail.

9. Despite all the attempts at secrecy/locking-down the system, the entire thing appears to operate on passing parameters through $_GET[] (chiefly ?class=class_name&method=method_name) to index.php, along with some &global['property']=value tomfoolery, effectively making it possible for anyone with knowledge of PHP (and how to write modules for the system) to execute arbitrary code on it (with the caveat that the UID of the user running it is logged.) Looking through that in browser history (and stack traces in error logs) is possibly going to be an effective way for me to get to grips with the API if the extensive documentation proves to not be such a means.

I don't want to hold up Drupal as a shining example of a good framework/system (because it became a bloated and cumbersome behemoth), but it's what I know and it's definitely better/cleaner than with what I'm working now. It's like these folks looked at Drupal, misunderstood it and decided to build something worse, which is impressive for the wrong reason(s).

I'll probably find more that's obstructive/suboptimal (if not outright wrong) with the code and how the company operates as I progress (including reading the manual). For now, I just want to get a month's work done (preferably three), get paid and look for a better job. Since I can't afford to be fussy, I've got to stick with it until I'm in a better position financially. However, I do regret that I found myself in the position I'm in and reached out to them, looking for work.

How bizarre, how bizarre!

Right, rant over, I return you to your posts about crypto and DeFi. I've got over four hundred pages to read this week, after hours, and I'm not looking forward to it.

How do you rate this article?

12


Great White Snark
Great White Snark

I'm currently seeking fixed employment as a S/W & Web developer (C# & ASP .NET MVC, PHP 8+, Python 3), hoping to stash the farmed fiat and go full Crypto, quit the 07:30-18:00 grind. Unsigned music producer; snarky; white; balding; smashes Patriarchy.


Return to the Source
Return to the Source

Use the Force; read the source! This blog is mostly a collection of study notes on ASM, ASP .NET, Blender, BASIC, C/C++, C#, ChucK, Computer Architecture, Computer Literacy, CSS, Digital Logic, Electronics, F#, GIMP, GTK+, Haskel, Java, Julia, JavaScript (ES6+) & JSON, LISP, Nim, OOP, Photoshop, PLAD, Python, Qt, Ruby, Scheme, SQL (MySQL & SQLite), Super Collider, UML, Verilog, VHDL, WASM, XML. If I can learn it and make notes on it, I'll write about it. || Blog images copyright Markus Spiske and Pixabay

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.