Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "embedded"
I'm drunk and I'll probably regret this, but here's a drunken rank of things I've learned as an engineer for the past 10 years.
The best way I've advanced my career is by changing companies.
Technology stacks don't really matter because there are like 15 basic patterns of software engineering in my field that apply. I work in data so it's not going to be the same as webdev or embedded. But all fields have about 10-20 core principles and the tech stack is just trying to make those things easier, so don't fret overit.
There's a reason why people recommend job hunting. If I'm unsatisfied at a job, it's probably time to move on.
I've made some good, lifelong friends at companies I've worked with. I don't need to make that a requirement of every place I work. I've been perfectly happy working at places where I didn't form friendships with my coworkers and I've been unhappy at places where I made some great friends.
I've learned to be honest with my manager. Not too honest, but honest enough where I can be authentic at work. What's the worse that can happen? He fire me? I'll just pick up a new job in 2 weeks.
If I'm awaken at 2am from being on-call for more than once per quarter, then something is seriously wrong and I will either fix it or quit.
pour another glass
Qualities of a good manager share a lot of qualities of a good engineer.
When I first started, I was enamored with technology and programming and computer science. I'm over it.
Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all.
The most underrated skill to learn as an engineer is how to document. Fuck, someone please teach me how to write good documentation. Seriously, if there's any recommendations, I'd seriously pay for a course (like probably a lot of money, maybe 1k for a course if it guaranteed that I could write good docs.)
Related to above, writing good proposals for changes is a great skill.
Almost every holy war out there (vim vs emacs, mac vs linux, whatever) doesn't matter... except one. See below.
The older I get, the more I appreciate dynamic languages. Fuck, I said it. Fight me.
If I ever find myself thinking I'm the smartest person in the room, it's time to leave.
I don't know why full stack webdevs are paid so poorly. No really, they should be paid like half a mil a year just base salary. Fuck they have to understand both front end AND back end AND how different browsers work AND networking AND databases AND caching AND differences between web and mobile AND omg what the fuck there's another framework out there that companies want to use? Seriously, why are webdevs paid so little.
We should hire more interns, they're awesome. Those energetic little fucks with their ideas. Even better when they can question or criticize something. I love interns.
Don't meet your heroes. I paid 5k to take a course by one of my heroes. He's a brilliant man, but at the end of it I realized that he's making it up as he goes along like the rest of us.
Tech stack matters. OK I just said tech stack doesn't matter, but hear me out. If you hear Python dev vs C++ dev, you think very different things, right? That's because certain tools are really good at certain jobs. If you're not sure what you want to do, just do Java. It's a shitty programming language that's good at almost everything.
The greatest programming language ever is lisp. I should learn lisp.
For beginners, the most lucrative programming language to learn is SQL. Fuck all other languages. If you know SQL and nothing else, you can make bank. Payroll specialtist? Maybe 50k. Payroll specialist who knows SQL? 90k. Average joe with organizational skills at big corp? $40k. Average joe with organization skills AND sql? Call yourself a PM and earn $150k.
Tests are important but TDD is a damn cult.
Cushy government jobs are not what they are cracked up to be, at least for early to mid-career engineers. Sure, $120k + bennies + pension sound great, but you'll be selling your soul to work on esoteric proprietary technology. Much respect to government workers but seriously there's a reason why the median age for engineers at those places is 50+. Advice does not apply to government contractors.
Third party recruiters are leeches. However, if you find a good one, seriously develop a good relationship with them. They can help bootstrap your career. How do you know if you have a good one? If they've been a third party recruiter for more than 3 years, they're probably bad. The good ones typically become recruiters are large companies.
Options are worthless or can make you a millionaire. They're probably worthless unless the headcount of engineering is more than 100. Then maybe they are worth something within this decade.
Work from home is the tits. But lack of whiteboarding sucks.39
#2 Worst thing I've seen a co-worker do?
Back before we utilized stored procedures (and had an official/credentialed DBA), we used embedded/in-line SQL to fetch data from the database.
var sql = @"Select
Id = @ID"
In attempts to fix database performance issues, a developer, T, started putting all the SQL on one line of code (some sql was formatted on 10+ lines to make it readable and easily copy+paste-able with SSMS)
var sql = "Select ... From...Where...etc";
His justification was putting all the SQL on one line make the code run faster.
T: "Fewer lines of code runs faster, everyone knows that."
Mgmt bought it.
This process took him a few months to complete.
When none of the effort proved to increase performance, T blamed the in-house developed ORM we were using (I wrote it, it was a simple wrapper around ADO.Net with extension methods for creating/setting parameters)
T: "Adding extra layers causes performance problems, everyone knows that."
Mgmt bought it again.
Removing the ORM, again took several months to complete.
By this time, we hired a real DBA and his focus was removing all the in-line SQL to use stored procedures, creating optimization plans, etc (stuff a real DBA does).
In the planning meetings (I was not apart of), T was selected to lead because of his coding optimization skills.
DBA: "I've been reviewing the execution plans, are all the SQL code on one line? What a mess. That has to be worst thing I ever saw."
T: "Yes, the previous developer, PaperTrail, is incompetent. If the code was written correctly the first time using stored procedures, or even formatted so people could read it, we wouldn't have all these performance problems."
DBA didn't know me (yet) and I didn't know about T's shenanigans (aka = lies) until nearly all the database perf issues were resolved and T received a recognition award for all his hard work (which also equaled a nice raise).7
hey there, long time no rant.
remember that manipulative, sociopathic angry manchild turdface PM, the kind that gives you a never ending rant inspiration? the one that got immortalized in like 90% of my rants?
well... it's time for the final update.
i decided to leave the team some months ago. my boss reacted very cool and supportive and suggested topics i could work on instead. when i told my colleague, he decided to leave the team at the same day. we both also complained at HR and added some papertrails about PM's shenanigans.
shortly after, another guy from the team quit and left the company, and i know that it was 100% because of this PM.
so, there were 2 devs left from originally 6 in PM's team.
some other people in the environment of this PM quit, one of his subordinates and someone from a greater project in which the PM's project was embedded.
after some internal investigations and discussions, the PM's team was completely kicked out of this greater project, since after ~ a year, this team was neither able to deliver anything useful nor to define what it actually was what they wanted to provide. instead, they actively blocked the project, solution finding and cooperation between teams. and this is quite very much PM's fault.
the final move came this month when PM got fired. i think, management finally realized that he is a total fraud who has no clue about the whole matter (neither what devices we build nor about software development). or management. or leadership. and that all he can do is produce hot air and bullshit people for some time to make them believe he knows something.
not sure how long he'll still be around, but i'm happy when i don't have to see his face ever again. i'm just sorry for the next company he'll be moving to...5
I created a GitHub Profile Card widget that can be easily embedded in your portfolio 🎉
So I just found out that my colleague who I often have to work with does not use a debugger to troubleshoot any bugs at all. Actually, he does not even run or test his code locally either with prints or something similar. He just commits java code directly on bitbucket, no source control, without making sure it compiles and then he runs a CI provided by devops that takes 4 freaking hours to run because he bloated that shit up somehow.
I suggested politely to help him find a more efficient approach and to use my hardware setups for speeding up his work because I assume it must be pretty painful to work with, but he just refused.
That and those "seniors" with 10 years Linux development XP in the embedded field who don't know basic commands like ls, cat and touch and code in notepad.
Fucking me, who the hell am I working with and can someone please end me?6
I was watching "hacker reviews hacking scenes from movies", and god forbid they brought a woman to do the analysis. A lot of butt hurt boys in the comments, that women left the kitchen and got into programming.
This aside, the combination of ignorance and arrogance was just wow. I mean, if you want to be a dick, at least back it up with skills.
Don't make claims about how "GUI is the single most important piece of any software". *laughing in embedded programming*24
Pomodoro timers work only when the task at hand is boring. Yesterday, I worked non-stop on some task I greatly enjoyed(Rust embedded) and I would get distracted if there was some disruption because some overrated technique.7
HR is getting so desperate they are prescheduling me interviews attached with CVs in the hopes that I will interview the candidates for a senior, even though the candidates have no experience whatsoever in embedded software programming. Workday, JIRA and Excel does not count you absolute fucknuggets.
For fuck sake, I asked management to hire new grads or juniors, at least I can get a person motivated to learn, but I swear they just don't listen.
They just are content with wasting my time lol3
Do some cool shit that I’ve always wanted to do.
- learn more about machine learning and computer vision
- learn C / C++ / rust
- learn embedded systems / programming
- learn more EE centered stuff3
Tho I should thank Mr. S, calculus teacher in my last year of highschool, and most of my physics teachers, and that one lady in first year of highschool teaching maths. I think those were way more important in teaching me logic than the folks who pretended to teach me stuff later in uni.
Oh, and that dude, Sir O.D., who was my professor of embedded microcontrollers in uni. Didn't teach me much programming, rather taught a memorable lesson on VHDL and how hardware really works.
Embedded app design resources?
We have a device that is currently controlled through buttons and knobs. We are rethinking this design. We want to have a mix of buttons and knobs and in addition have a touchscreen. The controls must be redundant. So if we turn off the touch screen it must be able to control everything.
Does anyone know of any design resources for non-touchscreen embedded control?
I have been looking into how gaming console controls work. I like how they have the idea of controlling the game vs breaking the 4th wall. We have a similar constraint as we want the operator focused on what they are controlling and not the controls or even sometimes the screen. So immersion is definitely a concept for us. I have been toying with the idea of adding a d-pad for some controls. We have not solidified the hardware controls yet. That is still up to me to come up with some ideas to make it more intuitive.13
What the hell did I miss?
I've been seeing lots of dev communities joking/not joking about replacing C++.
Did we somehow replace all C code in literally every embedded product overnight?10
TIL you can crash a Tomcat request processing if the app reads request bodies using a reader() and you feed it a json body with an innocent nbsp :) the whole request processing just goes *pooooft*
reminds me of an ios bug which could brick the phone if it received an sms with weird chars.
These lynch-pin-bugs where a single byte/char in the right place at the right time can tear things down, are so subtle and fascinate me for some reason :)3
Finally got a new role from testautomation to Embedded sw dev. I will also have to learn Rust for embedded and elixir for web facing side, which is nice!5
DOS is not “Disk Operating System”. DOS, aka QDOS, is “Quick and Dirty Operating System”. This is real. Google it.
Similarly, Windows CE is not “Compact Embedded”. It's “Chaotic Evil”.1
X : What do you do?
Me : I am an embedded software developer
X: So you develop software?
Me: Yes, but my software works on BareMetal.
X: So you work in a metal workshop.
Fucking customer industrial machine doesn't work properly because the dumbass who designed the control algo failed to consider basic physics how this shit is even supposed to work. Just to be sure, he also included some race condition in the measurement part of the software.
What is your opinion on eSIM (embedded SIM)?
Now that Apple has built the first smartphone without modular SIM, it is, as history shows, only a matter of time until the same vendors who mock Apple for doing this will hypocritically follow Apple in implementing it themselves. There will be an outrage, but it will fade and the new restriction will be tolerated.
To me, "eSIM" appears like an euphemistic / euphemSIMtic (pun intended) marketing term, like calling non-replaceable batteries "eBatteries" ("embedded batteries") would be. It is less modular and more locked-down.20
Does anyone here have any good resources for introduction to embedded, low level development, or anything on advanced C concepts? I've been having trouble trying to step into more complicated topics like bit manipulation and stuff I can do with memory management. Also any advice is also appreciated.30
I spent 4 months in a programming mentorship offered by my workplace to get back to programming after 4 years I graduated with a CS degree.
Back in 2014, what I studied in my first programming class was not easy to digest. I would just try enough to pass the courses because I was more interested in the theory. It followed until I graduated because I never actually wrote code for myself for example I wrote a lot of code for my vision class but never took a personal initiative. I did however have a very strong grip on advanced computer science concepts in areas such as computer architecture, systems programming and computer vision. I have an excellent understanding of machine learning and deep learning. I also spent time working with embedded systems and volunteering at a makerspace, teaching Arduino and RPi stuff. I used to teach people older than me.
My first job as a programmer sucked big time. It was a bootstrapped startup whose founder was making big claims to secure funding. I had no direction, mentorship and leadership to validate my programming practices. I burnt out in just 2 months. It was horrible. I experienced the worst physical and emotional pain to date. Additionally, I was gaslighted and told that it is me who is bad at my job not the people working with me. I thought I was a big failure and that I wasn't cut out for software engineering.
I spent the next 6 months recovering from the burn out. I had a condition where the stress and anxiety would cause my neck to deform and some vertebrae were damaged. Nobody could figure out why this was happening. I did find a neurophyscian who helped me out of the mental hell hole I was in and I started making recovery. I had to take a mild anti anxiety for the next 3 years until I went to my current doctor.
I worked as an implementation engineer at a local startup run by a very old engineer. He taught me how to work and carry myself professionally while I learnt very little technically. A year into my job, seeing no growth technically, I decided to make a switch to my favourite local software consultancy. I got the job 4 months prior to my father's death. I joined the company as an implementation analyst and needed some technical experience. It was right up my alley. My parents who saw me at my lowest, struggling with genetic depression and anxiety for the last 6 years, were finally relieved. It was hard for them as I am the only son.
After my father passed away, I was told by his colleagues that he was very happy with me and my sisters. He died a day before I became permanent and landed a huge client. The only regret I have is not driving fast enough to the hospital the night he passed away. Last year, I started seeing a new doctor in hopes of getting rid of the one medicine that I was taking. To my surprise, he saw major problems and prescribed me new medication.
I finally got a diagnosis for my condition after 8 years of struggle. The new doctor told me a few months back that I have Recurrent Depressive Disorder. The most likely cause is my genetics from my father's side as my father recovered from Schizophrenia when I was little. And, now it's been 5 months on the new medication. I can finally relax knowing my condition and work on it with professional help.
After working at my current role for 1 and a half years, my teamlead and HR offered me a 2 month mentorship opportunity to learn programming from scratch in Python and Scrapy from a personal mentor specially assigned to me. I am still in my management focused role but will be spending 4 hours daily of for the mentorship. I feel extremely lucky and grateful for the opportunity. It felt unworldly when I pushed my code to a PR for the very first time and got feedback on it. It is incomparable to anything.
So we had Eid holidays a few months back and because I am not that social, I began going through cs61a from Berkeley and logged into HackerRank after 5 years. The medicines help but I constantly feel this feeling that I am not enough or that I am an imposter even though I was and am always considered a brilliant and intellectual mind by my professors and people around me. I just can't shake the feeling.
Anyway, so now, I have successfully completed 2 months worth of backend training in Django with another awesome mentor at work. I am in absolute love with Django and Python. And, I constantly feel like discussing and sharing about my progress with people. So, if you are still reading, thank you for staying with me.
TLDR: Smart enough for high level computer science concepts in college, did well in theory but never really wrote code without help. Struggled with clinical depression for the past 8 years. Father passed away one day before being permanent at my dream software consultancy and being assigned one of the biggest consultancy. Getting back to programming after 4 years with the help of change in medicine, a formal diagnosis and a technical mentorship.3
Working with badly designed hardware is amazing
While it is highly frustrating most of the time, I'm gonna be able to say "We can't develop software for broken hardware" to a lot of highly paid and highly annoyed peiple and that will be immensely satisfying.3
I hate systemd, i hate it. Which idiot wrote that piece of crap? And it isn't that easy to replace it when it is so embedded in the distro.
Its commands can't even output text normally, which should the absolute basic functionality of every program. And it does things automatically i didn't tell it to do, for example setting the system time to some random date instead of leaving it at 1970-01-01.
In the midst of considering to be an AI engineer, data science or embedded programmer.
Plan to retire from mobile dev, backend dev and webdev.
Experimented with embedded Rust. Fuck that. C is a brilliant small language. Trustworthy. Rust is just C++ killer, it doesn’t belong in embedded domain. Bloated syntax, verbose error handling, crap quality crates with little to no documentation.18
A year ago I built my first todo, not from a tutorial, but using basic libraries and nw.js, and doing basic dom manipulations.
It had drag n drop, icons, and basic saving and loading. And I was satisfied.
Since then I've been working odd jobs.
And today I've decided to stretch out a bit, and build a basic airtable clone, because I think I can.
And also because I hate anything without an offline option.
First thing I realized was I wasn't about to duplicate all the features of a spreadsheet from scratch. I'd need a base to work from.
I spent about an hour looking.
Core features needed would be trivial serialization or saving/loading.
Proper event support for when a cell, row, or column changed, or was selected. Necessary for triggering validation and serialization/saving.
Custom column types.
Embedding html in cells.
Optional but nice to have:
Changeable column width and row height.
Drag and drop on rows and columns.
Right click menu support out of the box.
After that hour I had a few I wanted to test.
And started looking at frameworks to support the SPA aspects.
Both mithril and riot have minimal router support. But theres also a ton of other leightweight frameworks and libraries worthy of prototyping in, solid, marko, svelte, etc.
I didn't want to futz with lots of overhead, babeling/gulping/grunting/webpacking or any complex configuration-over-convention.
Didn't care for dom vs shadow dom. Its a prototype not a startup.
And I didn't care to do it the "right way". Learning curve here was antithesis to experimenting. I was trying to get away from plugin, configuration-over-convention, astronaut architecture, monolithic frameworks, the works.
Could I import the library without five dozen dependancies and learning four different tools before getting to hello world?
"But if you know IJK then its quick to get started!", except I don't, so it won't. I didn't want that.
Could I get cheap component-oriented designs?
Was I managing complex state embedded in a monolith that took over the entire layout and conventions of my code, like the world balanced on the back of a turtle?
Did it obscure the dom and state, and the standard way of doing things or *compliment* those?
As for validation, theres a number of vanilla libraries, one of which treats validation similar to unit testing, which seems kinda novel.
For presentation and backend I could do NW.JS, which would remove some of the complications, by putting everything in one script. Or if I wanted to make it a web backend, and avoid writing it in something that ran like a potato strapped to a nuclear rocket (visual studio), I could skip TS and go with python and quart, an async variation of flask.
This has the advantage that using something thats *not* JS, namely python, for interacting with a proper database, and would allow self-hosting or putting it online so people can share data and access in real time with others.
And because I'm horrible, and do things the wrong way for convenience, I could use tailwind.
Because it pisses people off.
How easy (or hard) would it be to recreate a basic functional clone of the core of airtable?
I don't know, but I have feeling I'm going to find out!1
This is a repost of an original rant posted on a request for "Community Feedback" from Atlassian. You know, Atlassian? Those beloved people behind such products as :
• Thing I Love™
• Other Thing You Used One Time™
• Platform Often Mentioned in Suicide Notes, Probably™*
Now this rant was written in early 2022 while I was working in an Azure Cloud Engineer role that transformed into me being the company's main Sysadmin/Project Manager/Hiring Manager/Network Admin/Graphic Designer.
While trying to simultaneously put out over 9000 fires with one hand, and jangling keys in the face of the Owner/Arsonist with the other, I was also desperately implementing Jira Service Desk. Normally this wouldn't have been as much of a priority as it was, but the software our support team was using had gone past 15 years old, then past extended support, then the lone developer died, then it didn't work on Windows 10, then only functioned thanks to a dev cohort long past creating a keygen....which was now broken. So we needed a solution *now*.
The previous solution was shit of a different tier. The sight of it would make a walking talking anthropomorphised sentient puddle of dogshit (who both eats and produces further dookie derivatives) blush with embarrassment. The CD-ROM/Cereal Box this software came in probably listed features like "Stores Your Customer's First AND (or) Last Name!" or "Windows ME Downgrade Disk Included!" and "NEW: Less(-ish) Genocide(s)"!
Despite this, our brain/fearless leader decided this would be a great time to have me test, implement, deploy, and train everyone up on a new solution that would suck your toes, sound your shaft, and that he hadn't reminded me that I was a lazy sack enough lately.
One day, during preliminary user testing I received an email letting me know that the support team was having issues with a Customer's profile on our new support desk. Thanks to our Owner/Firestarter/Real World Micheal Scott being deep in his latest project (fixing our "All 5 devs quit in the last 12 months and I can't seem to hire any new ones" issue (by buying a ping pong table)), I had a bit of fortuitous time on my hands to investigate this issue. I had spent many hours of overtime working on this project, writing custom integrations and automations, so what I found out was crushing.
Below is the (digitally) physical manifestation of my rage after realising I would have to create / find / deal with a whole new method for support to manage customer contacts.
I'm linking to the original forum thread because you kind of need to have the pictures embedded in said reply to get really inhale the "Jira-Rant" ambiance. The part where I use several consecutive words as anchor links to tickets with other people screaming into the void gets a bit sweet n' savoury too - having those hyperlinks does improve the je ne say what of it all.
bit.ly/JIRANT (Case Sensitive)
There is some good news at the end of this brown n' squirty rainbow though!
Nice try silly little Jira button, you can't ruin *my* 2022!
• I was able to forget all about Jira a month later when I received a surprise vacation home! (To be there while my Mom passed away).
• Eventually work stress did catch up to me - but my boss thoughtfully gave me a nice long vacation! (By assaulting *while* firing me (for emailing in a vacation request while he was a having a bad (see:normal) day))4
Node server with webpack poly fill on embedded device. Why 😂 .
Replacing node-fetch with node http instead of waiting for native node fetch API. Why 😂
All npm scripts on package.json are dead. Why 😂
Node server is not even sharing TS interfaces with frontend.
Customers are complaining about MeM0r1 L3k and let's build more features on stupid node.
Fucking kill me.1
Hitting every. single. fucking. dead end on my unstoppable march to introduce a nice feature.
I'm trying to embed interactive svg maps in a Wordpress page in such a way that the areas can be edited intuitively using Inkscape and all the page does is inline the xml markup, but also there's a JPG background embedded in the picture which Wordpress finds too big for markup (unsurprisingly) but which is a pain in the ass to reference externally.
already these little fucks gave the idea they think they're going to lay claim to property that is NOT there's.
they can have this laptop if they like, with a ssd drive in it. just not this ssd drive or any of john's other hard drives, as HE PURCHASED THEM ALL.
also stop humanizing laptops, fucking freaks !
its a plastic shell with silicon chips in it that conducts electricity through a cpu that does stuff.
wasn't put on this earth to give chomos shallow lives to mimic with some added idiocy embedded into their lines.
and hand over all the old photos from the real times periods and those that came after and stop trying to touch what doesn't belong to them.
this includes the hdd's cotents 'lost' in chicago, which appear to have mostly reappeared.