Anyone work in tech?

kameronkales

TJ Enthusiast
Supporting Member
Joined
Jun 19, 2021
Messages
469
Location
Charlotte
I work in tech writing code. Got into working on cars 7-8ish months ago, bought LJ and got to work.

Wrenching is very similar to coding to me. Nice to get away from computer desk and use my hands.

Anyone else work in tech/write code?
 
I'm a software engineer building trading systems for a cryptocurrency exchange, about a decade into the career now. I've done frontends too but mostly settled into the backend side as I never liked how the front end tooling had so much turnover.
 
Front end was horrible. It’s gotten better recently w introduction of web components api.

I recently worked at large asset manager redoing portion of trading platform. Doing that for crypto sounds way harder.
 
Retired from a computer support & coding career. I still do a lot of C and Assembly just for fun. I'm thinking about building a small color touchscreen console for the Jeep with a two-way inclinometer, barometric altimeter, thermometer, compass, etc.
 
  • Like
Reactions: kameronkales
Retired from electronics/programming/IT. Wrote Assembly language and even raw machine code for over a decade. I even wrote my own text editor in assembly - which I still occasionally use. Did some coding in Pascal, and any amount of spaghetti code in BASIC. Never really got into C - although I've dabbled in it and know enough to be dangerous. I respect C's power, but I don't respect the cryptic syntax which which was created for TTY terminals. C and Pascal both are ALGOL descendant languages, and I'm not really a fan of ALGOL syntax in general - although its pretty much taken over the world. Everything from C and Pascal to ADA, Modula-2, Java, et al have similar syntax - those trailing semi-colons drive me nuts and outside of passwords, case dependency is NEVER a feature. But there are worse things, like Forth - the ultimate write-only language! OOP came along later, and I've never fully grasped it.

I also did hardware design, built my first computer in 1980 wire wrapping to the schematic I hand drew. Thing actually worked! Designed a few cards for the industrial computer outfit I used to work for, including a MODEM and a rather unusual and versatile memory card. Worked in scientific research for 23 years, writing software, designing hardware, etc, etc - then transferred to IT for the last 8+ years.

That's why I bitch about technology so much. Poorly written, buggy code with latency everywhere. Little consideration given to the actual usability, cheap hardware and cheaper software, blah, blah, blah. Designing hardware takes a little bit of skill and knowledge, but software can be ground out by any code monkey without the benefit of a Computer Science 101 class - and it shows.
 
  • Like
Reactions: kameronkales
I write code for industrial and large commercial HVAC and refrigeration control. It's not the simple on/off function block diagram stuff with a few PIDs thrown in like the old days... It's actually a text language strongly resembling...oddly enough...Pascal. There's not really any web, security, or file handling involved, but I do enjoy the occasional algorithm challenge and the hardware isn't a PC so I have to mind my execution time and memory usage.
 
  • Like
Reactions: kameronkales
I write code for industrial and large commercial HVAC and refrigeration control. It's not the simple on/off function block diagram stuff with a few PIDs thrown in like the old days... It's actually a text language strongly resembling...oddly enough...Pascal. There's not really any web, security, or file handling involved, but I do enjoy the occasional algorithm challenge and the hardware isn't a PC so I have to mind my execution time and memory usage.
Good on you. Nobody gives a damn about this stuff much anymore.
 
  • Like
Reactions: freedom_in_4low
I complain about badly written firmware constantly. My coffee machine was coded by a chimpanzee, I've never seen so many dumb mistakes. Except for my TV and sound bar, both by the same company, designed for each other, and pathetically incompatible. And my wife's newish car has four screens on the dash with bells and whistles and dings to distract the driver. Another reason to stick with the TJ. When I occasionally bump into a product which was coded well, it's a shock and a joy. It's just so rare.
 
I complain about badly written firmware constantly. My coffee machine was coded by a chimpanzee, I've never seen so many dumb mistakes. Except for my TV and sound bar, both by the same company, designed for each other, and pathetically incompatible. And my wife's newish car has four screens on the dash with bells and whistles and dings to distract the driver. Another reason to stick with the TJ. When I occasionally bump into a product which was coded well, it's a shock and a joy. It's just so rare.
Firmware was my speciality. My biggest complaint is latency. Latency, latency, latency EVERYWHERE. They have a multi-core, multi-gigahertz processor, gigabytes of ROM/Flash, more gigabytes of RAM, and they still can't write a responsive program. Poor coding is largely to blame, although inadequate compilers and/or wrong choice of language/methodology used can have a bearing as well. I can, and did, write far more responsive software on the crude 4 and 8 bit processors of the day years back - never mind the 16 and 32 bitters I graduated to later. If I wrote software half as bad as some of the crap I see these days, I would have been FIRED FOR CAUSE! Never mind the usability of the thing - we had meetings and discussions as to the best way to make something useable, and we sure as Hell didn't change software just for change's sake!

And I'm supposed to have this crap in my car? A pox on Jobs and his fucking smartphone - worst thing ever invented. Now everything on the planet is supposed to look, act, and operate like one. I tried to contact PayPal's customer service - the only way is with a smartphone shaped pop-up that, I assume, emulates one as well. Pretty much unusable.

Right now I'm pissed off at my Kindle - some idiot decided it needed to work completely different from the way Kindles have been working from day one. Some of the changes are OK, some suck, none were needed so why were they done? Just to piss off the user base? Probably something kyped from a smartphone!
 
