• Stop being a LURKER - join our dealer community and get involved. Sign up and start a conversation.

Ask a Developer! OpenSource information

Jan 7, 2024
585
163
Awards
7
First Name
Carsten
I have been dropping information in various threads and I thought it would be a good idea to have a long thread about the technology that you use.

Please do NOT post you product or service. This is opensource information to help people understand things.

What is OpenSource is it free?
yes and no. It's a way to give back for free but you can then use that code to make money depending on the license. Many licenses require you open source your code if you built off opensource code.
IF not mistaken, seat belts are an opensource item in the automotive world.

What is a microservice?
A micro service is like the credit card readers that everyone uses, it's part of a business but actually is a whole different part of it.
If you hear that word used in software, it's the same thing. Software will use a payment gateway as a micro service because it's ridiculous to build it yourself.
it's not a special feature. It's just a moving cog. There are benefits to a microservice architecture but it can get overboard. It's nerd topic to debate.

What is the cloud?
Oh gawd, this is the most hillarious of the terms I've heard being thrown around. It's just an evolved form of how websites are powered.
We started with hosted locations. You had a pc located in a location which would hold your website. (a data center).
Machines got smarter and figured out how to have 100's of websites stored in separate parts of the hard drive more like an apartment building.
Someone named this the "Cloud". It's just shared hosting with millions of others of people sharing the same cpu and such. A huge apartment building. everyone shares the elevator and front door.

Is the cloud more secure?
If we think of the Apartment building analogy.
yes and no.
It is only more secure in that the management is more on top of things because more stupid people live there.
it doesn't mean the software running on those machines are secure. If you don't look your apartment door, people can still get in.

What is an API?
An api is like vlookup in excel. You use that function to get data from another worksheet. It's like ordering on doordash. You call to get data form another location instead of cooking it at home. Lots of front end code today uses an api call to the backend to get the data. It's more of developer thing than anything else. It helps developer to separate work responsibility. One team can focus on the exterior like paint and dent repair while your other team focuses on engine repair. An api is how you can give access to your data to another part of software or to entirely different program.

what is full stack?
Developing software is a crazy amount of different technologies. To be full stack you need to know how to design the car, build the engine, build tires, paint the car, how to wire the the harness, and on and on. For a dealer ship it's the sales person, the sales manager, the finance office, the service manager, the mechanics, the people who take care of the lot, and know how to order parts from vendors and have to choose which vendors to use. It takes years to become good at it.

What's the front end?
It's like your paint and collusion department. they do all the pretty stuff you see. I'd say also the interior but not the electronics.

What's the back end?
This is like your regular mechinces who change the oil and fix engines. they also do all the electronics and what not.

What does a hack mean?
This term is actually wrong but even develoeprs roll with it. It's actually a crack. Someone figured out how to pick the door lock and cracked your password. This can be done like reading the canbus data and reverse engineering your sterring wheel button controls to patch into the OEM codes. For software, this is likely because of either bad programmers, or not staying on top of technology. Remember I talked about how much a full stack person needs to know? Well, it's almost daily that new way to read that canbus is developed and the more technology used in your stack the more things you have to make sure are updated. It will never end.

IF your software is on old dated code you are more vulnerable to a hack. This can't be argued. The Cloud can't save you.
Is that software being scanned daily with an OBD reader looking for fault codes? IF not, they are being cheap and risking that expense with your data.

What does corrupted data mean?
it's like an excel file you can't open. It's corrupted. Basically, it can't be fixed or extremly expensive to get it sorted out.
Backups were corrupted too. Well, the data got corrupted at some point and all the backups from that day forward are broken. A hacker will likely not bother with going back into backups to corrupt them. Still basically, the system just won't work right. Like having an address book that put in the washing machine. You just can't sort it out again.

What is good back up plan?
This gets hard. We have gotten lazy and depend on the AWS, Google, and Azure to do this. But it comes at a price.
Having back ups cost money. Storing the backups cost money.
GO as over board as you can afford. Pay for daily back ups that cover months at a time. That data corruption will be at certain date in the past and the day before that will likely still have workable data.
Wanna go crazy? download your data every night, store it in a secure spot, upload it to antoher provider, and back up daily.

How much do developers make?
I'd say the going rate is anywhere from 30k to 200k a year. Experience, skill level, location, and what not all depends on how much they get paid.
Ukraine ? South Americe? India ? Phillipines? American?
A good tech is still a good tech.
Lots of companies will throw cheap labor at the problem hoping 3 people can solve the problems of 1 person.
Ai is good for spinning up a nifty blog but don't expect it to fix an issue with your DMS code.
Does the programming language matter? No ... not really. They all have problems. If there was 1 solid language then we all would be using it. We aren't dumb.

Note:
A lot of software companies will play on your lack of knowledge. they will use big flashy tech words to make sure you pay even more.
Look at the API costs.
If I build a pool in your yard it has a set cost. It is built. It doesn't even cost more for electricity.
So what are the companies really charging you for? the ability to transport in or out your data. The ability ... to do it.
However, some companies will offere a service like weather data, they make it easy for you to get daily updates which they went through all that trouble to gather for you. But if they are charging you tons of money to move your crm data to your dms ... lol ... you are paying to not use their crm most likely, Because creating the code to read that data isn't that expensive. It's hours of work not years of work.


Ask me! I'll be glad to help!
 
What are the pros and cons of outsourcing a development team?


Pros
Cheaper only pay for their time, not full time employees
Full team of devs and managers/directors
If they've done similar work can reuse code = less time.
Outside automotive Industry perspective. Auto vendors and dealerships typically are in the box copy cat thinkers.


Cons
Only that team fully understands it, if something breaks or want changes a new dev will have to spend a lot of time breaking down and learning what the code does.
Relying on their work load.
Hard to get in contact with dev. Usually layers of people to talk to in order to get to the one who is working on the project.
They have no vested interest once project is complete.
Less knowledgeable of your dealership.
 
  • Like
Reactions: Alex Snyder
I agree a lot with csabatka1.

Note:
I have a small team of full time devs.

Think of getting your home foundation done. (I'm trying to find an obscure expensive and can blow up in your face analog)
So a rather large project.

Pros:
Cost can be cheaper.
You will need to know what parts of the team you will need.
Outside of the box thinking but many have told me to stand on the floor at a dealer.

Cons (I'm mixing domestic and Foreign):
You get what you pay for.
How do you know you aren't getting screwed?
Did they rebuild your engine without putting back in used parts and half assed the grease on the rod bearings?
Possible TimeZone issues.
Language barriers?
Cultural issues and color choices ... colors can be pretty wild.
They are invested in dragging this out long as possible.
Most likely they have no clue about US or even just automotive in general.

Notes;
If you go independent and try to manage this on your own, you really need to have someone that is close to a manager/tech lead developer to be on your side. This can be someone you can take a gamble on.

Would I use upwork? I hired my team there but I do coding for a living and I still had to fire a few people to get where I am. Then I spent a lot of time teaching them about the business and what I expect. Fiverr is about as bad. You are just another cog they want to spit out today.

If you go with a development shop, you can probably expect their quote to be 30% short unless they have over estimated and gave you a price. csabatka1 got most of this. You will be working with a sales rep who works with a product manager who talks with the devs. Then expect a large amount of your cost is in "meetings" and "feature approvals".

Then you get into smaller projects.
Sometimes Indies are possibly better here.

Internal Hire?
Ok to Good. Pay is the big factor here. Hire domestically you'll be in for at least 50k depending on the state but more likely closer to 100k for mid developer depending on the language.

Most full stack devs that I know that I can trust to actually work the 80% of the day are getting 140K plus benefits as a Full Time hire. 1099 is going be higher since they will need to cover their own insurance. I have been seeing crazy stuff. People working 2 jobs from 9-5pm and 1 guy I worked with was even doing meetings at the same time.
 
  • Like
Reactions: Alex Snyder
If I knew what you were aiming for, it's easier to reply so please consider that when I am writing all this.

When 9/11 happened I was coding in Pearl. PHP was brand new.
I'd say some dinosaur languages like Cobol, fortran, Lisp, etc ... should be avoided. It's possible but I just would because you won't find a person to follow up.

Today most languages that are updated at a steady pace would be considered equal as to not have to worry if I'd use it or not.
Young folks tend to be more cutting edge and will follow have baked platforms/frameworks.
Javascript seems to come out with a new cool thing every other day.
Currently, React (javascript) is super popular and everyone uses it.

Is there 1 language to rule them all? Today? nope. Developers are sort of retarded. They will create a new thing because they have a cool idea but and refuse to put that 1 cool thing with another 1 cool thing from another another developer to equal 2. They think they will build that other cool thing because they can but in reality never get to it. Like the trash. Except they don't have a wife to remind them.

The most problematic is when a langauge version or framework version is out of date. There was a claim here that CDK was outdated. This is malpractice and malicious intent. The version updates normally cover security fixes. If CDK didn't stay on top of their software versions it really is like leaving your front door open and hoping your closed door is security.

WordPress is not a framework. it's a "platform". You must update it almost daily. One of my servers is getting hammered and every request is regarding, surprise! Wordpress. ""GET /wp-admin/user/xmrlpc.php?p= HTTP/1.1""

So, pros and cons?
It's more like hipster versus gen x.
hipsters flood the market and want to use possible frameworks that are like a shooting start. You don't know how long they will be around.
GenX style of languages are proven but not many young people gravitate toward them so hiring will be a more senior person.

TLDR;
use something that gets steady updates and you should be good in most cases.
 
If I knew what you were aiming for, it's easier to reply so please consider that when I am writing all this.

There are many ways to answer this and you did an excellent job. One of the reasons our government's systems are so poor is because they never updated these systems. One part of an update means utilizing newer programming languages. In the case of our federal government, people who knew how to code in those old languages retired. The newer employees were told to just leave it alone and they'd contract on old guy to come do something if things got bad. Well, those old guys are dying. Good strategy!

There are also the limitations of some older things like PHP. And the old school ways of tabling data. Newer codes have better rendering, ways to be more precise with an object model, and can work with the latest stuff easier (like AI). The downside comes from trying to integrate with older systems. You may have to blend some stuff that takes some workarounds. Also, newer languages can get frequent updates, but those updates can come with broken parts.

To your point Carsten, those updates eventually sort things out.
 
I agree with Legacy code solutions. It depends on a lot of things.

As for the latest Cobol issues so true! Probably the youngest programmer is like 60 or something.

PHP is actually not your 5.x php anymore. It's much closer to Java these days and the php frameworks are enterprise too. I noticed that lots of frameworks pick up from Java. Lots of what you mentioned about newer code really depends. I wouldn't discount a lot of languages because X hipster language is nailing it today. I have seen lots of cool languages wither away. Developers are like artists - horribly self indulgent and finicky.

Go, Rust, Zig are your hype back end languages these days.
React is winning on the front end ... but the landscape is continually evolving.
Node is innovative but lots of tinkering developers exist in that space and projects die off like cut flowers.

I think Cobol is a major lanague in the logistics world. Yes, the devs are like 60 + and most don't want to fix Windows XP style of hodge podge patch upon fix upon workaround anymore.

Just wondering, what do you consider as a new language?
I am also tryig to figure out what can be done with Ai ... that can't be done in an older language like PHP.
 
In the car business, it is anything that came out in the past 10 years. Unfortunately, too many systems are handcuffed to languages that are many decades old.

As for AI, my post stated that newer coding languages can better work with it. It isn't that something cannot be done with older stuff. It is easier to utilize an AI with newer tech.
 
Ah, I see now!

What you are seeing is most likely companies investing in sales and market placement instead of what we call "Tech Debt". So instead of regularly updating their code base to use the newer versions of the languages or most likely the framework; it becomes basically a rewrite.

So, the CDK is from what I heard here, is .(dot)Net which is a framework. It's innovative and hacker prone, and that disaster waiting to happen. People are laughing at Musk for not knowing how Cobol handles dates, this CDK problem dwarfs that mistake by magnitudes. I think it's criminal as much as a surgeon going to work drunk or high on white powder and then deciding to do brain surgery.

.Net today is a solid framwork (we still pick on it because it's Microsoft) but this is not a bad choice. It's just that you lock yourself into the Micorsoft ecosystem.


As for Ai, Python is the go to that many people tend to use. It's in that same age group as PHP and Java. .Net is a tad younger. Maybe someone mentioned NodeJs to you? Which is about a decade old now but it's relatively new. I'm trying to figure out what language you could be referring to. All the YT videos and possibly the Asteroid game that Musk dropped today would be done in Javascript (nodejs uses javascript) or possibly react. But none of these are specifically Ai tuned languages.

I don't follow the database languages as much because I work with tabular data (think excel worksheets) rather than Ai focuses vector databases. But yes, there are few new ones that are focusing on storing your PDF data into chunks to be used by the Ai. This I don't know enough about.

I'm still trying to wrap my head around the Ai ability.

I originally thought it was like advanced search like what Google did/does. But it's not exactly that. The data training is bit of mystery but the retrieval is actually interesting. It's not a database return answer.

it's like this:

If I say, "Knock Knock ..."
Ai will return 99% of the time, "Who's there".

If I start type, "Hello ..."
You will not answer like Ai because the training data is influenced heavily with data that happens to come from my world, and the answer will be 70% "Hello World".

So, Ai is just a percentage relation to words that come before and after.
It's not Artifical Intelligence though. It's more casnio odds of what word comes next.
I still don't really grasp this.


But coming back to the topic.
I'd need to know the langauges that you heard about to be able to talk about it more.
 


Write your reply...