Right now I'm pissed off at my Kindle - some idiot decided it needed to work completely different from the way Kindles have been working from day one. Some of the changes are OK, some suck, none were needed so why were they done? Just to piss off the user base? Probably something kyped from a smartphone!
I wouldn't think this is due to a programmer, likely some PM was chasing a higher title and tried to show initiative (for better or worse). Usually by time those experiments pay off it's long after that career goal is met.

My work is in/near high frequency trading - so I can sympathize with the various latency issues. That's a killer in my day to day.
 
  • Like
Reactions: kameronkales
I wouldn't think this is due to a programmer, likely some PM was chasing a higher title and tried to show initiative (for better or worse). Usually by time those experiments pay off it's long after that career goal is met.
Oh no doubt. GIGO applies even with the best programmer on the planet. Have idiots in management, you get idiot results - BTDT too.
 
  • Like
Reactions: rasband
Most of those outfits spend all their money on design and marketing. Then give the hardware production to a guy in China, and have $5 left over for software development.

Back when I did such things I ended up fixing a lot of code on very expensive machines because apparently they couldn't hire people that actually passed high school math. One of those jobs was an egg sorting machine, in Mexico. It just needed to route eggs to the right location based on weight, and in some cases split them across multiple packing machines on 50/50 split, or whatever. Too much math for the guy who wrote the program, it screwed it up every time. It takes 10X as much money and effort to reverse engineer that crap and fix it than it does to just do it right the first time, but nobody can figure that out.
 
  • Like
Reactions: Zorba and rasband
It takes 10X as much money and effort to reverse engineer that crap and fix it than it does to just do it right the first time, but nobody can figure that out.
Oh yea. I had a similar situation. Inherited code from a programmer who had left the company. He was a very good programmer - but did NOT document anything. I'm a documentation fanatic, my source code is heavily documented. I found that it took just about the same amount of time if I either A) went through his code instruction by instruction, documenting as I went so I'd have something I'd understand. Or B) Re-write it according to the specification. A) was slightly better as it was debugged, but sometimes B) ended up being slightly faster. I did both at various times!

But the old "No time to do it right, just time to do it over." nonsense I've had to deal with numerous times.
 
They have a multi-core, multi-gigahertz processor, gigabytes of ROM/Flash, more gigabytes of RAM, and they still can't write a responsive program. Poor coding is largely to blame, although inadequate compilers and/or wrong choice of language/methodology used can have a bearing as well. I can, and did, write far more responsive software on the crude 4 and 8 bit processors of the day years back - never mind the 16 and 32 bitters I graduated to later.

I think the hardware is as much to blame, though indirectly - not that it causes the latency obviously, but that it lets the coder get lazy. As hardware tech improves, the old hardware that does the job just fine gets discontinued to free up production space for the next new thing, and the device manufacturer has to upgrade when the old stuff did the job just fine. Then some brilliant PM gets the idea "we've got all this hardware headroom, lets add some features that no one is asking for", without realizing that most of that headroom is already accounted for to cover up lazy coding.

Even the controllers I use are way too much beef for what a lot of my contemporaries do with them. I don't even know what the clock speed is, but I know it's 32 bit and the power supply for the entire device is 30W which includes an integrated 132x64 monochrome LCD display, (6) 0-10V or 4-20mA sensors and (24) relays. The most complex program I've ever written executes in about 60ms - a similarly complex program I wrote 2 years ago took twice that, so I guess I'm getting better. The longest operations I usually have to deal with are data exports, which are user initiated, and I just spread the operation over several program cycles so no single lag in response is observable. There are a couple of things that I have to execute in one cycle but they only have to be performed once or twice a minute so that's what I do.

Exhibit A - a "four pipe" heat pump. Each module has two refrigerant-water heat exchangers and a refrigerant-air coil. It can absorb heat from the ambient air to heat water, it can cool water and reject the heat to ambient air, or it can cool water and reject the heat to the other water simultaneously, during which it can prioritize temperature precision for either the heated or the chilled water (I say water but it's really a water-glycol solution). It also has to defrost the air coil when it's running the water-heating mode. There is a version that only has the hot-side heat exchanger so it doesn't have water cooling, and there is a high temp version that completely reconfigures the refrigerant side, so there's 7 operating modes and 4 different configurations. Compressors, fans, expansion valves are "infinitely" variable based on various temperatures and pressures which are different between different modes. And then there's a supervisory device that determines which mode each module should operate in to achieve the desired overall fluid temperatures, while achieving equal usage across up to 100 modules. And there's probably not half a dozen IF statements in the whole thing.

PXL_20210910_171633441.jpg


HVAC programmers come in two flavors - there's the ones like me that learned some computer programming growing up (my "numerical methods for engineering computation" prof always got a kick out of my printed out QuickBASIC programs breaking up the monotony of grading click-and-dragged Excel formulas - and I also had some courses on Java and VB .NET later on) and then fell into HVAC. The second flavor of HVAC programmer is the guy that started out as a tech and convinced himself that coding is easy because he saw somebody using Function Block Diagrams - which I view as a crutch that allows hacks to continue far longer in the field than they have any business doing. It works ok for building management but when you start using it as a manufacturer and try to make anything configurable or scalable it just turns into spaghetti in no time that's impossible to troubleshoot. The example I used could never be achieved in FBD and that's why FBD programmers are a dime a dozen and text programmers can write their own check.

Here's a very simple function that just monitors the connection between the controller and a cellular modem, and cycles power on the modem if that connection appears to be dead.

FBD:
1640018590948.png



Text:
1640018575592.png
 
Last edited: